This commit is contained in:
2025-12-01 17:21:38 +08:00
parent 32fee2b8ab
commit fab8c13cb3
7511 changed files with 996300 additions and 0 deletions

View File

@@ -0,0 +1,98 @@
const translation = {
title: 'คำ อธิบาย',
name: 'คําอธิบายประกอบ ตอบกลับ',
editBy: 'ตอบแก้ไขโดย {{author}}',
noData: {
title: 'ไม่มีคําอธิบายประกอบ',
description: 'คุณสามารถแก้ไขคําอธิบายประกอบระหว่างการดีบักแอปหรือนําเข้าคําอธิบายประกอบจํานวนมากได้ที่นี่เพื่อการตอบกลับคุณภาพสูง',
},
table: {
header: {
question: 'ปัญหา',
answer: 'ตอบ',
createdAt: 'สร้างเมื่อ',
hits: 'ฮิต',
actions: 'การกระทํา',
addAnnotation: 'เพิ่มคําอธิบายประกอบ',
bulkImport: 'นําเข้าจํานวนมาก',
bulkExport: 'ส่งออกจํานวนมาก',
clearAll: 'ล้างคําอธิบายประกอบทั้งหมด',
clearAllConfirm: 'ลบหมายเหตุต่างๆ ทั้งหมดหรือไม่?',
},
},
editModal: {
title: 'แก้ไขคําอธิบายประกอบ ตอบกลับ',
queryName: 'การสอบถามของผู้ใช้',
answerName: 'บอทนักเล่าเรื่อง',
yourAnswer: 'คําตอบของคุณ',
answerPlaceholder: 'พิมพ์คําตอบของคุณที่นี่',
yourQuery: 'คําถามของคุณ',
queryPlaceholder: 'พิมพ์แบบสอบถามของคุณที่นี่',
removeThisCache: 'ลบคําอธิบายประกอบนี้',
createdAt: 'สร้างที่',
},
addModal: {
title: 'เพิ่มคําอธิบายประกอบตอบกลับ',
queryName: 'ปัญหา',
answerName: 'ตอบ',
answerPlaceholder: 'พิมพ์คําตอบที่นี่',
queryPlaceholder: 'พิมพ์ query ที่นี่',
createNext: 'เพิ่มการตอบกลับที่มีคําอธิบายประกอบอื่น',
},
batchModal: {
title: 'นําเข้าจํานวนมาก',
csvUploadTitle: 'ลากและวางไฟล์ CSV ของคุณที่นี่ หรือ',
browse: 'เล็ม',
tip: 'ไฟล์ CSV ต้องสอดคล้องกับโครงสร้างต่อไปนี้:',
question: 'ปัญหา',
answer: 'ตอบ',
contentTitle: 'เนื้อหาก้อน',
content: 'เนื้อหา',
template: 'ดาวน์โหลดเทมเพลตที่นี่',
cancel: 'ยกเลิก',
run: 'เรียกใช้แบทช์',
runError: 'เรียกใช้ชุดงานล้มเหลว',
processing: 'ในการประมวลผลแบบแบทช์',
completed: 'นําเข้าเสร็จสมบูรณ์',
error: 'ข้อผิดพลาดในการนําเข้า',
ok: 'ตกลง, ได้',
},
errorMessage: {
answerRequired: 'ต้องตอบ',
queryRequired: 'จําเป็นต้องมีคําถาม',
},
viewModal: {
annotatedResponse: 'คําอธิบายประกอบ ตอบกลับ',
hitHistory: 'ประวัติการตี',
hit: 'ตี',
hits: 'ฮิต',
noHitHistory: 'ไม่มีประวัติการตี',
},
hitHistoryTable: {
query: 'สอบถาม',
match: 'ไม้ขีดไฟ',
response: 'การตอบสนอง',
source: 'ที่มา',
score: 'คะแนน',
time: 'เวลา',
},
initSetup: {
title: 'คําอธิบายประกอบตอบกลับการตั้งค่าเริ่มต้น',
configTitle: 'การตั้งค่าการตอบกลับคําอธิบายประกอบ',
confirmBtn: 'บันทึกและเปิดใช้งาน',
configConfirmBtn: 'ประหยัด',
},
embeddingModelSwitchTip: 'โมเดลเวกเตอร์ข้อความคําอธิบายประกอบ โมเดลการสลับจะถูกฝังใหม่ส่งผลให้มีค่าใช้จ่ายเพิ่มเติม',
list: {
delete: {
title: 'คุณแน่ใจหรือว่าต้องการลบ?',
},
},
batchAction: {
delete: 'ลบ',
selected: 'เลือกไว้',
cancel: 'ยกเลิก',
},
}
export default translation

View File

@@ -0,0 +1,85 @@
const translation = {
apiServer: 'เซิร์ฟเวอร์ API',
apiKey: 'คีย์ API',
status: 'สถานะ',
disabled: 'พิการ',
ok: 'ให้บริการ',
copy: 'ลอก',
copied: 'คัด ลอก',
regenerate: 'สร้างใหม่',
play: 'เล่น',
pause: 'หยุด',
playing: 'เล่น',
loading: 'การโหลด',
merMaid: {
rerender: 'ทําซ้ํา Rerender',
},
never: 'ไม่เคย',
apiKeyModal: {
apiSecretKey: 'คีย์ลับ API',
apiSecretKeyTips: 'เพื่อป้องกันการละเมิด API ให้ปกป้องคีย์ API ของคุณ หลีกเลี่ยงการใช้เป็นข้อความธรรมดาในโค้ดส่วนหน้า :)',
createNewSecretKey: 'สร้างคีย์ลับใหม่',
secretKey: 'กุญแจลับ',
created: 'สร้าง',
lastUsed: 'ใช้ล่าสุด',
generateTips: 'เก็บกุญแจนี้ไว้ในที่ปลอดภัยและเข้าถึงได้',
},
actionMsg: {
deleteConfirmTitle: 'ลบคีย์ลับนี้?',
deleteConfirmTips: 'การดําเนินการนี้ไม่สามารถยกเลิกได้',
ok: 'ตกลง, ได้',
},
completionMode: {
title: 'API แอปที่สมบูรณ์',
info: 'สําหรับการสร้างข้อความคุณภาพสูง เช่น บทความ บทสรุป และการแปล ให้ใช้ API ข้อความที่สมบูรณ์กับการป้อนข้อมูลของผู้ใช้ การสร้างข้อความอาศัยพารามิเตอร์โมเดลและเทมเพลตพร้อมท์ที่ตั้งค่าไว้ใน Dify Prompt Engineering',
createCompletionApi: 'สร้างข้อความเสร็จสมบูรณ์',
createCompletionApiTip: 'สร้างข้อความเสร็จสิ้นเพื่อรองรับโหมดคําถามและคําตอบ',
inputsTips: '(ไม่บังคับ) ระบุฟิลด์อินพุตของผู้ใช้เป็นคู่คีย์-ค่า ซึ่งสอดคล้องกับตัวแปรใน Prompt Eng คีย์คือชื่อตัวแปร ค่าคือค่าพารามิเตอร์ ถ้าชนิดฟิลด์เป็น เลือก ค่าที่ส่งจะต้องเป็นหนึ่งในตัวเลือกที่ตั้งไว้ล่วงหน้า',
queryTips: 'เนื้อหาข้อความที่ผู้ใช้ป้อน',
blocking: 'ประเภทการบล็อก รอให้การดําเนินการเสร็จสมบูรณ์และส่งคืนผลลัพธ์ (คําขออาจถูกขัดจังหวะหากกระบวนการใช้เวลานาน)',
streaming: 'การสตรีมกลับมา การใช้งานการส่งคืนการสตรีมตาม SSE (เหตุการณ์ที่ส่งโดยเซิร์ฟเวอร์)',
messageFeedbackApi: 'ข้อความแสดงความคิดเห็น (ชอบ)',
messageFeedbackApiTip: 'ให้คะแนนข้อความที่ได้รับในนามของผู้ใช้ปลายทางที่มีการชอบหรือไม่ชอบ ข้อมูลนี้สามารถมองเห็นได้ในหน้า Logs & Annotations และใช้สําหรับการปรับแต่งโมเดลในอนาคต',
messageIDTip: 'รหัสข้อความ',
ratingTip: 'ชอบหรือไม่ชอบ null คือเลิกทํา',
parametersApi: 'รับข้อมูลพารามิเตอร์แอปพลิเคชัน',
parametersApiTip: 'ดึงพารามิเตอร์อินพุตที่กําหนดค่าไว้ รวมถึงชื่อตัวแปร ชื่อฟิลด์ ชนิด และค่าเริ่มต้น โดยทั่วไปจะใช้สําหรับแสดงฟิลด์เหล่านี้ในฟอร์มหรือกรอกค่าเริ่มต้นหลังจากโหลดไคลเอ็นต์',
},
chatMode: {
title: 'API แอปแชท',
info: 'สําหรับแอปการสนทนาอเนกประสงค์ที่ใช้รูปแบบ Q&A ให้เรียก API ข้อความแชทเพื่อเริ่มการสนทนา รักษาการสนทนาอย่างต่อเนื่องโดยส่ง conversation_id ที่ส่งคืน พารามิเตอร์การตอบสนองและเทมเพลตขึ้นอยู่กับ Dify Prompt Eng การตั้งค่า',
createChatApi: 'สร้างข้อความแชท',
createChatApiTip: 'สร้างข้อความการสนทนาใหม่หรือดําเนินการต่อในการสนทนาที่มีอยู่',
inputsTips: '(ไม่บังคับ) ระบุฟิลด์อินพุตของผู้ใช้เป็นคู่คีย์-ค่า ซึ่งสอดคล้องกับตัวแปรใน Prompt Eng คีย์คือชื่อตัวแปร ค่าคือค่าพารามิเตอร์ ถ้าชนิดฟิลด์เป็น เลือก ค่าที่ส่งจะต้องเป็นหนึ่งในตัวเลือกที่ตั้งไว้ล่วงหน้า',
queryTips: 'เนื้อหาการป้อนข้อมูล/คําถามของผู้ใช้',
blocking: 'ประเภทการบล็อก รอให้การดําเนินการเสร็จสมบูรณ์และส่งคืนผลลัพธ์ (คําขออาจถูกขัดจังหวะหากกระบวนการใช้เวลานาน)',
streaming: 'การสตรีมกลับมา การใช้งานการส่งคืนการสตรีมตาม SSE (เหตุการณ์ที่ส่งโดยเซิร์ฟเวอร์)',
conversationIdTip: '(ไม่บังคับ) รหัสการสนทนา: เว้นว่างไว้สําหรับการสนทนาครั้งแรก ส่ง conversation_id จากบริบทเพื่อสนทนาต่อ',
messageFeedbackApi: 'ข้อความความคิดเห็นของผู้ใช้เทอร์มินัล เช่น',
messageFeedbackApiTip: 'ให้คะแนนข้อความที่ได้รับในนามของผู้ใช้ปลายทางที่มีการชอบหรือไม่ชอบ ข้อมูลนี้สามารถมองเห็นได้ในหน้า Logs & Annotations และใช้สําหรับการปรับแต่งโมเดลในอนาคต',
messageIDTip: 'รหัสข้อความ',
ratingTip: 'ชอบหรือไม่ชอบ null คือเลิกทํา',
chatMsgHistoryApi: 'รับข้อความประวัติการแชท',
chatMsgHistoryApiTip: 'หน้าแรกส่งคืนแถบ \'ขีดจํากัด\' ล่าสุด ซึ่งอยู่ในลําดับที่กลับกัน',
chatMsgHistoryConversationIdTip: 'รหัสการสนทนา',
chatMsgHistoryFirstId: 'ID ของเรกคอร์ดแชทแรกบนหน้าปัจจุบัน ค่าเริ่มต้นคือไม่มี',
chatMsgHistoryLimit: 'จํานวนแชทที่ส่งคืนในคําขอเดียว',
conversationsListApi: 'รับรายการการสนทนา',
conversationsListApiTip: 'รับรายการเซสชันของผู้ใช้ปัจจุบัน โดยค่าเริ่มต้น 20 เซสชันล่าสุดจะถูกส่งคืน',
conversationsListFirstIdTip: 'รหัสของเรกคอร์ดสุดท้ายบนหน้าปัจจุบัน ค่าเริ่มต้นไม่มี',
conversationsListLimitTip: 'จํานวนแชทที่ส่งคืนในคําขอเดียว',
conversationRenamingApi: 'การเปลี่ยนชื่อการสนทนา',
conversationRenamingApiTip: 'เปลี่ยนชื่อการสนทนา ชื่อจะแสดงในอินเทอร์เฟซไคลเอ็นต์แบบหลายเซสชัน',
conversationRenamingNameTip: 'ชื่อใหม่',
parametersApi: 'รับข้อมูลพารามิเตอร์แอปพลิเคชัน',
parametersApiTip: 'ดึงพารามิเตอร์อินพุตที่กําหนดค่าไว้ รวมถึงชื่อตัวแปร ชื่อฟิลด์ ชนิด และค่าเริ่มต้น โดยทั่วไปจะใช้สําหรับแสดงฟิลด์เหล่านี้ในฟอร์มหรือกรอกค่าเริ่มต้นหลังจากโหลดไคลเอ็นต์',
},
develop: {
requestBody: 'เนื้อหาคําขอ',
pathParams: 'พารามิเตอร์เส้นทาง',
query: 'สอบถาม',
toc: 'เนื้อหา',
},
}
export default translation

View File

@@ -0,0 +1,564 @@
const translation = {
feature: {
fileUpload: {
title: 'การอัปโหลดไฟล์',
description: 'กล่องข้อความแชทช่วยให้สามารถอัปโหลดรูปภาพ เอกสาร และไฟล์อื่นๆ ได้',
supportedTypes: 'ประเภทไฟล์ที่รองรับ',
numberLimit: 'จำนวนสูงสุดที่อัปโหลดได้',
modalTitle: 'การตั้งค่าการอัปโหลดไฟล์',
},
imageUpload: {
title: 'การอัปโหลดรูปภาพ',
description: 'อนุญาตให้อัปโหลดรูปภาพได้',
supportedTypes: 'ประเภทไฟล์ที่รองรับ',
numberLimit: 'จำนวนสูงสุดที่อัปโหลดได้',
modalTitle: 'การตั้งค่าการอัปโหลดรูปภาพ',
},
bar: {
empty: 'เปิดใช้งานคุณสมบัติเพื่อเพิ่มประสบการณ์ผู้ใช้ของเว็บแอป',
enableText: 'เปิดใช้งานคุณสมบัติแล้ว',
manage: 'จัดการ',
},
documentUpload: {
title: 'เอกสาร',
description: 'การเปิดใช้งานเอกสารจะทำให้โมเดลสามารถรับเอกสารและตอบคำถามเกี่ยวกับเอกสารเหล่านั้นได้',
},
audioUpload: {
title: 'เสียง',
description: 'การเปิดใช้งานเสียงจะทำให้โมเดลสามารถประมวลผลไฟล์เสียงเพื่อการถอดข้อความและการวิเคราะห์ได้',
},
groupChat: {
title: 'ปรับปรุงแชท',
description: 'เพิ่มการตั้งค่าก่อนการสนทนาสําหรับแอปสามารถปรับปรุงประสบการณ์ของผู้ใช้ได้',
},
groupExperience: {
title: 'ปรับปรุงประสบการณ์',
},
conversationOpener: {
description: 'ในแอปแชท ประโยคแรกที่ AI พูดกับผู้ใช้อย่างแข็งขันมักจะใช้เป็นการต้อนรับ',
title: 'ที่เปิดการสนทนา',
},
suggestedQuestionsAfterAnswer: {
title: 'ติดตาม',
resDes: '3 ข้อเสนอแนะสําหรับผู้ใช้คําถามถัดไป',
tryToAsk: 'ลองถาม',
description: 'การตั้งค่าคําแนะนําคําถามถัดไปจะช่วยให้ผู้ใช้แชทได้ดีขึ้น',
},
moreLikeThis: {
title: 'เพิ่มเติมเช่นนี้',
tip: 'การใช้คุณสมบัตินี้จะมีค่าใช้จ่ายโทเค็นเพิ่มเติม',
generateNumTip: 'จํานวนครั้งที่สร้างขึ้นแต่ละครั้ง',
description: 'สร้างข้อความหลายข้อความพร้อมกัน จากนั้นแก้ไขและสร้างต่อไป',
},
speechToText: {
description: 'สามารถใช้การป้อนข้อมูลด้วยเสียงในการแชทได้',
title: 'คําพูดเป็นข้อความ',
resDes: 'เปิดใช้งานการป้อนข้อมูลด้วยเสียง',
},
textToSpeech: {
title: 'ข้อความเป็นคําพูด',
resDes: 'เปิดใช้งานข้อความเป็นเสียง',
description: 'ข้อความการสนทนาสามารถแปลงเป็นคําพูดได้',
},
citation: {
title: 'การอ้างอิงและการระบุแหล่งที่มา',
resDes: 'เปิดใช้งานการอ้างอิงและการระบุแหล่งที่มา',
description: 'แสดงเอกสารต้นฉบับและส่วนที่มาของเนื้อหาที่สร้างขึ้น',
},
annotation: {
scoreThreshold: {
accurateMatch: 'การจับคู่ที่แม่นยํา',
description: 'ใช้เพื่อกําหนดเกณฑ์ความคล้ายคลึงกันสําหรับการตอบกลับคําอธิบายประกอบ',
easyMatch: 'จับคู่ง่าย',
title: 'เกณฑ์คะแนน',
},
matchVariable: {
title: 'ตัวแปรการจับคู่',
choosePlaceholder: 'เลือกตัวแปรการจับคู่',
},
removeConfirm: 'ลบคําอธิบายประกอบนี้ ?',
cacheManagement: 'คำ อธิบาย',
title: 'คําอธิบายประกอบ ตอบกลับ',
remove: 'ถอด',
resDes: 'เปิดใช้งานการตอบสนองคําอธิบายประกอบ',
add: 'เพิ่มคําอธิบายประกอบ',
edit: 'แก้ไขคําอธิบายประกอบ',
cached: 'มีคําอธิบายประกอบ',
description: 'คุณสามารถเพิ่มการตอบกลับคุณภาพสูงลงในแคชด้วยตนเองเพื่อจับคู่ลําดับความสําคัญกับคําถามของผู้ใช้ที่คล้ายกัน',
},
dataSet: {
queryVariable: {
ok: 'ตกลง, ได้',
noVar: 'ไม่ใช่ตัวแปร',
choosePlaceholder: 'เลือกตัวแปรแบบสอบถาม',
tip: 'ตัวแปรนี้จะถูกใช้เป็นอินพุตแบบสอบถามสําหรับการดึงบริบท โดยรับข้อมูลบริบทที่เกี่ยวข้องกับอินพุตของตัวแปรนี้',
unableToQueryDataSetTip: 'ไม่สามารถสืบค้นความรู้ได้สําเร็จ โปรดเลือกตัวแปรการสืบค้นบริบทในส่วนบริบท',
noVarTip: 'โปรดสร้างตัวแปรภายใต้ส่วนตัวแปร',
title: 'ตัวแปรคิวรี',
contextVarNotEmpty: 'ตัวแปรการสืบค้นบริบทต้องไม่ว่างเปล่า',
deleteContextVarTip: 'ตัวแปรนี้ถูกตั้งค่าเป็นตัวแปรแบบสอบถามบริบท และการลบตัวแปรนี้จะส่งผลต่อการใช้ความรู้ตามปกติ หากคุณยังต้องการลบ โปรดเลือกใหม่ในส่วนบริบท',
unableToQueryDataSet: 'ไม่สามารถสืบค้นความรู้ได้',
deleteContextVarTitle: 'ต้องการลบตัวแปร “{{varName}}” หรือไม่?',
},
noDataSet: 'ไม่พบความรู้',
notSupportSelectMulti: 'ปัจจุบันรองรับความรู้เพียงหนึ่งความรู้',
selected: 'เลือกความรู้',
title: 'ความรู้',
toCreate: 'ไปที่สร้าง',
noData: 'คุณสามารถนําเข้าความรู้เป็นบริบทได้',
selectTitle: 'เลือกข้อมูลอ้างอิง ความรู้',
},
tools: {
modal: {
toolType: {
title: 'ประเภทเครื่องมือ',
placeholder: 'โปรดเลือกประเภทเครื่องมือ',
},
name: {
title: 'ชื่อ',
placeholder: 'กรุณากรอกชื่อ',
},
variableName: {
title: 'ชื่อตัวแปร',
placeholder: 'กรุณากรอกชื่อตัวแปร',
},
title: 'เครื่องมือ',
},
title: 'เครื่อง มือ',
tips: 'เครื่องมือมีวิธีการเรียก API มาตรฐาน โดยใช้อินพุตหรือตัวแปรของผู้ใช้เป็นพารามิเตอร์คําขอสําหรับการสืบค้นข้อมูลภายนอกตามบริบท',
toolsInUse: 'เครื่องมือ {{count}} ที่ใช้งาน',
},
conversationHistory: {
editModal: {
userPrefix: 'คํานําหน้าผู้ใช้',
title: 'แก้ไขชื่อบทบาทการสนทนา',
assistantPrefix: 'คํานําหน้าผู้ช่วย',
},
description: 'ตั้งชื่อคํานําหน้าสําหรับบทบาทการสนทนา',
learnMore: 'ศึกษาเพิ่มเติม',
title: 'ประวัติการสนทนา',
tip: 'ประวัติการสนทนายังไม่ได้เปิดใช้งาน กรุณาเพิ่ม <histories> ในคำสั่งด้านบน',
},
toolbox: {
title: 'เครื่อง มือ',
},
moderation: {
modal: {
provider: {
openaiTip: {
suffix: '.',
prefix: 'การกลั่นกรอง OpenAI ต้องใช้คีย์ OpenAI API ที่กําหนดค่าไว้ใน',
},
keywords: 'คำ',
openai: 'การกลั่นกรอง OpenAI',
title: 'ผู้จัดหา',
},
keywords: {
placeholder: 'หนึ่งบรรทัดต่อบรรทัดคั่นด้วยตัวแบ่งบรรทัด',
tip: 'หนึ่งบรรทัด คั่นด้วยตัวแบ่งบรรทัด สูงสุด 100 อักขระต่อบรรทัด',
line: 'สาย',
},
content: {
output: 'เนื้อหา OUTPUT ปานกลาง',
errorMessage: 'การตอบกลับที่ตั้งไว้ล่วงหน้าต้องไม่ว่างเปล่า',
fromApi: 'การตอบกลับที่ตั้งไว้ล่วงหน้าจะถูกส่งคืนโดย API',
supportMarkdown: 'รองรับ Markdown',
placeholder: 'เนื้อหาตอบกลับที่ตั้งไว้ล่วงหน้าที่นี่',
condition: 'เปิดใช้งานเนื้อหา INPUT และ OUTPUT กลั่นกรองอย่างน้อยหนึ่งรายการ',
input: 'กลั่นกรองเนื้อหา INPUT',
preset: 'การตอบกลับที่ตั้งไว้ล่วงหน้า',
},
openaiNotConfig: {
after: '',
before: 'การกลั่นกรอง OpenAI ต้องใช้คีย์ OpenAI API ที่กําหนดค่าไว้ใน',
},
title: 'การตั้งค่าการกลั่นกรองเนื้อหา',
},
contentEnableLabel: 'การกลั่นกรองเนื้อหาเปิดใช้งานแล้ว',
outputEnabled: 'ผลิตภัณฑ์',
title: 'การกลั่นกรองเนื้อหา',
allEnabled: 'อินพุต & เอาต์พุต',
inputEnabled: 'อินพุต',
description: 'รักษาความปลอดภัยเอาต์พุตโมเดลโดยใช้ API การกลั่นกรองหรือรักษารายการคําที่ละเอียดอ่อน',
},
},
pageTitle: {
line1: 'พร้อมท์',
line2: 'วิศวกรรม',
},
promptMode: {
advancedWarning: {
ok: 'ตกลง, ได้',
description: 'ในโหมดผู้เชี่ยวชาญ คุณสามารถแก้ไข PROMPT ทั้งหมดได้',
title: 'คุณได้เปลี่ยนเป็นโหมดผู้เชี่ยวชาญแล้ว และเมื่อคุณแก้ไข PROMPT แล้ว คุณจะไม่สามารถกลับสู่โหมดพื้นฐานได้',
learnMore: 'ศึกษาเพิ่มเติม',
},
operation: {
addMessage: 'เพิ่มข้อความ',
},
switchBack: 'สลับกลับ',
contextMissing: 'องค์ประกอบบริบทที่พลาดไปประสิทธิภาพของพรอมต์อาจไม่ดี',
simple: 'เปลี่ยนเป็นโหมดผู้เชี่ยวชาญเพื่อแก้ไข PROMPT ทั้งหมด',
advanced: 'แฟชั่นผู้เชี่ยวชาญ',
},
operation: {
automatic: 'ผลิต',
applyConfig: 'ตีพิมพ์',
disagree: 'ไม่ชอบ',
userAction: 'ผู้ใช้',
stopResponding: 'หยุดการตอบสนอง',
cancelAgree: 'ยกเลิกถูกใจ',
addFeature: 'เพิ่มคุณสมบัติ',
cancelDisagree: 'ยกเลิกการไม่ชอบ',
agree: 'ชอบ',
resetConfig: 'รี เซ็ต',
debugConfig: 'ดีบัก',
},
notSetAPIKey: {
settingBtn: 'ไปที่การตั้งค่า',
trailFinished: 'เส้นทางเสร็จสิ้น',
description: 'ยังไม่ได้ตั้งค่าคีย์ผู้ให้บริการ LLM และจําเป็นต้องตั้งค่าก่อนการดีบัก',
title: 'ไม่ได้ตั้งค่าคีย์ผู้ให้บริการ LLM',
},
trailUseGPT4Info: {
description: 'ใช้ gpt-4 โปรดตั้งค่าคีย์ API',
title: 'ไม่รองรับ gpt-4 ในขณะนี้',
},
codegen: {
applyChanges: 'ใช้การเปลี่ยนแปลง',
generate: 'ผลิต',
instructionPlaceholder: 'ป้อนคําอธิบายโดยละเอียดของรหัสที่คุณต้องการสร้าง',
noDataLine1: 'อธิบายกรณีการใช้งานของคุณทางด้านซ้าย',
title: 'เครื่องสร้างรหัส',
overwriteConfirmMessage: 'การดําเนินการนี้จะเขียนทับโค้ดที่มีอยู่ คุณต้องการดําเนินการต่อหรือไม่?',
loading: 'กําลังสร้างโค้ด...',
generatedCodeTitle: 'รหัสที่สร้างขึ้น',
apply: 'ใช้',
overwriteConfirmTitle: 'เขียนทับรหัสที่มีอยู่ใช่ไหม',
instruction: 'คำ แนะ นำ',
resTitle: 'รหัสที่สร้างขึ้น',
noDataLine2: 'ตัวอย่างโค้ดจะแสดงที่นี่',
description: 'ตัวสร้างโค้ดใช้โมเดลที่กําหนดค่าเพื่อสร้างโค้ดคุณภาพสูงตามคําแนะนําของคุณ โปรดให้คําแนะนําที่ชัดเจนและละเอียด',
},
generate: {
template: {
pythonDebugger: {
name: 'ดีบักเกอร์ Python',
instruction: 'บอทที่สามารถสร้างและแก้ไขข้อบกพร่องโค้ดของคุณตามคําสั่งของคุณ',
},
translation: {
instruction: 'นักแปลที่สามารถแปลได้หลายภาษา',
name: 'การแปล',
},
professionalAnalyst: {
name: 'นักวิเคราะห์มืออาชีพ',
instruction: 'ดึงข้อมูลเชิงลึก ระบุความเสี่ยง และกลั่นกรองข้อมูลสําคัญจากรายงานขนาดยาวลงในบันทึกเดียว',
},
excelFormulaExpert: {
name: 'ผู้เชี่ยวชาญด้านสูตร Excel',
instruction: 'แชทบอทที่สามารถช่วยให้ผู้ใช้มือใหม่เข้าใจ ใช้ และสร้างสูตร Excel ตามคําแนะนําของผู้ใช้',
},
travelPlanning: {
name: 'การวางแผนการเดินทาง',
instruction: 'ผู้ช่วยวางแผนการเดินทางเป็นเครื่องมืออัจฉริยะที่ออกแบบมาเพื่อช่วยให้ผู้ใช้วางแผนการเดินทางได้อย่างง่ายดาย',
},
SQLSorcerer: {
name: 'พ่อมด SQL',
instruction: 'แปลงภาษาในชีวิตประจําวันให้เป็นแบบสอบถาม SQL',
},
GitGud: {
name: 'กิต gud',
instruction: 'สร้างคําสั่ง Git ที่เหมาะสมตามการดําเนินการควบคุมเวอร์ชันที่ผู้ใช้อธิบาย',
},
meetingTakeaways: {
name: 'ประเด็นการประชุม',
instruction: 'กลั่นกรองการประชุมเป็นบทสรุปที่กระชับ รวมถึงหัวข้อการสนทนา ประเด็นสําคัญ และรายการปฏิบัติ',
},
writingsPolisher: {
name: 'เครื่องขัดเขียน',
instruction: 'ใช้เทคนิคการแก้ไขคําโฆษณาขั้นสูงเพื่อปรับปรุงงานเขียนของคุณ',
},
},
generate: 'ผลิต',
instruction: 'คำ แนะ นำ',
apply: 'ใช้',
resTitle: 'พรอมต์ที่สร้างขึ้น',
title: 'เครื่องกําเนิดพร้อมท์',
tryIt: 'ลองดู',
overwriteTitle: 'แทนที่การกําหนดค่าที่มีอยู่ใช่ไหม',
overwriteMessage: 'การใช้พรอมต์นี้จะแทนที่การกําหนดค่าที่มีอยู่',
description: 'ตัวสร้างพรอมต์ใช้โมเดลที่กําหนดค่าเพื่อปรับพรอมต์ให้เหมาะสมเพื่อคุณภาพที่สูงขึ้นและโครงสร้างที่ดีขึ้น โปรดเขียนคําแนะนําที่ชัดเจนและละเอียด',
loading: 'กําลังประสานงานแอปพลิเคชันสําหรับคุณ...',
latest: 'ล่าสุด',
dismiss: 'ปฏิเสธ',
optional: 'ตัวเลือก',
optimizationNote: 'หมายเหตุการปรับแต่ง',
press: 'กด',
idealOutput: 'ผลลัพธ์ที่เหมาะสม',
to: 'ไป',
instructionPlaceHolderLine2: 'รูปแบบการส่งออกไม่ถูกต้อง กรุณาปฏิบัติตามรูปแบบ JSON อย่างเคร่งครัด.',
versions: 'เวอร์ชัน',
newNoDataLine1: 'เขียนคำแนะนำในคอลัมน์ซ้าย และคลิกที่สร้างเพื่อดูผลลัพธ์.',
instructionPlaceHolderLine3: 'โทนเสียงดูเข้มเกินไป กรุณาทำให้มันเป็นกันเองมากขึ้น',
instructionPlaceHolderLine1: 'ทำให้ผลลัพธ์กระชับขึ้น โดยคงสาระสำคัญไว้',
instructionPlaceHolderTitle: 'อธิบายว่าคุณต้องการปรับปรุง Prompt นี้อย่างไร ตัวอย่างเช่น:',
version: 'เวอร์ชัน',
insertContext: 'แทรกบริบท',
idealOutputPlaceholder: 'โปรดอธิบายรูปแบบการตอบสนองที่คุณต้องการ ความยาว โทนเสียง และความต้องการเนื้อหา...',
optimizePromptTooltip: 'ปรับปรุงในเครื่องกำเนิดคำแนะนำ',
codeGenInstructionPlaceHolderLine: 'ยิ่งข้อเสนอแนะแน่นอนมากขึ้น เช่น ประเภทของข้อมูลที่เป็นอินพุตและเอาต์พุต รวมถึงวิธีการที่ตัวแปรถูกประมวลผล การสร้างโค้ดจะยิ่งแม่นยำมากขึ้น',
},
resetConfig: {
title: 'ยืนยันการรีเซ็ต?',
message: 'รีเซ็ตจะละทิ้งการเปลี่ยนแปลง โดยคืนค่าการกําหนดค่าที่เผยแพร่ล่าสุด',
},
errorMessage: {
waitForFileUpload: 'โปรดรอให้ไฟล์/ไฟล์อัปโหลด',
notSelectModel: 'โปรดเลือกรุ่น',
waitForBatchResponse: 'โปรดรอให้การตอบกลับงานแบทช์เสร็จสมบูรณ์',
waitForResponse: 'โปรดรอให้การตอบกลับข้อความก่อนหน้าเสร็จสมบูรณ์',
waitForImgUpload: 'โปรดรอให้ภาพอัปโหลด',
queryRequired: 'ต้องส่งข้อความคําขอ',
nameOfKeyRequired: 'ชื่อของคีย์: {{key}} จำเป็นต้องมี',
valueOfVarRequired: 'ค่า {{key}} ไม่สามารถเว้นว่างได้',
},
warningMessage: {
timeoutExceeded: 'ผลลัพธ์จะไม่แสดงเนื่องจากหมดเวลา โปรดดูบันทึกเพื่อรวบรวมผลลัพธ์ที่สมบูรณ์',
},
variableTable: {
key: 'ปุ่มตัวแปร',
typeString: 'เชือก',
typeSelect: 'เลือก',
type: 'ประเภทอินพุต',
name: 'ชื่อฟิลด์ป้อนข้อมูลของผู้ใช้',
action: 'การดําเนินการ',
},
varKeyError: {
canNoBeEmpty: '{{key}} จำเป็นต้องมี',
tooLong: '{{key}} ยาวเกินไป ไม่สามารถยาวกว่า 30 ตัวอักษร',
notValid: '{{key}} ไม่ถูกต้อง สามารถใช้ได้เฉพาะตัวอักษร ตัวเลข และเครื่องหมายขีดล่างเท่านั้น',
notStartWithNumber: '{{key}} ไม่สามารถเริ่มต้นด้วยตัวเลขได้',
keyAlreadyExists: '{{key}} มีอยู่แล้ว',
},
otherError: {
queryNoBeEmpty: 'ต้องตั้งค่าคิวรีในพร้อมท์',
promptNoBeEmpty: 'พรอมต์ไม่สามารถว่างเปล่าได้',
historyNoBeEmpty: 'ต้องตั้งค่าประวัติการสนทนาในข้อความแจ้ง',
},
variableConfig: {
'file': {
image: {
name: 'ภาพ',
},
audio: {
name: 'เสียง',
},
document: {
name: 'เอกสาร',
},
video: {
name: 'วีดิทัศน์',
},
custom: {
description: 'ระบุประเภทไฟล์อื่นๆ',
name: 'ไฟล์ประเภทอื่น ๆ',
createPlaceholder: ' นามสกุลไฟล์ เช่น .doc',
},
supportFileTypes: 'ประเภทไฟล์ที่รองรับ',
},
'errorMsg': {
atLeastOneOption: 'จําเป็นต้องมีอย่างน้อยหนึ่งตัวเลือก',
labelNameRequired: 'ต้องมีชื่อฉลาก',
optionRepeat: 'มีตัวเลือกการทําซ้ํา',
varNameCanBeRepeat: 'ไม่สามารถทําซ้ําชื่อตัวแปรได้',
},
'hide': 'ซ่อน',
'required': 'ต้องระบุ',
'number': 'เลข',
'inputPlaceholder': 'กรุณาป้อน',
'uploadFileTypes': 'อัปโหลดประเภทไฟล์',
'content': 'เนื้อหา',
'addOption': 'เพิ่มตัวเลือก',
'labelName': 'ชื่อฉลาก',
'options': 'ตัวเลือก',
'stringTitle': 'ตัวเลือกกล่องข้อความฟอร์ม',
'noDefaultValue': 'ไม่มีค่าเริ่มต้น',
'varName': 'ชื่อตัวแปร',
'defaultValue': 'ค่าเริ่มต้น',
'fieldType': 'ชนิดฟิลด์',
'selectDefaultValue': 'เลือกค่าเริ่มต้น',
'string': 'ข้อความสั้น',
'text-input': 'ข้อความสั้น',
'multi-files': 'รายการไฟล์',
'maxLength': 'ความยาวสูงสุด',
'addModalTitle': 'เพิ่มฟิลด์อินพุต',
'localUpload': 'อัปโหลดในเครื่อง',
'single-file': 'ไฟล์เดียว',
'select': 'เลือก',
'maxNumberOfUploads': 'จํานวนการอัปโหลดสูงสุด',
'editModalTitle': 'แก้ไขฟิลด์อินพุต',
'apiBasedVar': 'ตัวแปรที่ใช้ API',
'paragraph': 'วรรค',
'both': 'ทั้งสอง',
'checkbox': 'Checkbox',
'jsonSchema': 'แบบจำลอง JSON',
'json': 'รหัส JSON',
'optional': 'ตัวเลือก',
'unit': 'หน่วย',
'placeholder': 'ตัว ยึด',
'noDefaultSelected': 'อย่าเลือก',
'displayName': 'ชื่อที่แสดง',
'startChecked': 'เริ่มตรวจสอบ',
'startSelectedOption': 'เริ่มตัวเลือกที่เลือก',
'uploadMethod': 'วิธีการอัปโหลด',
'tooltips': 'คําแนะนําเครื่องมือ',
'showAllSettings': 'แสดงการตั้งค่าทั้งหมด',
'unitPlaceholder': 'แสดงหน่วยหลังตัวเลข เช่น โทเค็น',
'defaultValuePlaceholder': 'ป้อนค่าเริ่มต้นเพื่อเติมข้อมูลในฟิลด์ล่วงหน้า',
'placeholderPlaceholder': 'ป้อนข้อความที่จะแสดงเมื่อเขตข้อมูลว่างเปล่า',
'tooltipsPlaceholder': 'ป้อนข้อความที่เป็นประโยชน์ที่แสดงเมื่อวางเมาส์เหนือป้ายกํากับ',
'description': 'การตั้งค่าสำหรับตัวแปร {{varName}}',
'notSet': 'ยังไม่ได้ตั้งค่า ลองพิมพ์ {{input}} ในช่องแจ้งนำหน้า',
'maxNumberTip': 'เอกสาร < {{docLimit}}, รูปภาพ < {{imgLimit}}, เสียง < {{audioLimit}}, วิดีโอ < {{videoLimit}}',
},
vision: {
visionSettings: {
resolution: 'มติ',
uploadMethod: 'วิธีการอัปโหลด',
localUpload: 'อัปโหลดในเครื่อง',
low: 'ต่ํา',
high: 'สูง',
title: 'การตั้งค่าวิสัยทัศน์',
uploadLimit: 'ขีดจํากัดการอัปโหลด',
both: 'ทั้งสอง',
url: 'URL',
resolutionTooltip: 'ความละเอียดต่ำจะช่วยให้โมเดลรับภาพเวอร์ชันความละเอียดต่ำขนาด 512 x 512 และแสดงภาพด้วยงบประมาณ 65 โทเค็น ซึ่งช่วยให้ API ตอบสนองได้เร็วขึ้นและใช้โทเค็นนำเข้าน้อยลงสำหรับกรณีการใช้งานที่ไม่ต้องการรายละเอียดสูง\n\nความละเอียดสูงจะเริ่มจากการให้โมเดลเห็นภาพความละเอียดต่ำก่อน จากนั้นสร้างการครอปภาพรายละเอียดของภาพอินพุตเป็นสี่เหลี่ยมขนาด 512px ตามขนาดภาพอินพุต แต่ละการครอปละเอียดจะใช้โทเค็นสองเท่า รวมเป็น 129 โทเค็น',
},
onlySupportVisionModelTip: 'รองรับเฉพาะโมเดลการมองเห็น',
name: 'การมองเห็น',
description: 'เปิดใช้งานวิสัยทัศน์จะช่วยให้โมเดลสามารถถ่ายภาพและตอบคําถามเกี่ยวกับภาพเหล่านั้นได้',
settings: 'การตั้งค่า',
},
voice: {
voiceSettings: {
autoPlayEnabled: 'บน',
autoPlay: 'เล่นอัตโนมัติ',
voice: 'เสียง',
resolutionTooltip: 'ภาษาสนับสนุนเสียงแปลงข้อความเป็นคําพูด。',
autoPlayDisabled: 'ไป',
title: 'การตั้งค่าเสียง',
language: 'ภาษา',
},
name: 'เสียง',
settings: 'การตั้งค่า',
description: 'การตั้งค่าเสียงข้อความเป็นคําพูด',
defaultDisplay: 'เสียงเริ่มต้น',
},
openingStatement: {
tooShort: 'ต้องใช้ข้อความแจ้งเริ่มต้นอย่างน้อย 20 คําเพื่อสร้างคําพูดเปิดการสนทนา',
openingQuestion: 'คําถามเปิด',
writeOpener: 'ตัวเปิดแก้ไข',
add: 'เพิ่ม',
title: 'ที่เปิดการสนทนา',
noDataPlaceHolder: 'การเริ่มการสนทนากับผู้ใช้สามารถช่วยให้ AI สร้างความสัมพันธ์ที่ใกล้ชิดกับพวกเขาในแอปพลิเคชันการสนทนา',
placeholder: 'เขียนข้อความเปิดของคุณที่นี่ คุณสามารถใช้ตัวแปร ลองพิมพ์ {{variable}}',
openingQuestionPlaceholder: 'คุณสามารถใช้ตัวแปร ลองพิมพ์ {{variable}} ดูสิ',
varTip: 'คุณสามารถใช้ตัวแปรได้ ลองพิมพ์ {{variable}}',
notIncludeKey: 'คำสั่งเริ่มต้นไม่ได้รวมตัวแปร: {{key}}. กรุณาเพิ่มตัวแปรนี้ในคำสั่งเริ่มต้นด้วย',
},
modelConfig: {
modeType: {
completion: 'สมบูรณ์',
chat: 'สนทนา',
},
model: 'แบบ',
title: 'รุ่นและพารามิเตอร์',
setTone: 'กําหนดน้ําเสียงของการตอบกลับ',
},
inputs: {
run: 'วิ่ง',
userInputField: 'ฟิลด์ป้อนข้อมูลของผู้ใช้',
queryPlaceholder: 'กรุณากรอกข้อความคําขอ',
queryTitle: 'เนื้อหาแบบสอบถาม',
title: 'ดีบัก & ดูตัวอย่าง',
noVar: 'กรอกค่าของตัวแปร ซึ่งจะถูกแทนที่โดยอัตโนมัติในคําพร้อมท์ทุกครั้งที่เริ่มเซสชันใหม่',
previewTitle: 'พร้อมท์ดูตัวอย่าง',
chatVarTip: 'กรอกค่าของตัวแปร ซึ่งจะถูกแทนที่โดยอัตโนมัติในคําพร้อมท์ทุกครั้งที่เริ่มเซสชันใหม่',
noPrompt: 'ลองเขียนข้อความแจ้งในการป้อนข้อมูลล่วงหน้า',
completionVarTip: 'กรอกค่าของตัวแปร ซึ่งจะถูกแทนที่โดยอัตโนมัติในคําพร้อมท์ทุกครั้งที่มีการส่งคําถาม',
},
datasetConfig: {
retrieveOneWay: {
title: 'การดึงข้อมูล N-to-1',
description: 'เอเจนต์จะเลือกความรู้ที่ดีที่สุดสําหรับการสืบค้นด้วยตนเอง ดีที่สุดสําหรับการใช้งานที่มีความรู้ที่แตกต่างและจํากัด',
},
retrieveMultiWay: {
title: 'การดึงข้อมูลหลายเส้นทาง',
description: 'ตามความตั้งใจของผู้ใช้ การสืบค้นในความรู้ทั้งหมด ดึงข้อความที่เกี่ยวข้องจากหลายแหล่ง และเลือกผลลัพธ์ที่ดีที่สุดที่ตรงกับการสืบค้นของผู้ใช้หลังจากจัดอันดับใหม่',
},
score_thresholdTip: 'ใช้เพื่อกําหนดเกณฑ์ความคล้ายคลึงกันสําหรับการกรองกลุ่ม',
settingTitle: 'การตั้งค่าการดึงข้อมูล',
rerankModelRequired: 'จําเป็นต้องมีโมเดลจัดอันดับใหม่ที่กําหนดค่าไว้',
knowledgeTip: 'คลิกปุ่ม " " เพื่อเพิ่มความรู้',
embeddingModelRequired: 'จําเป็นต้องมีโมเดลการฝังที่กําหนดค่าไว้',
score_threshold: 'เกณฑ์คะแนน',
retrieveChangeTip: 'การปรับเปลี่ยนโหมดดัชนีและโหมดการดึงข้อมูลอาจส่งผลต่อแอปพลิเคชันที่เกี่ยวข้องกับความรู้นี้',
top_k: 'ท็อป K',
params: 'พารามิเตอร์',
top_kTip: 'ใช้เพื่อกรองกลุ่มที่คล้ายกับคําถามของผู้ใช้มากที่สุด ระบบจะปรับค่าของ Top K แบบไดนามิกตาม max_tokens ของรุ่นที่เลือก',
},
assistantType: {
chatAssistant: {
name: 'ผู้ช่วยพื้นฐาน',
description: 'สร้างผู้ช่วยตามแชทโดยใช้โมเดลภาษาขนาดใหญ่',
},
agentAssistant: {
name: 'ผู้ช่วยตัวแทน',
description: 'สร้างตัวแทนอัจฉริยะที่สามารถเลือกเครื่องมือเพื่อทํางานให้เสร็จได้โดยอัตโนมัติ',
},
name: 'ประเภทผู้ช่วย',
},
agent: {
agentModeType: {
functionCall: 'การเรียกฟังก์ชัน',
ReACT: 'ตอบสนอง',
},
setting: {
maximumIterations: {
description: 'จํากัดจํานวนการทําซ้ําที่ผู้ช่วยตัวแทนสามารถดําเนินการได้',
name: 'การทําซ้ําสูงสุด',
},
name: 'การตั้งค่าตัวแทน',
description: 'การตั้งค่าผู้ช่วยตัวแทนอนุญาตให้ตั้งค่าโหมดตัวแทนและคุณสมบัติขั้นสูง เช่น ข้อความแจ้งในตัว ซึ่งใช้ได้เฉพาะในประเภทตัวแทนเท่านั้น',
},
tools: {
enabled: 'เปิด',
name: 'เครื่อง มือ',
description: 'การใช้เครื่องมือสามารถขยายขีดความสามารถของ LLM ได้ เช่น การค้นหาทางอินเทอร์เน็ตหรือการคํานวณทางวิทยาศาสตร์',
},
agentMode: 'โหมดตัวแทน',
firstPrompt: 'พรอมต์แรก',
buildInPrompt: 'พรอมต์ในตัว',
promptPlaceholder: 'เขียนข้อความแจ้งของคุณที่นี่',
nextIteration: 'การทําซ้ําครั้งต่อไป',
agentModeDes: 'ตั้งค่าประเภทของโหมดการอนุมานสําหรับตัวแทน',
},
orchestrate: 'ออเคสตร้า',
variableTitle: 'ตัว แปร',
noResult: 'ผลลัพธ์จะแสดงที่นี่',
formattingChangedText: 'การแก้ไขการจัดรูปแบบจะรีเซ็ตพื้นที่ดีบัก คุณแน่ใจหรือไม่?',
publishAs: 'เผยแพร่เป็น',
result: 'ข้อความที่ส่งออก',
formattingChangedTitle: 'การจัดรูปแบบเปลี่ยนไป',
completionSubTitle: 'พรอมต์คํานําหน้า',
chatSubTitle: 'คำ แนะ นำ',
debugAsMultipleModel: 'ดีบักเป็นหลายรุ่น',
variableTip: 'ผู้ใช้กรอกตัวแปรในแบบฟอร์ม แทนที่ตัวแปรในพรอมต์โดยอัตโนมัติ',
debugAsSingleModel: 'ดีบักเป็นโมเดลเดียว',
duplicateModel: 'สำเนา',
autoAddVar: 'ตัวแปรที่ไม่ได้กําหนดอ้างอิงในพรอมต์ล่วงหน้าคุณต้องการเพิ่มในแบบฟอร์มการป้อนข้อมูลของผู้ใช้หรือไม่?',
promptTip: 'พรอมต์ช่วยชี้แนะแบบตอบสนองของ AI ด้วยคำแนะนำและข้อจำกัด ใส่ตัวแปรเช่น {{input}} พรอมต์นี้จะมองไม่เห็นสำหรับผู้ใช้',
notSetVar: 'ตัวแปรช่วยให้ผู้ใช้สามารถใส่คำกระตุ้นหรือข้อคิดเห็นเริ่มต้นเมื่อกรอกแบบฟอร์ม คุณสามารถลองใส่ "{{input}}" ในคำกระตุ้นได้',
}
export default translation

View File

@@ -0,0 +1,112 @@
const translation = {
title: 'บันทึก',
description: 'บันทึกบันทึกสถานะการทํางานของแอปพลิเคชัน รวมถึงการป้อนข้อมูลของผู้ใช้และการตอบกลับ AI',
dateTimeFormat: 'MM/DD/YYYY hh:mm:ss A',
table: {
header: {
updatedTime: 'อัพเดทเวลา',
time: 'เวลาที่สร้าง',
endUser: 'ผู้ใช้ปลายทางหรือบัญชี',
input: 'อินพุต',
output: 'ผลิตภัณฑ์',
summary: 'ชื่อเรื่อง',
messageCount: 'จํานวนข้อความ',
userRate: 'อัตราผู้ใช้',
adminRate: 'Op. อัตรา',
startTime: 'เวลาเริ่มต้น',
status: 'สถานะ',
runtime: 'เวลาทํางาน',
tokens: 'โท เค็น',
user: 'ผู้ใช้ปลายทางหรือบัญชี',
version: 'เวอร์ชัน',
triggered_from: 'ถูกกระตุ้นโดย',
},
pagination: {
previous: 'ก่อนหน้า',
next: 'ต่อไป',
},
empty: {
noChat: 'ยังไม่มีการสนทนา',
noOutput: 'ไม่มีเอาต์พุต',
element: {
title: 'มีใครอยู่ที่นั่นไหม?',
content: 'สังเกตและใส่คําอธิบายประกอบการโต้ตอบระหว่างผู้ใช้ปลายทางและแอปพลิเคชัน AI ที่นี่เพื่อปรับปรุงความแม่นยําของ AI อย่างต่อเนื่อง คุณสามารถลอง<shareLink>แชร์</shareLink>หรือ<testLink>ทดสอบเว็บ</testLink>แอปด้วยตัวคุณเอง แล้วกลับไปที่หน้านี้',
},
},
},
detail: {
time: 'เวลา',
conversationId: 'รหัสการสนทนา',
promptTemplate: 'เทมเพลตพร้อมท์',
promptTemplateBeforeChat: 'เทมเพลตพร้อมท์ก่อนแชท · เป็นข้อความของระบบ',
annotationTip: 'การปรับปรุงที่ทําเครื่องหมายโดย {{user}}',
second: 's',
tokenCost: 'โทเค็นที่ใช้ไป',
loading: 'การโหลด',
operation: {
like: 'ชอบ',
dislike: 'ไม่ชอบ',
addAnnotation: 'เพิ่มการปรับปรุง',
editAnnotation: 'แก้ไขการปรับปรุง',
annotationPlaceholder: 'ป้อนคําตอบที่คาดหวังที่คุณต้องการให้ AI ตอบกลับ ซึ่งสามารถใช้สําหรับการปรับแต่งโมเดลและการปรับปรุงคุณภาพการสร้างข้อความอย่างต่อเนื่องในอนาคต',
},
variables: 'ตัว แปร',
uploadImages: 'รูปภาพที่อัปโหลด',
timeConsuming: '',
modelParams: 'พารามิเตอร์แบบจําลอง',
},
filter: {
period: {
today: 'วันนี้',
last7days: '7 วันที่ผ่านมา',
last4weeks: '4 สัปดาห์ที่ผ่านมา',
last3months: '3 เดือนที่ผ่านมา',
last12months: '12 เดือนที่ผ่านมา',
monthToDate: 'เดือนจนถึงปัจจุบัน',
quarterToDate: 'ไตรมาสจนถึงปัจจุบัน',
yearToDate: 'ปีจนถึงปัจจุบัน',
allTime: 'ตลอดเวลา',
last30days: '30 วันที่ผ่านมา',
custom: 'กำหนดเอง',
},
annotation: {
all: 'ทั้งหมด',
annotated: 'การปรับปรุงที่มีคําอธิบายประกอบ ({{count}} รายการ)',
not_annotated: 'ไม่มีคําอธิบายประกอบ',
},
sortBy: 'เมืองสีดํา:',
descending: 'จากมากไปหาน้อย',
ascending: 'จากน้อยไปมาก',
},
workflowTitle: 'บันทึกเวิร์กโฟลว์',
workflowSubtitle: 'บันทึกบันทึกการทํางานของ Automate',
runDetail: {
title: 'บันทึกการสนทนา',
workflowTitle: 'รายละเอียดบันทึก',
fileListDetail: 'รายละเอียด',
fileListLabel: 'รายละเอียดไฟล์',
testWithParams: 'ทดสอบด้วยพารามิเตอร์',
},
promptLog: 'บันทึกพร้อมท์',
agentLog: 'บันทึกตัวแทน',
viewLog: 'ดูบันทึก',
agentLogDetail: {
agentMode: 'โหมดตัวแทน',
toolUsed: 'เครื่องมือที่ใช้',
iterations: 'เกิด ซ้ำ',
iteration: 'เกิด ซ้ำ',
finalProcessing: 'การประมวลผลขั้นสุดท้าย',
},
dateFormat: 'วัน/เดือน/ปี',
triggerBy: {
debugging: 'การแก้ไขข้อบกพร่อง',
appRun: 'เว็บแอป',
webhook: 'เว็บฮุค',
schedule: 'ตารางเวลา',
plugin: 'ปลั๊กอิน',
ragPipelineRun: 'กระบวนการ RAG',
ragPipelineDebugging: 'การดีบัก RAG',
},
}
export default translation

View File

@@ -0,0 +1,189 @@
const translation = {
welcome: {
firstStepTip: 'ในการเริ่มต้น',
enterKeyTip: 'ป้อนคีย์ OpenAI API ของคุณด้านล่าง',
getKeyTip: 'รับคีย์ API ของคุณจากแดชบอร์ด OpenAI',
placeholder: 'คีย์ API OpenAI ของคุณ (เช่น sk-xxxx)',
},
apiKeyInfo: {
cloud: {
trial: {
title: 'คุณกําลังใช้โควต้าทดลองใช้ {{providerName}}',
description: 'โควต้าทดลองใช้มีไว้เพื่อวัตถุประสงค์ในการทดสอบของคุณ ก่อนที่โควต้าทดลองใช้จะหมด โปรดตั้งค่าผู้ให้บริการโมเดลของคุณเองหรือซื้อโควต้าเพิ่มเติม',
},
exhausted: {
title: 'โควต้าทดลองใช้ของคุณหมดแล้ว โปรดตั้งค่า APIKey ของคุณ',
description: 'คุณใช้โควต้าทดลองใช้หมดแล้ว โปรดตั้งค่าผู้ให้บริการโมเดลของคุณเองหรือซื้อโควต้าเพิ่มเติม',
},
},
selfHost: {
title: {
row1: 'ในการเริ่มต้น',
row2: 'ตั้งค่าผู้ให้บริการโมเดลของคุณก่อน',
},
},
callTimes: 'เวลาโทร',
usedToken: 'โทเค็นที่ใช้',
setAPIBtn: 'ไปที่ผู้ให้บริการโมเดลการตั้งค่า',
tryCloud: 'หรือลองใช้ Dify เวอร์ชันคลาวด์พร้อมใบเสนอราคาฟรี',
},
overview: {
title: 'ภาพรวม',
appInfo: {
explanation: 'AI web app พร้อมใช้งาน',
accessibleAddress: 'URL สาธารณะ',
preview: 'ดูตัวอย่าง',
regenerate: 'สร้างใหม่',
regenerateNotice: 'คุณต้องการสร้าง URL สาธารณะใหม่หรือไม่',
preUseReminder: 'โปรดเปิดใช้งาน web app ก่อนดําเนินการต่อ',
settings: {
entry: 'การตั้งค่า',
title: 'การตั้งค่าเว็บแอป',
webName: 'ชื่อเว็บแอป',
webDesc: 'คําอธิบาย web app',
webDescTip: 'ข้อความนี้จะแสดงที่ฝั่งไคลเอ็นต์ โดยให้คําแนะนําพื้นฐานเกี่ยวกับวิธีการใช้แอปพลิเคชัน',
webDescPlaceholder: 'ป้อนคําอธิบายของ web app',
language: 'ภาษา',
workflow: {
title: 'เวิร์กโฟลว์',
subTitle: 'รายละเอียดเวิร์กโฟลว์',
show: 'แสดง',
hide: 'ซ่อน',
showDesc: 'แสดงหรือซ่อนรายละเอียดเวิร์กโฟลว์ใน web app',
},
chatColorTheme: 'ธีมสีแชท',
chatColorThemeDesc: 'กําหนดธีมสีของแชทบอท',
chatColorThemeInverted: 'คว่ำ',
invalidHexMessage: 'ค่าฐานสิบหกไม่ถูกต้อง',
invalidPrivacyPolicy: 'ลิงก์นโยบายความเป็นส่วนตัวไม่ถูกต้อง โปรดใช้ลิงก์ที่ถูกต้องขึ้นต้นด้วย http หรือ https',
sso: {
label: 'การรับรองความถูกต้องของ SSO',
title: 'เว็บแอป SSO',
description: 'ผู้ใช้ทุกคนต้องเข้าสู่ระบบด้วย SSO ก่อนใช้ web app',
tooltip: 'ติดต่อผู้ดูแลระบบเพื่อเปิดใช้ web app SSO',
},
more: {
entry: 'แสดงการตั้งค่าเพิ่มเติม',
copyright: 'ลิขสิทธิ์',
copyRightPlaceholder: 'ป้อนชื่อผู้เขียนหรือองค์กร',
privacyPolicy: 'นโยบายความเป็นส่วนตัว',
privacyPolicyPlaceholder: 'ป้อนลิงก์นโยบายความเป็นส่วนตัว',
privacyPolicyTip: 'ช่วยให้ผู้เยี่ยมชมเข้าใจข้อมูลที่แอปพลิเคชันรวบรวม โปรดดูนโยบาย<privacyPolicyLink>ความเป็นส่วนตัว</privacyPolicyLink>ของ Dify',
customDisclaimer: 'ข้อจํากัดความรับผิดชอบที่กําหนดเอง',
customDisclaimerPlaceholder: 'ป้อนข้อความข้อจํากัดความรับผิดชอบที่กําหนดเอง',
customDisclaimerTip: 'ข้อความปฏิเสธความรับผิดชอบที่กําหนดเองจะแสดงที่ฝั่งไคลเอ็นต์ โดยให้ข้อมูลเพิ่มเติมเกี่ยวกับแอปพลิเคชัน',
copyrightTip: 'แสดงข้อมูลลิขสิทธิ์ในเว็บแอป',
copyrightTooltip: 'โปรดอัปเกรดเป็นแผน Professional หรือสูงกว่า',
},
modalTip: 'การตั้งค่าเว็บแอปฝั่งไคลเอ็นต์',
},
embedded: {
entry: 'ฝัง ตัว',
title: 'ฝังบนเว็บไซต์',
explanation: 'เลือกวิธีฝังแอปแชทลงในเว็บไซต์ของคุณ',
iframe: 'หากต้องการเพิ่มแอปแชทที่ใดก็ได้บนเว็บไซต์ของคุณ ให้เพิ่ม iframe นี้ลงในโค้ด html ของคุณ',
scripts: 'หากต้องการเพิ่มแอปแชทที่ด้านขวาล่างของเว็บไซต์ ให้เพิ่มโค้ดนี้ลงใน html ของคุณ',
chromePlugin: 'ติดตั้งส่วนขยาย Dify Chatbot Chrome',
copied: 'คัด ลอก',
copy: 'ลอก',
},
qrcode: {
title: 'เชื่อมโยงรหัส QR',
scan: 'สแกนเพื่อแบ่งปัน',
download: 'ดาวน์โหลด QR Code',
},
customize: {
way: 'วิธี',
entry: 'ปรับแต่ง',
title: 'ปรับแต่ง AI web app',
explanation: 'คุณสามารถปรับแต่งส่วนหน้าของ Web App ให้เหมาะกับสถานการณ์และความต้องการสไตล์ของคุณได้',
way1: {
name: 'แยกรหัสไคลเอ็นต์ แก้ไข และปรับใช้กับ Vercel (แนะนํา)',
step1: 'แยกรหัสไคลเอ็นต์และแก้ไข',
step1Tip: 'คลิกที่นี่เพื่อแยกซอร์สโค้ดลงในบัญชี GitHub ของคุณและแก้ไขโค้ด',
step1Operation: 'Dify-Web ไคลเอ็นต์',
step2: 'ปรับใช้กับ Vercel',
step2Tip: 'คลิกที่นี่เพื่อนําเข้าที่เก็บไปยัง Vercel และปรับใช้',
step2Operation: 'นําเข้าที่เก็บข้อมูล',
step3: 'กําหนดค่าตัวแปรสภาพแวดล้อม',
step3Tip: 'เพิ่มตัวแปรสภาพแวดล้อมต่อไปนี้ใน Vercel',
},
way2: {
name: 'เขียนโค้ดฝั่งไคลเอ็นต์เพื่อเรียกใช้ API และปรับใช้กับเซิร์ฟเวอร์',
operation: 'เอกสาร',
},
},
launch: 'เรือยนต์',
enableTooltip: {
description: 'เพื่อเปิดใช้งานฟีเจอร์นี้ โปรดเพิ่มโหนดการป้อนข้อมูลผู้ใช้ไปยังแคนวาส (อาจมีอยู่แล้วในร่าง ใช้งานได้หลังจากเผยแพร่)',
learnMore: 'เรียนรู้เพิ่มเติม',
},
title: 'เว็บแอป',
},
apiInfo: {
title: 'API บริการแบ็กเอนด์',
explanation: 'ผสานรวมเข้ากับแอปพลิเคชันของคุณได้อย่างง่ายดาย',
accessibleAddress: 'ปลายทาง API บริการ',
doc: 'การอ้างอิง API',
},
status: {
running: 'ให้บริการ',
disable: 'พิการ',
},
triggerInfo: {
title: 'สิ่งกระตุ้น',
explanation: 'การจัดการทริกเกอร์เวิร์กโฟลว์',
triggersAdded: 'เพิ่มทริกเกอร์เรียบร้อยแล้ว',
noTriggerAdded: 'ยังไม่ได้เพิ่มทริกเกอร์',
triggerStatusDescription: 'สถานะของโหนดตัวเรียกปรากฏที่นี่ (อาจมีอยู่แล้วในร่าง และจะมีผลหลังจากเผยแพร่)',
learnAboutTriggers: 'เรียนรู้เกี่ยวกับทริกเกอร์',
},
disableTooltip: {
triggerMode: 'โหมดโหนดทริกเกอร์ไม่รองรับฟีเจอร์ {{feature}}.',
},
},
analysis: {
title: 'การวิเคราะห์',
ms: 'นางสาว',
tokenPS: 'โทเค็น/วินาที',
totalMessages: {
title: 'ข้อความทั้งหมด',
explanation: 'การโต้ตอบ AI รายวันนับ',
},
totalConversations: {
title: 'การสนทนาทั้งหมด',
explanation: 'การสนทนา AI รายวันนับ ไม่รวมวิศวกรรม/ดีบักพร้อมท์',
},
activeUsers: {
title: 'ผู้ใช้ที่ใช้งานอยู่',
explanation: 'ผู้ใช้ที่ไม่ซ้ํากันมีส่วนร่วมในการถามตอบกับ AI ไม่รวมวิศวกรรม/ดีบักพร้อมท์',
},
tokenUsage: {
title: 'การใช้โทเค็น',
explanation: 'สะท้อนถึงการใช้โทเค็นรายวันของโมเดลภาษาสําหรับแอปพลิเคชัน ซึ่งมีประโยชน์สําหรับวัตถุประสงค์ในการควบคุมต้นทุน',
consumed: 'ใช้',
},
avgSessionInteractions: {
title: 'การโต้ตอบเซสชันโดยเฉลี่ย',
explanation: 'จํานวนการสื่อสารระหว่างผู้ใช้และ AI อย่างต่อเนื่อง สําหรับแอปที่ใช้การสนทนา',
},
avgUserInteractions: {
title: 'การโต้ตอบของผู้ใช้โดยเฉลี่ย',
explanation: 'สะท้อนถึงความถี่ในการใช้งานรายวันของผู้ใช้ เมตริกนี้สะท้อนถึงความเหนียวแน่นของผู้ใช้',
},
userSatisfactionRate: {
title: 'อัตราความพึงพอใจของผู้ใช้',
explanation: 'จํานวนไลค์ต่อ 1,000 ข้อความ สิ่งนี้บ่งชี้ถึงสัดส่วนของคําตอบที่ผู้ใช้พึงพอใจอย่างมาก',
},
avgResponseTime: {
title: 'เวลาตอบสนองเฉลี่ย',
explanation: 'เวลา (มิลลิวินาที) สําหรับ AI ในการประมวลผล/ตอบสนอง สําหรับแอปที่ใช้ข้อความ',
},
tps: {
title: 'ความเร็วในการส่งออกโทเค็น',
explanation: 'วัดประสิทธิภาพของ LLM นับความเร็วในการส่งออกโทเค็นของ LLM ตั้งแต่เริ่มต้นคําขอจนถึงเสร็จสิ้นเอาต์พุต',
},
},
}
export default translation

345
dify/web/i18n/th-TH/app.ts Normal file
View File

@@ -0,0 +1,345 @@
const translation = {
createApp: 'สร้างโปรเจกต์ใหม่',
types: {
all: 'ทั้งหมด',
chatbot: 'แชทบอท',
agent: 'ตัวแทน',
workflow: 'กระบวนการทำงาน',
completion: 'เสร็จสมบูรณ์',
basic: 'พื้นฐาน',
advanced: 'แชทโฟลว์',
},
duplicate: 'สำเนา',
duplicateTitle: 'ชื่อซ้ำ',
export: 'ส่งออก DSL',
exportFailed: 'ส่งออก DSL ล้มเหลว',
importDSL: 'นําเข้าไฟล์ DSL',
createFromConfigFile: 'สร้างจากไฟล์ DSL',
importFromDSL: 'นําเข้าจาก DSL',
importFromDSLFile: 'จากไฟล์ DSL',
importFromDSLUrl: 'จาก URL',
importFromDSLUrlPlaceholder: 'วางลิงค์ DSL ที่นี่',
dslUploader: {
button: 'ลากและวางไฟล์ หรือ',
browse: 'เรียกดู',
},
deleteAppConfirmTitle: 'ลบโปรเจกต์นี้?',
deleteAppConfirmContent: 'การลบโปรเจกนั้นไม่สามารถย้อนกลับได้ ผู้ใช้จะไม่สามารถเข้าถึงโปรเจกต์ของคุณอีกต่อไป และการกําหนดค่าต่างๆและบันทึกทั้งหมดจะถูกลบอย่างถาวร',
appDeleted: 'โปรเจกต์ถูกลบ',
appDeleteFailed: 'ลบโปรเจกต์ไม่สําเร็จ',
join: 'เข้าร่วมชุมชนนักพัฒนา',
communityIntro: 'พูดคุยกับสมาชิกในทีม ผู้ร่วมให้ข้อมูล และนักพัฒนาในช่องทางต่างๆ',
roadmap: 'ดูแผนงานของเรา',
newApp: {
startFromBlank: 'สร้างโปรเจกต์ปล่าว',
startFromTemplate: 'สร้างจากเทมเพลต',
workflowWarning: 'ขณะนี้อยู่ในช่วงเบต้า',
captionName: 'ไอคอนและชื่อโปรเจกต์',
appNamePlaceholder: 'ตั้งชื่อโปรเจกต์ของคุณ',
captionDescription: 'คำอธิบาย',
appDescriptionPlaceholder: 'ป้อนคำอธิบายของโปรเจกต์',
useTemplate: 'ใช้เทมเพลตนี้',
previewDemo: 'ตัวอย่างการใช้งาน',
chatApp: 'ผู้ช่วย',
chatAppIntro: 'ฉันต้องการสร้างโปรเจกต์ ที่เป็นแอปพลิเคชันที่ใช้การแชท โปรเจกต์นี้ใช้รูปแบบคำถามและคำตอบ ทําให้สามารถสนทนาต่อเนื่องได้หลายรอบ(Multi-turn)',
agentAssistant: 'ผู้ช่วยใหม่',
completeApp: 'เครื่องมือสร้างข้อความ',
completeAppIntro: 'ฉันต้องการสร้างโปรเจกต์ที่ ที่สามารถสร้างข้อความคุณภาพสูงตามข้อความแจ้ง เช่น การสร้างบทความ สรุป การแปล และอื่นๆ',
showTemplates: 'ฉันต้องการเลือกจากเทมเพลต',
hideTemplates: 'กลับไปที่การเลือกโหมด',
Create: 'สร้าง',
Cancel: 'ยกเลิก',
Confirm: 'ยืนยัน',
nameNotEmpty: 'ชื่อต้องไม่ว่างเปล่า',
appTemplateNotSelected: 'โปรดเลือกเทมเพลต',
appTypeRequired: 'โปรดเลือกประเภทโปรเจกต์',
appCreated: 'สร้างโปรเจกต์',
caution: 'ข้อควรระวัง',
appCreateDSLWarning: 'ข้อควรระวัง: ความแตกต่างของเวอร์ชัน DSL อาจส่งผลต่อคุณสมบัติบางอย่าง',
appCreateDSLErrorTitle: 'ความเข้ากันไม่ได้ของ DSL เวอร์ชัน',
appCreateDSLErrorPart1: 'ตรวจพบความแตกต่างอย่างมีนัยสําคัญในเวอร์ชัน DSL การบังคับนําเข้าอาจทําให้โปรเจกต์ทํางานผิดปกติ',
appCreateDSLErrorPart2: 'คุณต้องการดําเนินการต่อหรือไม่?',
appCreateDSLErrorPart3: 'เวอร์ชัน DSL ของโปรเจกต์ปัจจุบัน:',
appCreateDSLErrorPart4: 'เวอร์ชัน DSL ที่ระบบรองรับ:',
appCreateFailed: 'สร้างโปรเจกต์ไม่สําเร็จ',
learnMore: 'ศึกษาเพิ่มเติม',
foundResults: '{{count}} ผลลัพธ์',
noTemplateFoundTip: 'ลองค้นหาโดยใช้คีย์เวิร์ดอื่น',
chatbotShortDescription: 'แชทบอทที่ใช้ LLM พร้อมการตั้งค่าที่ง่ายดาย',
optional: 'เสริม',
workflowUserDescription: 'สร้างโฟลว์ AI อัตโนมัติด้วยระบบลากและวางอย่างง่าย',
agentShortDescription: 'ตัวแทนอัจฉริยะพร้อมการใช้เหตุผลและเครื่องมืออัตโนมัติ',
forBeginners: 'ประเภทแอปพื้นฐาน',
completionShortDescription: 'ผู้ช่วย AI สําหรับงานสร้างข้อความ',
agentUserDescription: 'ตัวแทนอัจฉริยะที่สามารถให้เหตุผลซ้ําๆ และใช้เครื่องมืออัตโนมัติเพื่อให้บรรลุเป้าหมายของงาน',
noIdeaTip: 'ไม่มีความคิด? ดูเทมเพลตของเรา',
foundResult: '{{count}} ผล',
noAppsFound: 'ไม่พบแอป',
workflowShortDescription: 'โฟลว์อัตโนมัติสำหรับระบบอัจฉริยะ',
forAdvanced: 'สําหรับผู้ใช้ขั้นสูง',
chatbotUserDescription: 'สร้างแชทบอทที่ใช้ LLM ได้อย่างรวดเร็วด้วยการกําหนดค่าที่ง่าย คุณสามารถเปลี่ยนไปใช้ Chatflow ได้ในภายหลัง',
noTemplateFound: 'ไม่พบเทมเพลต',
completionUserDescription: 'สร้างผู้ช่วย AI สําหรับงานสร้างข้อความอย่างรวดเร็วด้วยการกําหนดค่าที่ง่าย',
advancedUserDescription: 'โฟลว์พร้อมคุณสมบัติหน่วยความจำเพิ่มเติมและอินเตอร์เฟซแชทบอท',
chooseAppType: 'เลือกประเภทแอป',
advancedShortDescription: 'โฟลว์ที่เสริมประสิทธิภาพสำหรับการสนทนาหลายรอบ',
dropDSLToCreateApp: 'ลากไฟล์ DSL มาที่นี่เพื่สร้างแอป',
import: 'นําเข้า',
},
editApp: 'แก้ไขข้อมูล',
editAppTitle: 'แก้ไขข้อมูลโปรเจกต์',
editDone: 'อัปเดตข้อมูลโปรเจกต์',
editFailed: 'อัปเดตข้อมูลโปรเจกต์ไม่สําเร็จ',
iconPicker: {
ok: 'ตกลง, ได้',
cancel: 'ยกเลิก',
emoji: 'อิโมจิ',
image: 'ภาพ',
},
answerIcon: {
title: 'ใช้ไอคอน web app เพื่อแทนที่ 🤖',
description: 'จะใช้ไอคอน web app เพื่อแทนที่🤖ในโปรเจกต์ที่ใช้ร่วมกันหรือไม่',
descriptionInExplore: 'จะใช้ไอคอน web app เพื่อแทนที่🤖ใน Explore หรือไม่',
},
switch: 'เปลี่ยนไปใช้ Workflow Orchestrate',
switchTipStart: 'สําเนาโปรเจกต์ใหม่จะถูกสร้างขึ้นสําหรับคุณ และสําเนาใหม่จะเปลี่ยนเป็น Workflow Orchestration',
switchTip: 'ไม่อนุญาต',
switchTipEnd: 'เปลี่ยนกลับเป็น Basic Orchestrate',
switchLabel: 'สําเนาโปรเจกต์ที่จะสร้าง',
removeOriginal: 'ลบโปรเจกต์เดิม',
switchStart: 'สวิตช์สตาร์ท',
typeSelector: {
all: 'ทุกประเภท',
chatbot: 'แชทบอท',
agent: 'ตัวแทน',
workflow: 'เวิร์กโฟลว์',
completion: 'เสร็จ',
advanced: 'แชทโฟลว์',
},
tracing: {
title: 'การติดตามประสิทธิภาพของโปรเจกต์',
description: 'การกําหนดค่าผู้ให้บริการ LLMOps บุคคลที่สามและประสิทธิภาพของโปรเจกต์ที่นำไปใช้',
config: 'กําหนดค่า',
view: 'มุมมอง',
collapse: 'ยุบ',
expand: 'ขยาย',
tracing: 'ติดตาม',
disabled: 'ปิดการใช้งาน',
disabledTip: 'โปรดกําหนดค่าผู้ให้บริการก่อน',
enabled: 'ให้บริการ',
tracingDescription: 'บันทึกบริบททั้งหมดของการดําเนินการของโปรเจกต์ รวมถึงการเรียก LLM, Prompt คําขอ HTTP และอื่นๆไปยังแพลตฟอร์มของของบุคคลที่สาม',
configProviderTitle: {
configured: 'กําหนดค่าแล้ว',
notConfigured: 'ผู้ให้บริการกําหนดค่าเพื่อเปิดใช้งานการติดตาม',
moreProvider: 'ผู้ให้บริการเพิ่มเติม',
},
arize: {
title: 'Arize',
description: 'การสังเกตการณ์ LLM ระดับองค์กร การประเมินออนไลน์และออฟไลน์ การตรวจสอบ และการทดลอง—ขับเคลื่อนโดย OpenTelemetry ออกแบบมาโดยเฉพาะสำหรับแอปพลิเคชันที่ขับเคลื่อนด้วย LLM และตัวแทน',
},
phoenix: {
title: 'Phoenix',
description: 'แพลตฟอร์มโอเพ่นซอร์สและ OpenTelemetry สำหรับการสังเกตการณ์ การประเมิน วิศวกรรมพรอมต์ และการทดลองสำหรับเวิร์กโฟลว์และตัวแทน LLM ของคุณ',
},
langsmith: {
title: 'Langsmith',
description: 'แพลตฟอร์มนักพัฒนาแบบครบวงจรสําหรับทุกขั้นตอนของ การพัฒนาโปรเจกต์ที่ขับเคลื่อนด้วย LLM',
},
langfuse: {
title: 'Langfuse',
description: 'การติดตาม การประเมินการจัดการพร้อมท์ และเมตริกเพื่อแก้ไขข้อบกพร่องและปรับปรุงโปรเจกต์ LLM ของคุณ',
},
inUse: 'ใช้งาน',
configProvider: {
title: 'กําหนดค่า',
placeholder: 'ป้อน {{key}} ของคุณ',
project: 'โครงการ',
publicKey: 'กุญแจสาธารณะ',
secretKey: 'กุญแจลับ',
viewDocsLink: 'ดูเอกสาร {{key}}',
removeConfirmTitle: 'ลบการกําหนดค่า {{key}} หรือไม่?',
removeConfirmContent: 'การกําหนดค่าปัจจุบันกําลังใช้งาน การลบออกจะเป็นการปิดคุณสมบัติการติดตาม',
clientId: 'รหัสลูกค้า OAuth',
trackingUri: 'ติดตาม URI',
databricksHost: 'URL ของ Workspace ใน Databricks',
username: 'ชื่อผู้ใช้',
clientSecret: 'รหัสลับของลูกค้า OAuth',
experimentId: 'รหัสการทดลอง',
password: 'รหัสผ่าน',
personalAccessToken: 'โทเค็นการเข้าถึงส่วนตัว (รุ่นเก่า)',
},
opik: {
title: 'โอปิก',
description: 'Opik เป็นแพลตฟอร์มโอเพ่นซอร์สสําหรับการประเมิน ทดสอบ และตรวจสอบแอปพลิเคชัน LLM',
},
weave: {
title: 'ทอ',
description: 'Weave เป็นแพลตฟอร์มโอเพนซอร์สสำหรับการประเมินผล ทดสอบ และตรวจสอบแอปพลิเคชัน LLM',
},
aliyun: {
title: 'การตรวจสอบคลาวด์',
description: 'แพลตฟอร์มการสังเกตการณ์ที่จัดการโดย Alibaba Cloud ซึ่งไม่ต้องดูแลและบำรุงรักษา ช่วยให้สามารถติดตาม ตรวจสอบ และประเมินแอปพลิเคชัน Dify ได้ทันที',
},
mlflow: {
title: 'MLflow',
description: 'แพลตฟอร์ม LLMOps โอเพนซอร์สสำหรับการติดตามการทดลอง การสังเกตการณ์ และการประเมินผล เพื่อสร้างแอป AI/LLM ด้วยความมั่นใจ',
},
databricks: {
title: 'Databricks',
description: 'Databricks ให้บริการ MLflow ที่จัดการแบบเต็มรูปแบบพร้อมการกำกับดูแลและความปลอดภัยที่แข็งแกร่งสำหรับการจัดเก็บข้อมูลการติดตาม',
},
tencent: {
title: 'Tencent APM',
description: 'การติดตามประสิทธิภาพแอปพลิเคชันของ Tencent มอบการตรวจสอบแบบครบวงจรและการวิเคราะห์หลายมิติสำหรับแอป LLM',
},
},
mermaid: {
handDrawn: 'วาดด้วยมือ',
classic: 'คลาสสิก',
},
openInExplore: 'เปิดใน Explore',
newAppFromTemplate: {
sidebar: {
Assistant: 'ผู้ช่วย',
Writing: 'การเขียน',
Recommended: 'แนะ นำ',
Workflow: 'เวิร์กโฟลว์',
Programming: 'โปรแกรม',
HR: 'ชั่วโมง',
Agent: 'ตัวแทน',
},
searchAllTemplate: 'ค้นหาเทมเพลตทั้งหมด...',
byCategories: 'ตามหมวดหมู่',
},
showMyCreatedAppsOnly: 'แสดงเฉพาะแอปที่ฉันสร้าง',
appSelector: {
placeholder: 'เลือกแอป...',
params: 'พารามิเตอร์แอพ',
noParams: 'ไม่จําเป็นต้องใช้พารามิเตอร์',
label: 'แอพ',
},
structOutput: {
notConfiguredTip: 'ยังไม่ได้กำหนดผลลัพธ์ที่มีโครงสร้าง',
moreFillTip: 'แสดงระดับการซ้อนสูงสุด 10 ระดับ',
structuredTip: 'Structured Outputs เป็นฟีเจอร์ที่ทำให้มั่นใจว่าโมเดลจะสร้างคำตอบที่สอดคล้องกับ JSON Schema ที่คุณกำหนดไว้เสมอ',
configure: 'กำหนดค่า',
required: 'ที่จำเป็น',
LLMResponse: 'LLM ตอบสนอง',
structured: 'มีระเบียบ',
modelNotSupported: 'โมเดลไม่ได้รับการสนับสนุน',
modelNotSupportedTip: 'โมเดลปัจจุบันไม่รองรับฟีเจอร์นี้และจะถูกลดระดับเป็นการฉีดคำสั่งโดยอัตโนมัติ.',
},
accessItemsDescription: {
anyone: 'ใครก็สามารถเข้าถึงเว็บแอปได้',
specific: 'สมาชิกหรือกลุ่มเฉพาะเท่านั้นที่สามารถเข้าถึงแอปเว็บได้',
organization: 'ใครก็ได้ในองค์กรสามารถเข้าถึงแอปเว็บได้',
external: 'ผู้ใช้งานภายนอกที่ได้รับการยืนยันตัวตนเท่านั้นที่สามารถเข้าถึงแอปพลิเคชันเว็บได้',
},
accessControlDialog: {
accessItems: {
specific: 'กลุ่มหรือสมาชิกเฉพาะ',
organization: 'เฉพาะสมาชิกภายในองค์กร',
anyone: 'ใครก็ตามที่มีลิงก์',
external: 'ผู้ใช้ภายนอกที่ได้รับการตรวจสอบแล้ว',
},
operateGroupAndMember: {
searchPlaceholder: 'ค้นหากลุ่มและสมาชิก',
allMembers: 'สมาชิกทั้งหมด',
noResult: 'ไม่มีผลลัพธ์',
expand: 'ขยาย',
},
title: 'การควบคุมการเข้าถึงเว็บแอปพลิเคชัน',
description: 'ตั้งค่าสิทธิ์การเข้าถึงเว็บแอป',
accessLabel: 'ใครมีสิทธิ์เข้าถึง',
groups_one: '{{count}} กลุ่ม',
groups_other: '{{count}} กลุ่ม',
members_one: '{{count}} สมาชิก',
noGroupsOrMembers: 'ไม่มีกลุ่มหรือสมาชิกที่เลือก',
webAppSSONotEnabledTip: 'กรุณาติดต่อผู้ดูแลระบบองค์กรเพื่อกำหนดวิธีการตรวจสอบสิทธิ์แอปเว็บ.',
updateSuccess: 'อัปเดตสำเร็จแล้ว',
members_other: '{{count}} สมาชิก',
},
publishApp: {
title: 'ใครสามารถเข้าถึงแอปเว็บได้',
notSet: 'ยังไม่ได้ตั้งค่า',
notSetDesc: 'ขณะนี้ไม่มีใครสามารถเข้าถึงแอปเว็บได้ กรุณาเพิ่มสิทธิ์การเข้าถึง.',
},
accessControl: 'การควบคุมการเข้าถึงเว็บแอปพลิเคชัน',
noAccessPermission: 'ไม่มีสิทธิ์เข้าถึงเว็บแอป',
maxActiveRequestsPlaceholder: 'ใส่ 0 สำหรับไม่จำกัด',
maxActiveRequests: 'จำนวนคำขอพร้อมกันสูงสุด',
maxActiveRequestsTip: 'จำนวนการร้องขอที่ใช้งานพร้อมกันสูงสุดต่อแอป (0 หมายถึงไม่จำกัด)',
gotoAnything: {
actions: {
searchKnowledgeBases: 'ค้นหาฐานความรู้',
searchPlugins: 'ค้นหาปลั๊กอิน',
searchWorkflowNodes: 'ค้นหาโหนดเวิร์กโฟลว์',
searchApplications: 'ค้นหาแอปพลิเคชัน',
searchKnowledgeBasesDesc: 'ค้นหาและนําทางไปยังฐานความรู้ของคุณ',
searchPluginsDesc: 'ค้นหาและนําทางไปยังปลั๊กอินของคุณ',
searchApplicationsDesc: 'ค้นหาและนําทางไปยังแอปพลิเคชันของคุณ',
searchWorkflowNodesHelp: 'คุณลักษณะนี้ใช้ได้เฉพาะเมื่อดูเวิร์กโฟลว์เท่านั้น นําทางไปยังเวิร์กโฟลว์ก่อน',
searchWorkflowNodesDesc: 'ค้นหาและข้ามไปยังโหนดในเวิร์กโฟลว์ปัจจุบันตามชื่อหรือประเภท',
themeCategoryTitle: 'ธีม',
languageCategoryTitle: 'ภาษา',
runTitle: 'คำสั่ง',
themeDark: 'ธีมมืด',
languageChangeDesc: 'เปลี่ยนภาษา UI',
themeSystem: 'ธีมระบบ',
themeLight: 'ธีมสว่าง',
runDesc: 'เรียกใช้คำสั่งอย่างรวดเร็ว (ธีม, ภาษา, ... )',
themeDarkDesc: 'ใช้รูปลักษณ์เข้ม',
themeCategoryDesc: 'เปลี่ยนธีมแอปพลิเคชัน',
languageCategoryDesc: 'เปลี่ยนภาษาของอินเทอร์เฟซ',
themeLightDesc: 'ใช้รูปลักษณ์ที่มีความสว่าง',
themeSystemDesc: 'ติดตามรูปลักษณ์ของระบบปฏิบัติการของคุณ',
slashDesc: 'ใช้คำสั่งเช่น /theme, /lang',
feedbackDesc: 'การอภิปรายข้อเสนอแนะแบบเปิดในชุมชน',
accountDesc: 'ไปที่หน้าบัญชี',
docDesc: 'เปิดเอกสารช่วยเหลือ',
communityDesc: 'เปิดชุมชน Discord',
},
emptyState: {
noPluginsFound: 'ไม่พบปลั๊กอิน',
noAppsFound: 'ไม่พบแอป',
noWorkflowNodesFound: 'ไม่พบโหนดเวิร์กโฟลว์',
noKnowledgeBasesFound: 'ไม่พบฐานความรู้',
tryDifferentTerm: 'ลองใช้คำค้นหาที่แตกต่างออกไปหรือลบตัวกรอง {{mode}}',
trySpecificSearch: 'ลองใช้ {{shortcuts}} สำหรับการค้นหาเฉพาะ',
},
groups: {
apps: 'แอปพลิเคชัน',
knowledgeBases: 'ฐานความรู้',
plugins: 'ปลั๊กอิน',
workflowNodes: 'โหนดเวิร์กโฟลว์',
commands: 'คำสั่ง',
},
searchTitle: 'ค้นหาอะไรก็ได้',
searchFailed: 'การค้นหาล้มเหลว',
useAtForSpecific: 'ใช้ @ สําหรับบางประเภท',
noResults: 'ไม่พบผลลัพธ์',
searchTemporarilyUnavailable: 'การค้นหาไม่พร้อมใช้งานชั่วคราว',
someServicesUnavailable: 'บริการค้นหาบางบริการไม่พร้อมใช้งาน',
clearToSearchAll: 'ล้าง @ เพื่อค้นหาทั้งหมด',
searchPlaceholder: 'ค้นหาหรือพิมพ์ @ สำหรับคำสั่ง...',
servicesUnavailableMessage: 'บริการค้นหาบางบริการอาจประสบปัญหา ลองอีกครั้งในอีกสักครู่',
searching: 'กำลังค้นหา...',
searchHint: 'เริ่มพิมพ์เพื่อค้นหาทุกอย่างได้ทันที',
selectSearchType: 'เลือกสิ่งที่จะค้นหา',
commandHint: 'พิมพ์ @ เพื่อเรียกดูตามหมวดหมู่',
resultCount: '{{count}} ผลลัพธ์',
resultCount_other: '{{count}} ผลลัพธ์',
inScope: 'ใน {{scope}}s',
noMatchingCommands: 'ไม่พบคำสั่งที่ตรงกัน',
tryDifferentSearch: 'ลองใช้ข้อความค้นหาอื่น',
slashHint: 'พิมพ์ / เพื่อดูคำสั่งที่มีให้ทั้งหมด',
pressEscToClose: 'กด ESC เพื่อปิด',
selectToNavigate: 'เลือกเพื่อนำทาง',
startTyping: 'เริ่มพิมพ์เพื่อค้นหา',
tips: 'กด ↑↓ เพื่อเลื่อนดู',
},
noUserInputNode: 'ไม่มีโหนดป้อนข้อมูลผู้ใช้',
notPublishedYet: 'แอปยังไม่ได้เผยแพร่',
}
export default translation

View File

@@ -0,0 +1,203 @@
const translation = {
currentPlan: 'แผนปัจจุบัน',
upgradeBtn: {
plain: 'แผนการอัปเกรด',
encourage: 'อัปเกรดเดี๋ยวนี้',
encourageShort: 'อัพ เกรด',
},
viewBilling: 'จัดการการเรียกเก็บเงินและการสมัครใช้งาน',
buyPermissionDeniedTip: 'โปรดติดต่อผู้ดูแลระบบองค์กรของคุณเพื่อสมัครสมาชิก',
plansCommon: {
yearlyTip: 'รับฟรี 2 เดือนโดยสมัครสมาชิกรายปี!',
mostPopular: 'แห่ง',
planRange: {
monthly: 'รายเดือน',
yearly: 'รายปี',
},
month: 'เดือน',
year: 'ปี',
save: 'ประหยัด',
free: 'ฟรี',
currentPlan: 'แผนปัจจุบัน',
contractSales: 'ติดต่อฝ่ายขาย',
contractOwner: 'ติดต่อผู้จัดการทีม',
startForFree: 'เริ่มฟรี',
contactSales: 'ติดต่อฝ่ายขาย',
talkToSales: 'พูดคุยกับฝ่ายขาย',
modelProviders: 'ผู้ให้บริการโมเดล',
annotationQuota: 'โควต้าคําอธิบายประกอบ',
buildApps: 'สร้างแอพ',
vectorSpace: 'พื้นที่เวกเตอร์',
vectorSpaceTooltip: 'Vector Space เป็นระบบหน่วยความจําระยะยาวที่จําเป็นสําหรับ LLM ในการทําความเข้าใจข้อมูลของคุณ',
documentProcessingPriority: 'ลําดับความสําคัญในการประมวลผลเอกสาร',
documentProcessingPriorityUpgrade: 'ประมวลผลข้อมูลได้มากขึ้นด้วยความแม่นยําที่สูงขึ้นด้วยความเร็วที่เร็วขึ้น',
priority: {
'standard': 'มาตรฐาน',
'priority': 'สำคัญ',
'top-priority': 'ลําดับความสําคัญสูงสุด',
},
logsHistory: 'ประวัติการบันทึก',
customTools: 'เครื่องมือที่กําหนดเอง',
unavailable: 'ไม่',
days: 'วัน',
unlimited: 'จำกัด',
support: 'สนับสนุน',
supportItems: {
communityForums: 'ฟอรัมชุมชน',
emailSupport: 'การสนับสนุนทางอีเมล',
priorityEmail: 'การสนับสนุนทางอีเมลและแชทลําดับความสําคัญ',
logoChange: 'การเปลี่ยนโลโก้',
SSOAuthentication: 'การตรวจสอบสิทธิ์ SSO',
personalizedSupport: 'การสนับสนุนส่วนบุคคล',
dedicatedAPISupport: 'รองรับ API เฉพาะ',
customIntegration: 'การผสานรวมและการสนับสนุนแบบกําหนดเอง',
ragAPIRequest: 'คําขอ RAG API',
bulkUpload: 'อัปโหลดเอกสารจํานวนมาก',
agentMode: 'โหมดตัวแทน',
workflow: 'เวิร์กโฟลว์',
llmLoadingBalancing: 'โหลดบาลานซ์ LLM',
llmLoadingBalancingTooltip: 'เพิ่มคีย์ API หลายคีย์ให้กับโมเดล โดยข้ามขีดจํากัดอัตรา API ได้อย่างมีประสิทธิภาพ',
},
comingSoon: 'เร็ว ๆ นี้',
member: 'สมาชิก',
memberAfter: 'สมาชิก',
messageRequest: {
title: 'เครดิตข้อความ',
tooltip: 'โควต้าการเรียกใช้ข้อความสําหรับแผนต่างๆ โดยใช้โมเดล OpenAI (ยกเว้น gpt4) ข้อความที่เกินขีดจํากัดจะใช้คีย์ OpenAI API ของคุณ',
titlePerMonth: '{{count,number}} ข้อความ/เดือน',
},
annotatedResponse: {
title: 'ขีดจํากัดโควต้าคําอธิบายประกอบ',
tooltip: 'การแก้ไขและคําอธิบายประกอบการตอบกลับด้วยตนเองให้ความสามารถในการตอบคําถามคุณภาพสูงที่ปรับแต่งได้สําหรับแอป (ใช้ได้เฉพาะในแอปแชท)',
},
ragAPIRequestTooltip: 'หมายถึงจํานวนการเรียก API ที่เรียกใช้เฉพาะความสามารถในการประมวลผลฐานความรู้ของ Dify',
receiptInfo: 'เฉพาะเจ้าของทีมและผู้ดูแลทีมเท่านั้นที่สามารถสมัครสมาชิกและดูข้อมูลการเรียกเก็บเงินได้',
cloud: 'บริการคลาวด์',
comparePlanAndFeatures: 'เปรียบเทียบแผนและฟีเจอร์',
apiRateLimit: 'ข้อจำกัดอัตราการใช้ API',
getStarted: 'เริ่มต้น',
documents: '{{count,number}} เอกสารความรู้',
freeTrialTipPrefix: 'ลงทะเบียนและรับ',
teamMember_one: '{{count,number}} สมาชิกทีม',
unlimitedApiRate: 'ไม่มีข้อจำกัดอัตราการเรียก API',
self: 'โฮสต์ด้วยตัวเอง',
apiRateLimitUnit: '{{count,number}}',
teamMember_other: '{{count,number}} สมาชิกทีม',
teamWorkspace: '{{count,number}} ทีมทำงาน',
priceTip: 'ต่อพื้นที่ทำงาน/',
documentsTooltip: 'โควต้าสำหรับจำนวนเอกสารที่นำเข้าจากแหล่งข้อมูลความรู้.',
documentsRequestQuota: '{{count,number}}/นาที จำกัด อัตราการร้องขอข้อมูล',
apiRateLimitTooltip: 'ข้อจำกัดการใช้งาน API จะใช้กับคำขอทั้งหมดที่ทำผ่าน Dify API รวมถึงการสร้างข้อความ, การสนทนาแชท, การดำเนินการเวิร์กโฟลว์ และการประมวลผลเอกสาร.',
freeTrialTipSuffix: 'ไม่จำเป็นต้องใช้บัตรเครดิต',
freeTrialTip: 'ทดลองใช้งานฟรี 200 ครั้งสำหรับ OpenAI.',
annualBilling: 'การเรียกเก็บเงินประจำปี',
documentsRequestQuotaTooltip: 'ระบุจำนวนรวมของการกระทำที่เวิร์กสเปซสามารถดำเนินการต่อหนึ่งนาทีภายในฐานความรู้ รวมถึงการสร้างชุดข้อมูล การลบ การอัปเดต การอัปโหลดเอกสาร การปรับเปลี่ยน การเก็บถาวร และการสอบถามฐานความรู้ เมตริกนี้ถูกใช้ในการประเมินประสิทธิภาพของคำขอฐานความรู้ ตัวอย่างเช่น หากผู้ใช้ Sandbox ทำการทดสอบการตี 10 ครั้งต่อเนื่องภายในหนึ่งนาที เวิร์กสเปซของพวกเขาจะถูกจำกัดชั่วคราวในการดำเนินการต่อไปนี้ในนาทีถัดไป: การสร้างชุดข้อมูล การลบ การอัปเดต หรือการอัปโหลดหรือปรับเปลี่ยนเอกสาร.',
startBuilding: 'เริ่มสร้าง',
taxTip: 'ราคาการสมัครสมาชิกทั้งหมด (รายเดือน/รายปี) ไม่รวมภาษีที่ใช้บังคับ (เช่น ภาษีมูลค่าเพิ่ม, ภาษีการขาย)',
taxTipSecond: 'หากภูมิภาคของคุณไม่มีข้อกำหนดเกี่ยวกับภาษีที่ใช้ได้ จะไม่มีการคิดภาษีในขั้นตอนการชำระเงินของคุณ และคุณจะไม่ถูกเรียกเก็บค่าธรรมเนียมเพิ่มเติมใด ๆ ตลอดระยะเวลาสมาชิกทั้งหมด',
triggerEvents: {
unlimited: 'เหตุการณ์ทริกเกอร์ไม่จำกัด',
tooltip: 'จำนวนเหตุการณ์ที่เริ่มเวิร์กโฟลว์โดยอัตโนมัติผ่านปลั๊กอิน ตารางเวลา หรือทริกเกอร์เว็บฮุก',
sandbox: '{{count,number}} เหตุการณ์ทริกเกอร์',
professional: '{{count,number}} เหตุการณ์ที่ก่อให้เกิดต่อเดือน',
},
workflowExecution: {
standard: 'การดำเนินงานเวิร์กโฟลว์มาตรฐาน',
priority: 'การดำเนินงานลำดับความสำคัญ',
tooltip: 'ลำดับความสำคัญและความเร็วของคิวการดำเนินงานของเวิร์กโฟลว์',
faster: 'การดำเนินงานเวิร์กโฟลว์ที่รวดเร็วขึ้น',
},
startNodes: {
unlimited: 'ทริกเกอร์/เวิร์กโฟลว์ไม่จำกัด',
limited: 'สูงสุด {{count}} ตัวกระตุ้น/เวิร์กโฟลว์',
},
title: {
plans: 'แผน',
description: 'เลือกแผนที่เหมาะสมที่สุดกับความต้องการของทีมคุณ',
},
},
plans: {
sandbox: {
name: 'กระบะทราย',
description: 'ทดลองใช้ GPT ฟรี 200 ครั้ง',
for: 'ทดลองใช้ฟรีของความสามารถหลัก',
},
professional: {
name: 'มืออาชีพ',
description: 'สําหรับบุคคลและทีมขนาดเล็กเพื่อปลดล็อกพลังงานมากขึ้นในราคาย่อมเยา',
for: 'สำหรับนักพัฒนาที่เป็นอิสระ/ทีมขนาดเล็ก',
},
team: {
name: 'ทีม',
description: 'ทํางานร่วมกันอย่างไร้ขีดจํากัดและเพลิดเพลินไปกับประสิทธิภาพระดับสูงสุด',
for: 'สำหรับทีมขนาดกลาง',
},
enterprise: {
name: 'กิจการ',
description: 'รับความสามารถและการสนับสนุนเต็มรูปแบบสําหรับระบบที่สําคัญต่อภารกิจขนาดใหญ่',
includesTitle: 'ทุกอย่างในแผนทีม รวมถึง:',
features: ['โซลูชันการปรับใช้ที่ปรับขนาดได้สำหรับองค์กร', 'การอนุญาตใบอนุญาตเชิงพาณิชย์', 'ฟีเจอร์สำหรับองค์กรแบบพิเศษ', 'หลายพื้นที่ทำงานและการจัดการองค์กร', 'SSO', 'ข้อตกลงระดับการให้บริการที่เจรจาโดยพันธมิตร Dify', 'ระบบความปลอดภัยและการควบคุมขั้นสูง', 'การอัปเดตและการบำรุงรักษาโดย Dify อย่างเป็นทางการ', 'การสนับสนุนทางเทคนิคระดับมืออาชีพ'],
btnText: 'ติดต่อฝ่ายขาย',
price: 'ที่กำหนดเอง',
for: 'สำหรับทีมขนาดใหญ่',
priceTip: 'การเรียกเก็บเงินประจำปีเท่านั้น',
},
community: {
features: ['คุณลักษณะหลักทั้งหมดถูกปล่อยภายใต้ที่เก็บสาธารณะ', 'พื้นที่ทำงานเดียว', 'เป็นไปตามใบอนุญาตแบบเปิดของ Dify'],
name: 'ชุมชน',
price: 'ฟรี',
includesTitle: 'คุณสมบัติเสรี:',
description: 'สำหรับผู้ใช้ส่วนบุคคล ทีมขนาดเล็ก หรือโครงการที่ไม่ใช่เชิงพาณิชย์',
btnText: 'เริ่มต้นกับชุมชน',
for: 'สำหรับผู้ใช้ส่วนบุคคล ทีมขนาดเล็ก หรือโครงการที่ไม่ใช่เชิงพาณิชย์',
},
premium: {
features: ['ความน่าเชื่อถือที่บริหารเองโดยผู้ให้บริการคลาวด์หลายราย', 'พื้นที่ทำงานเดียว', 'การปรับแต่งโลโก้และแบรนด์ของเว็บแอป', 'บริการอีเมลและแชทด่วน'],
priceTip: 'อิงตามตลาดคลาวด์',
for: 'สำหรับองค์กรและทีมขนาดกลาง',
btnText: 'รับพรีเมียมใน',
includesTitle: 'ทุกอย่างจากชุมชน รวมถึง:',
description: 'สำหรับองค์กรและทีมขนาดกลาง',
name: 'พรีเมียม',
comingSoon: 'การสนับสนุน Microsoft Azure และ Google Cloud กำลังมาเร็วๆ นี้',
price: 'ขยายได้',
},
},
vectorSpace: {
fullTip: 'เวกเตอร์สเปซเต็ม',
fullSolution: 'อัปเกรดแผนของคุณเพื่อเพิ่มพื้นที่',
},
apps: {
contactUs: 'ติดต่อเรา',
fullTip2: 'ถึงขีดจำกัดของแผนแล้ว',
fullTip1: 'อัปเกรดเพื่อสร้างแอปเพิ่มเติม',
fullTip1des: 'คุณได้ถึงขีด จำกัด ของการสร้างแอปในแผนนี้แล้ว',
fullTip2des: 'แนะนำให้ทำความสะอาดแอปพลิเคชันที่ไม่ใช้งานเพื่อเพิ่มการใช้งาน หรือติดต่อเรา',
},
annotatedResponse: {
fullTipLine1: 'อัปเกรดแผนของคุณเป็น',
fullTipLine2: 'ใส่คําอธิบายประกอบการสนทนาเพิ่มเติม',
quotaTitle: 'โควต้าตอบกลับคําอธิบายประกอบ',
},
usagePage: {
buildApps: 'สร้างแอป',
annotationQuota: 'โควตาการประกาศ',
documentsUploadQuota: 'โควต้าการอัปโหลดเอกสาร',
teamMembers: 'สมาชิกในทีม',
vectorSpace: 'การจัดเก็บข้อมูลความรู้',
vectorSpaceTooltip: 'เอกสารที่ใช้โหมดการจัดทำดัชนีคุณภาพสูงจะใช้ทรัพยากรเก็บข้อมูลความรู้ เมื่อการเก็บข้อมูลความรู้ถึงขีดจำกัด เอกสารใหม่จะไม่สามารถอัปโหลดได้.',
triggerEvents: 'เหตุการณ์กระตุ้น',
perMonth: 'ต่อเดือน',
resetsIn: 'รีเซ็ตในอีก {{count,number}} วัน',
},
teamMembers: 'สมาชิกในทีม',
triggerLimitModal: {
upgrade: 'อัปเกรด',
dismiss: 'ปฏิเสธ',
usageTitle: 'เหตุการณ์ทริกเกอร์',
title: 'อัปเกรดเพื่อปลดล็อกเหตุการณ์ทริกเกอร์เพิ่มเติม',
description: 'คุณได้ถึงขีดจำกัดของทริกเกอร์เหตุการณ์เวิร์กโฟลว์สำหรับแผนนี้แล้ว',
},
}
export default translation

View File

@@ -0,0 +1,783 @@
const translation = {
api: {
success: 'ความสําเร็จ',
actionSuccess: 'การดําเนินการสําเร็จ',
saved: 'บันทึก',
create: 'สร้าง',
remove: 'ถูก เอา ออก',
},
operation: {
create: 'สร้าง',
confirm: 'ยืนยัน',
cancel: 'ยกเลิก',
clear: 'ใส',
save: 'ประหยัด',
saveAndEnable: 'บันทึกและเปิดใช้งาน',
edit: 'แก้ไข',
add: 'เพิ่ม',
added: 'เพิ่ม',
refresh: 'เริ่มใหม่',
reset: 'รี เซ็ต',
search: 'ค้น',
change: 'เปลี่ยน',
remove: 'ถอด',
send: 'ส่ง',
copy: 'ลอก',
lineBreak: 'ตัวแบ่งบรรทัด',
sure: 'ฉันแน่ใจ',
download: 'ดาวน์โหลด',
delete: 'ลบ',
settings: 'การตั้งค่า',
setup: 'ตั้ง ค่า',
getForFree: 'รับฟรี',
reload: 'โหลด',
ok: 'ตกลง, ได้',
log: 'ซุง',
learnMore: 'ศึกษาเพิ่มเติม',
params: 'พารามิเตอร์',
duplicate: 'สำเนา',
rename: 'ตั้งชื่อใหม่',
audioSourceUnavailable: 'AudioSource ไม่พร้อมใช้งาน',
copyImage: 'คัดลอกรูปภาพ',
zoomOut: 'ซูมออก',
zoomIn: 'ซูมเข้า',
openInNewTab: 'เปิดในแท็บใหม่',
view: 'ทิวทัศน์',
regenerate: 'สร้างใหม่',
viewMore: 'ดูเพิ่มเติม',
saveAndRegenerate: 'บันทึกและสร้างก้อนย่อยใหม่',
close: 'ปิด',
skip: 'เรือ',
submit: 'ส่ง',
imageCopied: 'ภาพที่คัดลอก',
deleteApp: 'ลบแอพ',
copied: 'คัด ลอก',
viewDetails: 'ดูรายละเอียด',
in: 'ใน',
format: 'รูปแบบ',
downloadFailed: 'ดาวน์โหลดล้มเหลว กรุณาลองอีกครั้งในภายหลัง.',
more: 'มากขึ้น',
downloadSuccess: 'ดาวน์โหลดเสร็จสิ้นแล้ว.',
selectAll: 'เลือกทั้งหมด',
deSelectAll: 'ยกเลิกการเลือกทั้งหมด',
config: 'การตั้งค่า',
no: 'ไม่',
deleteConfirmTitle: 'ลบหรือไม่?',
confirmAction: 'กรุณายืนยันการกระทำของคุณ',
yes: 'ใช่',
noSearchResults: 'ไม่พบ {{content}}',
resetKeywords: 'รีเซ็ตคำสำคัญ',
selectCount: '{{count}} ที่เลือก',
searchCount: 'ค้นหา {{count}} {{content}}',
noSearchCount: '0 {{content}}',
now: 'ตอนนี้',
},
errorMsg: {
fieldRequired: '{{field}} เป็นสิ่งจําเป็น',
urlError: 'url ควรขึ้นต้นด้วย http:// หรือ https://',
},
placeholder: {
input: 'กรุณากรอก',
select: 'กรุณาเลือก',
search: 'ค้นหา...',
},
voice: {
language: {
zhHans: 'จีน',
zhHant: 'ภาษาจีนตัวเต็ม',
enUS: 'อังกฤษ',
deDE: 'เยอรมัน',
frFR: 'ฝรั่งเศส',
esES: 'สเปน',
itIT: 'อิตาลี',
thTH: 'ไทย',
idID: 'อินโดนีเซีย',
jaJP: 'ญี่ปุ่น',
koKR: 'เกาหลี',
ptBR: 'โปรตุเกส',
ruRU: 'รัสเซีย',
ukUA: 'ยูเครน',
viVN: 'เวียดนาม',
plPL: 'โปแลนด์',
roRO: 'โรมาเนีย',
hiIN: 'ฮินดี',
trTR: 'ตุรกี',
faIR: 'ภาษาเปอร์เซีย',
},
},
unit: {
char: 'รถ ถัง',
},
actionMsg: {
noModification: 'ไม่มีการดัดแปลงในขณะนี้',
modifiedSuccessfully: 'แก้ไขสําเร็จแล้ว',
modifiedUnsuccessfully: 'แก้ไขไม่สําเร็จ',
copySuccessfully: 'คัดลอกสําเร็จแล้ว',
paySucceeded: 'การชําระเงินสําเร็จ',
payCancelled: 'ยกเลิกการชําระเงิน',
generatedSuccessfully: 'สร้างสําเร็จ',
generatedUnsuccessfully: 'สร้างไม่สําเร็จ',
},
model: {
params: {
temperature: 'อุณหภูมิ',
temperatureTip: 'ควบคุมการสุ่ม: การลดระดับส่งผลให้การสุ่มเสร็จน้อยลง เมื่ออุณหภูมิเข้าใกล้ศูนย์แบบจําลองจะกลายเป็นการกําหนดและซ้ําซาก',
top_p: 'ท็อป P',
top_pTip: 'ควบคุมความหลากหลายผ่านการสุ่มตัวอย่างนิวเคลียส: 0.5 หมายถึงครึ่งหนึ่งของตัวเลือกที่ถ่วงน้ําหนักความน่าจะเป็นทั้งหมดได้รับการพิจารณา',
presence_penalty: 'บทลงโทษการแสดงตน',
presence_penaltyTip: 'จะลงโทษโทเค็นใหม่เท่าใดโดยพิจารณาจากว่าโทเค็นเหล่านั้นปรากฏในข้อความหรือไม่\nเพิ่มโอกาสของโมเดลในการพูดคุยเกี่ยวกับหัวข้อใหม่',
frequency_penalty: 'บทลงโทษความถี่',
frequency_penaltyTip: 'จะลงโทษโทเค็นใหม่เท่าใดตามความถี่ที่มีอยู่ในข้อความจนถึงตอนนี้\nลดโอกาสของโมเดลที่จะทําซ้ําบรรทัดเดิมแบบคําต่อคํา',
max_tokens: 'โทเค็นสูงสุด',
max_tokensTip: 'ใช้เพื่อจํากัดความยาวสูงสุดของการตอบกลับเป็นโทเค็น \nค่าที่ใหญ่ขึ้นอาจจํากัดพื้นที่ที่เหลือสําหรับคําพร้อมท์ บันทึกการแชท และความรู้ \nขอแนะนําให้ตั้งค่าต่ํากว่าสองในสาม\nGPT-4-1106-preview, GPT-4-Vision-Preview โทเค็นสูงสุด (อินพุต 128K เอาต์พุต 4K)',
maxTokenSettingTip: 'การตั้งค่าโทเค็นสูงสุดของคุณสูง ซึ่งอาจจํากัดพื้นที่สําหรับข้อความแจ้ง แบบสอบถาม และข้อมูล พิจารณาตั้งค่าให้ต่ํากว่า 2/3',
setToCurrentModelMaxTokenTip: 'โทเค็นสูงสุดได้รับการอัปเดตเป็นโทเค็นสูงสุด 80% ของรุ่นปัจจุบัน {{maxToken}}',
stop_sequences: 'หยุดลําดับ',
stop_sequencesTip: 'สูงสุดสี่ลําดับที่ API จะหยุดสร้างโทเค็นเพิ่มเติม ข้อความที่ส่งคืนจะไม่มีลําดับการหยุด',
stop_sequencesPlaceholder: 'ป้อนลําดับแล้วกด Tab',
},
tone: {
Creative: 'สร้างสรรค์',
Balanced: 'สมดุล',
Precise: 'ถูกต้อง',
Custom: 'ธรรมเนียม',
},
addMoreModel: 'ไปที่การตั้งค่าเพื่อเพิ่มรุ่นเพิ่มเติม',
settingsLink: 'การตั้งค่าผู้ให้บริการโมเดล',
capabilities: 'ความสามารถหลายรูปแบบ',
},
menus: {
status: 'Beta',
explore: 'สํารวจ',
apps: 'สตูดิโอ',
plugins: 'ปลั๊กอิน',
pluginsTips: 'รวมปลั๊กอินของบุคคลที่สามหรือสร้างปลั๊กอิน AI ที่เข้ากันได้กับ ChatGPT',
datasets: 'ความรู้',
datasetsTips: 'เร็ว ๆ นี้: นําเข้าข้อมูลข้อความของคุณเองหรือเขียนข้อมูลแบบเรียลไทม์ผ่าน Webhook เพื่อปรับปรุงบริบท LLM',
newApp: 'แอพใหม่',
newDataset: 'สร้างความรู้',
tools: 'เครื่อง มือ',
exploreMarketplace: 'สํารวจ Marketplace',
appDetail: 'รายละเอียดแอป',
account: 'บัญชี',
},
userProfile: {
settings: 'การตั้งค่า',
emailSupport: 'การสนับสนุนทางอีเมล',
workspace: 'พื้นที่',
createWorkspace: 'สร้างพื้นที่ทํางาน',
helpCenter: 'วิธีใช้',
roadmap: 'แผนงาน',
community: 'ชุมชน',
about: 'ประมาณ',
logout: 'ออกจากระบบ',
github: 'GitHub',
compliance: 'การปฏิบัติตามข้อกำหนด',
support: 'การสนับสนุน',
contactUs: 'ติดต่อเรา',
forum: 'ฟอรั่ม',
},
settings: {
accountGroup: 'ทั่วไป',
workplaceGroup: 'พื้นที่',
account: 'บัญชีของฉัน',
members: 'สมาชิก',
billing: 'เรียก เก็บ เงิน',
integrations: 'บูรณาการ',
language: 'ภาษา',
provider: 'ผู้ให้บริการโมเดล',
dataSource: 'แหล่งข้อมูล',
plugin: 'ปลั๊กอิน',
apiBasedExtension: 'ส่วนขยาย API',
generalGroup: 'ทั่วไป',
},
account: {
account: 'บัญชี',
myAccount: 'บัญชีของฉัน',
studio: 'Dify สตูดิโอ',
avatar: 'อวตาร',
name: 'ชื่อ',
email: 'อีเมล',
password: 'รหัสผ่าน',
passwordTip: 'คุณสามารถตั้งรหัสผ่านถาวรได้หากคุณไม่ต้องการใช้รหัสเข้าสู่ระบบชั่วคราว',
setPassword: 'ตั้งรหัสผ่าน',
resetPassword: 'รีเซ็ตรหัสผ่าน',
currentPassword: 'รหัสผ่านปัจจุบัน',
newPassword: 'รหัสผ่านใหม่',
confirmPassword: 'ยืนยันรหัสผ่าน',
notEqual: 'รหัสผ่านสองรหัสผ่านแตกต่างกัน',
langGeniusAccount: 'บัญชี Dify',
langGeniusAccountTip: 'บัญชี Dify และข้อมูลผู้ใช้ที่เกี่ยวข้อง',
editName: 'แก้ไขชื่อ',
showAppLength: 'แสดง {{length}} แอป',
delete: 'ลบบัญชี',
deleteTip: 'การลบบัญชีของคุณจะเป็นการลบข้อมูลทั้งหมดของคุณอย่างถาวรและไม่สามารถกู้คืนได้',
deletePrivacyLinkTip: 'สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่เราจัดการกับข้อมูลของคุณ โปรดดูที่',
deletePrivacyLink: 'นโยบายความเป็นส่วนตัว',
deleteLabel: 'เพื่อยืนยัน โปรดพิมพ์อีเมลของคุณด้านล่าง',
deletePlaceholder: 'กรุณากรอกอีเมลของคุณ',
sendVerificationButton: 'ส่งรหัสยืนยัน',
verificationLabel: 'รหัสยืนยัน',
verificationPlaceholder: 'วางรหัส 6 หลัก',
permanentlyDeleteButton: 'ลบบัญชีอย่างถาวร',
feedbackTitle: 'การตอบสนอง',
feedbackLabel: 'บอกเราว่าทําไมคุณถึงลบบัญชีของคุณ',
feedbackPlaceholder: 'เสริม',
deleteSuccessTip: 'บัญชีของคุณต้องใช้เวลาในการลบให้เสร็จสิ้น เราจะส่งอีเมลถึงคุณเมื่อทุกอย่างเสร็จสิ้น',
workspaceIcon: 'ไอคอนพื้นที่ทำงาน',
editWorkspaceInfo: 'แก้ไขข้อมูลเวิร์กสเปซ',
workspaceName: 'ชื่อพื้นที่ทำงาน',
changeEmail: {
resend: 'ส่งซ้ำ',
changeTo: 'เปลี่ยนเป็น {{email}}',
sendVerifyCode: 'ส่งรหัสยืนยัน',
newEmail: 'สร้างที่อยู่อีเมลใหม่',
emailLabel: 'อีเมลใหม่',
emailPlaceholder: 'ป้อนอีเมลใหม่',
verifyEmail: 'ตรวจสอบอีเมลปัจจุบันของคุณ',
codePlaceholder: 'กรุณาวางรหัส 6 หลัก',
codeLabel: 'รหัสยืนยันตัวตน',
existingEmail: 'มีผู้ใช้ที่มีอีเมลนี้อยู่แล้ว.',
verifyNew: 'ยืนยันอีเมลใหม่ของคุณ',
content4: 'เราเพิ่งส่งรหัสยืนยันชั่วคราวไปที่ <email>{{email}}</email>.',
continue: 'ดำเนินต่อไป',
content2: 'อีเมลปัจจุบันของคุณคือ <email>{{email}}</email> รหัสยืนยันได้ถูกส่งไปยังที่อยู่อีเมลนี้แล้ว',
content3: 'กรุณาใส่อีเมลใหม่และเราจะส่งรหัสยืนยันให้คุณ',
content1: 'หากคุณดำเนินการต่อ เราจะส่งรหัสยืนยันไปยัง <email>{{email}}</email> เพื่อการยืนยันตัวตนใหม่อีกครั้ง.',
resendTip: 'ไม่ได้รับรหัสเหรอ?',
resendCount: 'ส่งอีกครั้งใน {{count}} วินาที',
authTip: 'เมื่ออีเมลของคุณถูกเปลี่ยนแปลง บัญชี Google หรือบัญชี GitHub ที่เชื่อมโยงกับอีเมลเก่าของคุณจะไม่สามารถเข้าสู่ระบบบัญชีนี้ได้อีกต่อไป.',
title: 'เปลี่ยนอีเมล',
unAvailableEmail: 'อีเมลนี้ไม่สามารถใช้งานได้ชั่วคราว.',
},
},
members: {
team: 'ทีม',
invite: 'เพิ่ม',
name: 'ชื่อ',
lastActive: 'ใช้งานล่าสุด',
role: 'บทบาท',
pending: 'รอ ',
owner: 'เจ้าของ',
admin: 'ผู้ดูแลระบบ',
adminTip: 'สามารถสร้างแอพและจัดการการตั้งค่าทีมได้',
normal: 'ปกติ',
normalTip: 'ใช้ได้เฉพาะแอพ สร้างแอพไม่ได้',
builder: 'ผู้สร้าง',
builderTip: 'สามารถสร้างและแก้ไขแอปของตัวเองได้',
editor: 'บรรณาธิการ',
editorTip: 'สามารถสร้างและแก้ไขแอปได้',
datasetOperator: 'ผู้ดูแลระบบความรู้',
datasetOperatorTip: 'สามารถจัดการฐานความรู้ได้เท่านั้น',
inviteTeamMember: 'เพิ่มสมาชิกในทีม',
inviteTeamMemberTip: 'พวกเขาสามารถเข้าถึงข้อมูลทีมของคุณได้โดยตรงหลังจากลงชื่อเข้าใช้',
emailNotSetup: 'เซิร์ฟเวอร์อีเมลไม่ได้ตั้งค่าไว้ จึงไม่สามารถส่งอีเมลเชิญได้ กรุณาแจ้งผู้ใช้เกี่ยวกับลิงก์เชิญที่จะออกหลังจากการเชิญแทน',
email: 'อีเมล',
emailInvalid: 'รูปแบบอีเมลไม่ถูกต้อง',
emailPlaceholder: 'กรุณากรอกอีเมล',
sendInvite: 'ส่งคําเชิญ',
invitedAsRole: 'ได้รับเชิญให้เป็นผู้ใช้ {{role}}',
invitationSent: 'ส่งคําเชิญแล้ว',
invitationSentTip: 'ส่งคําเชิญแล้ว และพวกเขาสามารถลงชื่อเข้าใช้ Dify เพื่อเข้าถึงข้อมูลทีมของคุณได้',
invitationLink: 'ลิงค์คําเชิญ',
failedInvitationEmails: 'ผู้ใช้ด้านล่างไม่ได้รับเชิญสําเร็จ',
ok: 'ตกลง, ได้',
removeFromTeam: 'ลบออกจากทีม',
removeFromTeamTip: 'จะลบการเข้าถึงของทีม',
setAdmin: 'ตั้งเป็นผู้ดูแลระบบ',
setMember: 'ตั้งเป็นสมาชิกสามัญ',
setBuilder: 'ตั้งเป็นผู้สร้าง',
setEditor: 'ตั้งค่าเป็นตัวแก้ไข',
disInvite: 'ยกเลิกคําเชิญ',
deleteMember: 'ลบสมาชิก',
you: '(คุณ)',
transferModal: {
resend: 'ส่งซ้ำ',
codePlaceholder: 'กรุณาวางรหัส 6 หลัก',
resendTip: 'ไม่ received รหัสใช่ไหม?',
sendVerifyCode: 'ส่งรหัสยืนยัน',
continue: 'ดำเนินต่อไป',
codeLabel: 'รหัสยืนยัน',
transferPlaceholder: 'เลือกสมาชิกในที่ทำงาน…',
transferLabel: 'โอนความเป็นเจ้าของพื้นที่ทำงานไปยัง',
transfer: 'โอนความเป็นเจ้าของพื้นที่ทำงาน',
resendCount: 'ส่งอีกครั้งใน {{count}} วินาที',
verifyEmail: 'ตรวจสอบอีเมลปัจจุบันของคุณ',
verifyContent2: 'เราจะส่งรหัสการตรวจสอบชั่วคราวไปยังอีเมลนี้เพื่อทำการยืนยันตัวตนใหม่.',
warningTip: 'คุณจะกลายเป็นสมาชิกผู้ดูแลระบบ และเจ้าของคนใหม่จะมีการควบคุมทั้งหมด',
warning: 'คุณกำลังจะโอนความเป็นเจ้าของของ "{{workspace}}" นี่จะมีผลทันทีและไม่สามารถย้อนกลับได้.',
sendTip: 'หากคุณดำเนินการต่อไป เราจะส่งรหัสการตรวจสอบไปยัง <email>{{email}}</email> สำหรับการตรวจสอบสิทธิ์ใหม่อีกครั้ง.',
verifyContent: 'อีเมลปัจจุบันของคุณคือ <email>{{email}}</email>.',
title: 'โอนความเป็นเจ้าของพื้นที่ทำงาน',
},
transferOwnership: 'โอนความเป็นเจ้าของ',
},
integrations: {
connected: 'เชื่อม ต่อ',
google: 'กูเกิล',
googleAccount: 'เข้าสู่ระบบด้วยบัญชี Google',
github: 'เกวบ',
githubAccount: 'เข้าสู่ระบบด้วยบัญชี GitHub',
connect: 'ติด',
},
language: {
displayLanguage: 'ภาษาที่แสดง',
timezone: 'เขตเวลา',
},
provider: {
apiKey: 'คีย์ API',
enterYourKey: 'ป้อนคีย์ API ของคุณที่นี่',
invalidKey: 'คีย์ OpenAI API ไม่ถูกต้อง',
validatedError: 'การตรวจสอบล้มเหลว:',
validating: 'กําลังตรวจสอบความถูกต้องของคีย์...',
saveFailed: 'บันทึกคีย์ API ล้มเหลว',
apiKeyExceedBill: 'คีย์ API นี้ไม่มีโควต้า โปรดอ่าน',
addKey: 'เพิ่มคีย์',
comingSoon: 'เร็ว ๆ นี้',
editKey: 'แก้ไข',
invalidApiKey: 'คีย์ API ไม่ถูกต้อง',
azure: {
apiBase: 'ฐาน API',
apiBasePlaceholder: 'URL ฐาน API ของปลายทาง Azure OpenAI ของคุณ',
apiKey: 'คีย์ API',
apiKeyPlaceholder: 'ป้อนคีย์ API ของคุณที่นี่',
helpTip: 'เรียนรู้บริการ Azure OpenAI',
},
openaiHosted: {
openaiHosted: 'โฮสต์ OpenAI',
onTrial: 'ทดลองใช้',
exhausted: 'โควต้าหมด',
desc: 'บริการโฮสติ้ง OpenAI ที่ให้บริการโดย Dify ช่วยให้คุณใช้โมเดลต่างๆ เช่น GPT-3.5 ก่อนที่โควต้าการทดลองใช้ของคุณจะหมด คุณจําเป็นต้องตั้งค่าผู้ให้บริการรุ่นอื่นๆ',
callTimes: 'เวลาโทร',
usedUp: 'โควต้าทดลองใช้หมด เพิ่มผู้ให้บริการโมเดลของตัวเอง',
useYourModel: 'ปัจจุบันใช้ผู้ให้บริการโมเดลของตัวเอง',
close: 'ปิด',
},
anthropicHosted: {
anthropicHosted: 'Claude มานุษยวิทยา',
onTrial: 'ทดลองใช้',
exhausted: 'โควต้าหมด',
desc: 'โมเดลที่ทรงพลังซึ่งเก่งในงานที่หลากหลายตั้งแต่บทสนทนาที่ซับซ้อนและการสร้างเนื้อหาที่สร้างสรรค์ไปจนถึงคําแนะนําโดยละเอียด',
callTimes: 'เวลาโทร',
usedUp: 'โควต้าทดลองใช้หมด เพิ่มผู้ให้บริการโมเดลของตัวเอง',
useYourModel: 'ปัจจุบันใช้ผู้ให้บริการโมเดลของตัวเอง',
close: 'ปิด',
trialQuotaTip: 'โควต้าการทดลองใช้ Anthropic ของคุณจะหมดอายุในวันที่ 2025/03/11 และจะไม่สามารถใช้งานได้อีกต่อไปหลังจากนั้นโปรดใช้มันให้ทันเวลา',
},
anthropic: {
using: 'ความสามารถในการฝังกําลังใช้',
enableTip: 'ในการเปิดใช้งานโมเดล Anthropic คุณต้องผูกกับ OpenAI หรือ Azure OpenAI Service ก่อน',
notEnabled: 'ไม่ได้เปิดใช้งาน',
keyFrom: 'รับคีย์ API ของคุณจาก Anthropic',
},
encrypted: {
front: 'คีย์ API ของคุณจะถูกเข้ารหัสและจัดเก็บโดยใช้',
back: 'เทคโนโลยี ',
},
},
modelProvider: {
notConfigured: 'โมเดลระบบยังไม่ได้รับการกําหนดค่าอย่างสมบูรณ์ และฟังก์ชันบางอย่างอาจไม่พร้อมใช้งาน',
systemModelSettings: 'การตั้งค่ารุ่นระบบ',
systemModelSettingsLink: 'เหตุใดจึงจําเป็นต้องตั้งค่าโมเดลระบบ',
selectModel: 'เลือกรุ่นของคุณ',
setupModelFirst: 'โปรดตั้งค่าโมเดลของคุณก่อน',
systemReasoningModel: {
key: 'แบบจําลองการให้เหตุผลของระบบ',
tip: 'ตั้งค่าโมเดลการอนุมานเริ่มต้นที่จะใช้สําหรับการสร้างแอปพลิเคชัน ตลอดจนคุณลักษณะต่างๆ เช่น การสร้างชื่อบทสนทนาและคําแนะนําคําถามถัดไปจะใช้โมเดลการอนุมานเริ่มต้นด้วย',
},
embeddingModel: {
key: 'โมเดลการฝัง',
tip: 'ตั้งค่าโมเดลเริ่มต้นสําหรับการประมวลผลการฝังเอกสารของความรู้ ทั้งการดึงข้อมูลและการนําเข้าความรู้ใช้โมเดลการฝังนี้สําหรับการประมวลผลแบบเวกเตอร์ การสลับจะทําให้มิติเวกเตอร์ระหว่างความรู้ที่นําเข้าและคําถามไม่สอดคล้องกัน เพื่อหลีกเลี่ยงความล้มเหลวในการดึงข้อมูล โปรดอย่าเปลี่ยนรุ่นนี้ตามต้องการ',
required: 'จําเป็นต้องมีแบบจําลองการฝัง',
},
speechToTextModel: {
key: 'โมเดลคําพูดเป็นข้อความ',
tip: 'ตั้งค่าโมเดลเริ่มต้นสําหรับการป้อนข้อมูลคําพูดเป็นข้อความในการสนทนา',
},
ttsModel: {
key: 'โมเดลการแปลงข้อความเป็นคําพูด',
tip: 'ตั้งค่าโมเดลเริ่มต้นสําหรับการป้อนข้อมูลเป็นข้อความเป็นคําพูดในการสนทนา',
},
rerankModel: {
key: 'จัดอันดับโมเดลใหม่',
tip: 'โมเดล Rerank จะจัดลําดับรายการเอกสารผู้สมัครใหม่ตามการจับคู่ความหมายกับการสืบค้นของผู้ใช้ ซึ่งช่วยปรับปรุงผลลัพธ์ของการจัดอันดับความหมาย',
},
apiKey: 'คีย์ API',
quota: 'โควตา',
searchModel: 'ค้นหารุ่น',
noModelFound: 'ไม่พบแบบจําลองสําหรับ {{model}}',
models: 'รุ่น',
showMoreModelProvider: 'แสดงผู้ให้บริการรุ่นเพิ่มเติม',
selector: {
tip: 'รุ่นนี้ถูกลบออกแล้ว โปรดเพิ่มรุ่นหรือเลือกรุ่นอื่น',
emptyTip: 'ไม่มีรุ่นที่พร้อมใช้งาน',
emptySetting: 'โปรดไปที่การตั้งค่าเพื่อกําหนดค่า',
rerankTip: 'โปรดตั้งค่าโมเดล Rerank',
},
card: {
quota: 'โควตา',
onTrial: 'ทดลองใช้',
paid: 'จ่าย',
quotaExhausted: 'โควต้าหมด',
callTimes: 'เวลาโทร',
tokens: 'โท เค็น',
buyQuota: 'ซื้อโควต้า',
priorityUse: 'ลําดับความสําคัญในการใช้งาน',
removeKey: 'ลบคีย์ API',
tip: 'ลําดับความสําคัญจะได้รับจากโควต้าที่จ่าย โควต้าทดลองใช้จะถูกใช้หลังจากโควต้าที่จ่ายหมด',
},
item: {
deleteDesc: '{{modelName}} ถูกใช้เป็นแบบจําลองการให้เหตุผลของระบบ ฟังก์ชันบางอย่างจะไม่สามารถใช้งานได้หลังจากการลบออก กรุณายืนยัน',
freeQuota: 'โควต้าฟรี',
},
addApiKey: 'เพิ่มคีย์ API ของคุณ',
invalidApiKey: 'คีย์ API ไม่ถูกต้อง',
encrypted: {
front: 'คีย์ API ของคุณจะถูกเข้ารหัสและจัดเก็บโดยใช้',
back: 'เทคโนโลยี ',
},
freeQuota: {
howToEarn: 'วิธีรับ',
},
addMoreModelProvider: 'เพิ่มผู้ให้บริการโมเดลเพิ่มเติม',
addModel: 'เพิ่มรุ่น',
modelsNum: '{{num}} รุ่น',
showModels: 'แสดงโมเดล',
showModelsNum: 'แสดง {{num}} โมเดล',
collapse: 'ทรุด',
config: 'กําหนดค่า',
modelAndParameters: 'รุ่นและพารามิเตอร์',
model: 'แบบ',
featureSupported: 'รองรับ {{feature}}',
callTimes: 'เวลาโทร',
credits: 'เครดิตข้อความ',
buyQuota: 'ซื้อโควต้า',
getFreeTokens: 'รับโทเค็นฟรี',
priorityUsing: 'จัดลําดับความสําคัญของการใช้',
deprecated: 'เลิกใช้งานแล้ว',
confirmDelete: 'ยืนยันการลบ?',
quotaTip: 'โทเค็นฟรีที่เหลืออยู่',
loadPresets: 'โหลดค่าที่ตั้งไว้ล่วงหน้า',
parameters: 'พารามิเตอร์',
loadBalancing: 'โหลดบาลานซ์',
loadBalancingDescription: 'ลดแรงกดดันด้วยข้อมูลประจําตัวหลายชุด',
loadBalancingHeadline: 'โหลดบาลานซ์',
configLoadBalancing: 'กําหนดค่าโหลดบาลานซ์',
modelHasBeenDeprecated: 'โมเดลนี้เลิกใช้แล้ว',
providerManaged: 'จัดการผู้ให้บริการ',
providerManagedDescription: 'ใช้ข้อมูลประจําตัวชุดเดียวที่ผู้ให้บริการโมเดลให้มา',
defaultConfig: 'การกําหนดค่าเริ่มต้น',
apiKeyStatusNormal: 'สถานะ APIKey เป็นปกติ',
apiKeyRateLimit: 'ถึงขีดจํากัดอัตราแล้ว พร้อมใช้งานหลังจาก {{seconds}}s',
addConfig: 'เพิ่มการกําหนดค่า',
editConfig: 'แก้ไขการกําหนดค่า',
loadBalancingLeastKeyWarning: 'หากต้องการเปิดใช้งานการปรับสมดุลโหลด ต้องเปิดใช้งานคีย์อย่างน้อย 2 ปุ่ม',
loadBalancingInfo: 'ตามค่าเริ่มต้น การปรับสมดุลภาระงานจะใช้กลยุทธ์แบบ Round-robin หากเปิดใช้งานการจํากัดอัตรา จะมีการใช้ระยะเวลาคูลดาวน์ 1 นาที',
upgradeForLoadBalancing: 'อัปเกรดแผนของคุณเพื่อเปิดใช้งานการปรับสมดุลโหลด',
emptyProviderTip: 'โปรดติดตั้งผู้ให้บริการโมเดลก่อน',
discoverMore: 'ดูเพิ่มเติมใน',
emptyProviderTitle: 'ไม่ได้ตั้งค่าผู้ให้บริการโมเดล',
toBeConfigured: 'ต้องกําหนดค่า',
installProvider: 'ติดตั้งผู้ให้บริการโมเดล',
configureTip: 'ตั้งค่า api-key หรือเพิ่มโมเดลเพื่อใช้',
auth: {
apiKeyModal: {
addModel: 'เพิ่มโมเดล',
title: 'การกำหนดค่าการอนุญาตคีย์ API',
desc: 'หลังจากตั้งค่าข้อมูลประจำตัวแล้ว สมาชิกทุกคนภายในพื้นที่ทำงานสามารถใช้โมเดลนี้เมื่อจัดการแอปพลิเคชันได้',
},
configModel: 'กำหนดโมเดล',
unAuthorized: 'ไม่ได้รับอนุญาต',
addCredential: 'เพิ่มข้อมูลรับรอง',
addNewModel: 'เพิ่มโมเดลใหม่',
authRemoved: 'ผู้แต่งถูกลบออก',
providerManaged: 'ผู้ให้บริการจัดการ',
addApiKey: 'เพิ่มคีย์ API',
apiKeys: 'คีย์ API',
modelCredentials: 'ข้อมูลรับรองโมเดล',
specifyModelCredential: 'ระบุข้อมูลประจำตัวของโมเดล',
configLoadBalancing: 'การตั้งค่าการโหลดสมดุล',
addModelCredential: 'เพิ่มข้อมูลรับรองโมเดล',
authorizationError: 'ข้อผิดพลาดในการอนุญาต',
specifyModelCredentialTip: 'ใช้ข้อมูลรับรองโมเดลที่กำหนดไว้',
providerManagedTip: 'การกำหนดค่าปัจจุบันถูกโฮสต์โดยผู้ให้บริการ.',
customModelCredentialsDeleteTip: 'ข้อมูลรับรองกำลังถูกใช้งานและไม่สามารถลบได้',
addModel: 'เพิ่มรุ่น',
removeModel: 'ลบโมเดล',
manageCredentials: 'จัดการข้อมูลประจําตัว',
modelCredential: 'ข้อมูลประจําตัวของรุ่น',
editModelCredential: 'แก้ไขข้อมูลประจําตัวของโมเดล',
selectModelCredential: 'เลือกข้อมูลประจําตัวของโมเดล',
customModelCredentials: 'ข้อมูลประจําตัวของโมเดลแบบกําหนดเอง',
addNewModelCredential: 'เพิ่มข้อมูลประจําตัวของโมเดลใหม่',
},
parametersInvalidRemoved: 'บางพารามิเตอร์ไม่ถูกต้องและถูกนำออก',
installDataSourceProvider: 'ติดตั้งผู้ให้บริการแหล่งข้อมูล',
},
dataSource: {
add: 'เพิ่มแหล่งข้อมูล',
connect: 'ติด',
configure: 'กําหนดค่า',
notion: {
title: 'แนวคิด',
description: 'การใช้ Notion เป็นแหล่งข้อมูลสําหรับความรู้',
connectedWorkspace: 'พื้นที่ทํางานที่เชื่อมต่อ',
addWorkspace: 'เพิ่มพื้นที่ทํางาน',
connected: 'เชื่อม ต่อ',
disconnected: 'เชื่อม ต่อ',
changeAuthorizedPages: 'เปลี่ยนหน้าที่ได้รับอนุญาต',
pagesAuthorized: 'เพจที่ได้รับอนุญาต',
sync: 'ซิงค์',
remove: 'ถอด',
selector: {
pageSelected: 'หน้าที่เลือก',
searchPages: 'หน้าค้นหา...',
noSearchResult: 'ไม่มีผลการค้นหา',
addPages: 'เพิ่มหน้า',
preview: 'ดูตัวอย่าง',
},
integratedAlert: 'Notion ถูกผสานผ่านข้อมูลประจำตัวภายใน ไม่จำเป็นต้องทำการอนุญาตใหม่อีกครั้ง.',
},
website: {
title: 'เว็บไซต์',
description: 'นําเข้าเนื้อหาจากเว็บไซต์โดยใช้โปรแกรมรวบรวมข้อมูลเว็บ',
with: 'กับ',
configuredCrawlers: 'โปรแกรมรวบรวมข้อมูลที่กําหนดค่าไว้',
active: 'กระปรี้กระเปร่า',
inactive: 'เกียจคร้าน',
},
},
plugin: {
serpapi: {
apiKey: 'คีย์ API',
apiKeyPlaceholder: 'ป้อนคีย์ API ของคุณ',
keyFrom: 'รับคีย์ SerpAPI ของคุณจากหน้าบัญชี SerpAPI',
},
},
apiBasedExtension: {
title: 'ส่วนขยาย API ให้การจัดการ API แบบรวมศูนย์ ทําให้การกําหนดค่าง่ายขึ้นเพื่อให้ใช้งานได้ง่ายในแอปพลิเคชันของ Dify',
link: 'เรียนรู้วิธีพัฒนาส่วนขยาย API ของคุณเอง',
add: 'เพิ่มส่วนขยาย API',
selector: {
title: 'ส่วนขยาย API',
placeholder: 'โปรดเลือกส่วนขยาย API',
manage: 'จัดการส่วนขยาย API',
},
modal: {
title: 'เพิ่มส่วนขยาย API',
editTitle: 'แก้ไขส่วนขยาย API',
name: {
title: 'ชื่อ',
placeholder: 'กรุณากรอกชื่อ',
},
apiEndpoint: {
title: 'ปลายทาง API',
placeholder: 'โปรดป้อนปลายทาง API',
},
apiKey: {
title: 'คีย์ API',
placeholder: 'กรุณาป้อนคีย์ API',
lengthError: 'ความยาวคีย์ API ต้องไม่น้อยกว่า 5 อักขระ',
},
},
type: 'ประเภท',
},
about: {
changeLog: 'บันทึกการเปลี่ยนแปลง',
updateNow: 'อัพเดตเดี๋ยวนี้',
nowAvailable: 'Dify {{version}} พร้อมใช้งานแล้ว',
latestAvailable: 'Dify {{version}} เป็นเวอร์ชันล่าสุดที่มี',
},
appMenus: {
overview: 'ตรวจ สอบ',
promptEng: 'ออเคสตร้า',
apiAccess: 'การเข้าถึง API',
logAndAnn: 'ล็อก & แอน.',
logs: 'บันทึก',
},
environment: {
testing: 'การทดสอบ',
development: 'พัฒนาการ',
},
appModes: {
completionApp: 'เครื่องกําเนิดข้อความ',
chatApp: 'แอพแชท',
},
datasetMenus: {
documents: 'เอกสาร',
hitTesting: 'การทดสอบการดึงข้อมูล',
settings: 'การตั้งค่า',
emptyTip: 'ความรู้ยังไม่ได้เชื่อมโยง โปรดไปที่แอปพลิเคชันหรือปลั๊กอินเพื่อเชื่อมโยงให้เสร็จสมบูรณ์',
viewDoc: 'ดูเอกสารประกอบ',
relatedApp: 'แอปที่เชื่อมโยง',
noRelatedApp: 'ไม่มีแอปที่เชื่อมโยง',
pipeline: 'ท่อ',
},
voiceInput: {
speaking: 'พูดเดี๋ยวนี้...',
converting: 'กําลังแปลงเป็นข้อความ...',
notAllow: 'ไม่ได้รับอนุญาตไมโครโฟน',
},
modelName: {
'gpt-3.5-turbo': 'GPT-3.5-เทอร์โบ',
'gpt-3.5-turbo-16k': 'GPT-3.5-เทอร์โบ-16K',
'gpt-4': 'จีพีที-4',
'gpt-4-32k': 'จีทีพี-4-32 เค',
'text-davinci-003': 'ข้อความ-Davinci-003',
'text-embedding-ada-002': 'การฝังข้อความ-ADA-002',
'whisper-1': 'กระซิบ-1',
'claude-instant-1': 'Claude-Instant',
'claude-2': 'Claude-2 (โคลด-2)',
},
chat: {
renameConversation: 'เปลี่ยนชื่อการสนทนา',
conversationName: 'ชื่อการสนทนา',
conversationNamePlaceholder: 'กรุณากรอกชื่อการสนทนา',
conversationNameCanNotEmpty: 'ต้องมีชื่อการสนทนา',
citation: {
title: 'อ้าง อิง',
linkToDataset: 'ลิงค์สู่ความรู้',
characters: 'อักขระ:',
hitCount: 'จํานวนการดึงข้อมูล:',
vectorHash: 'แฮชเวกเตอร์:',
hitScore: 'คะแนนการดึงข้อมูล:',
},
inputPlaceholder: 'พูดคุยกับบอท',
thought: 'ความคิด',
thinking: 'ความคิด ',
resend: 'ส่งอีกครั้ง',
},
promptEditor: {
placeholder: 'เขียนคําพร้อมท์ของคุณที่นี่ ป้อน \'{\' เพื่อแทรกตัวแปร ป้อน \'/\' เพื่อแทรกบล็อกเนื้อหาพร้อมท์',
context: {
item: {
title: 'บริบท',
desc: 'แทรกเทมเพลตบริบท',
},
modal: {
title: '{{num}} ความรู้ในบริบท',
add: 'เพิ่มบริบท',
footer: 'คุณสามารถจัดการบริบทได้ในส่วนบริบทด้านล่าง',
},
},
history: {
item: {
title: 'ประวัติการสนทนา',
desc: 'แทรกเทมเพลตข้อความในอดีต',
},
modal: {
title: 'ตัวอย่าง',
user: 'สวัสดี',
assistant: 'สวัสดี! ฉันจะช่วยคุณได้อย่างไรในวันนี้?',
edit: 'แก้ไขชื่อบทบาทการสนทนา',
},
},
variable: {
item: {
title: 'ตัวแปรและเครื่องมือภายนอก',
desc: 'แทรกตัวแปรและเครื่องมือภายนอก',
},
outputToolDisabledItem: {
title: 'ตัว แปร',
desc: 'แทรกตัวแปร',
},
modal: {
add: 'ตัวแปรใหม่',
addTool: 'เครื่องมือใหม่',
},
},
query: {
item: {
title: 'สอบถาม',
desc: 'แทรกเทมเพลตแบบสอบถามของผู้ใช้',
},
},
existed: 'มีอยู่แล้วในพรอมต์',
},
imageUploader: {
uploadFromComputer: 'อัปโหลดจากคอมพิวเตอร์',
uploadFromComputerReadError: 'การอ่านภาพล้มเหลว โปรดลองอีกครั้ง',
uploadFromComputerUploadError: 'อัปโหลดรูปภาพล้มเหลว โปรดอัปโหลดอีกครั้ง',
uploadFromComputerLimit: 'อัปโหลดรูปภาพต้องไม่เกิน {{size}} MB',
pasteImageLink: 'วางลิงก์รูปภาพ',
pasteImageLinkInputPlaceholder: 'วางลิงค์รูปภาพที่นี่',
pasteImageLinkInvalid: 'ลิงก์รูปภาพไม่ถูกต้อง',
imageUpload: 'อัปโหลดรูปภาพ',
},
fileUploader: {
uploadFromComputer: 'อัปโหลดในเครื่อง',
pasteFileLink: 'วางลิงค์ไฟล์',
pasteFileLinkInputPlaceholder: 'ป้อน URL...',
uploadFromComputerReadError: 'การอ่านไฟล์ล้มเหลว โปรดลองอีกครั้ง',
uploadFromComputerUploadError: 'อัปโหลดไฟล์ล้มเหลว โปรดอัปโหลดอีกครั้ง',
uploadFromComputerLimit: 'อัปโหลด {{type}} ต้องไม่เกิน {{size}}',
pasteFileLinkInvalid: 'ลิงก์ไฟล์ไม่ถูกต้อง',
fileExtensionNotSupport: 'ไม่รองรับนามสกุลไฟล์',
fileExtensionBlocked: 'ประเภทไฟล์นี้ถูกบล็อกด้วยเหตุผลด้านความปลอดภัย',
},
tag: {
placeholder: 'แท็กทั้งหมด',
addNew: 'เพิ่มแท็กใหม่',
noTag: 'ไม่มีแท็ก',
noTagYet: 'ยังไม่มีแท็ก',
addTag: 'เพิ่มแท็ก',
editTag: 'แก้ไขแท็ก',
manageTags: 'จัดการแท็ก',
selectorPlaceholder: 'พิมพ์เพื่อค้นหาหรือสร้าง',
create: 'สร้าง',
delete: 'ลบแท็ก',
deleteTip: 'แท็กกําลังถูกใช้ลบออก?',
created: 'สร้างแท็กสําเร็จ',
failed: 'การสร้างแท็กล้มเหลว',
},
license: {
expiring: 'หมดอายุในหนึ่งวัน',
expiring_plural: 'หมดอายุใน {{count}} วัน',
unlimited: 'ไม่มีขีดจำกัด',
},
pagination: {
perPage: 'รายการต่อหน้า',
},
theme: {
dark: 'มืด',
theme: 'ธีม',
auto: 'ระบบ',
light: 'แสง',
},
compliance: {
professionalUpgradeTooltip: 'ใช้ได้เฉพาะแผนทีมหรือสูงกว่าเท่านั้น.',
gdpr: 'GDPR DPA',
sandboxUpgradeTooltip: 'มีให้บริการเฉพาะกับแผนการใช้งานแบบมืออาชีพหรือทีมเท่านั้น.',
iso27001: 'การรับรอง ISO 27001:2022',
soc2Type2: 'รายงาน SOC 2 Type II',
soc2Type1: 'รายงาน SOC 2 ประเภท I',
},
imageInput: {
dropImageHere: 'วางภาพของคุณที่นี่ หรือ',
browse: 'ท่องเว็บ',
supportedFormats: 'รองรับ PNG, JPG, JPEG, WEBP และ GIF',
},
you: 'คุณ',
avatar: {
deleteTitle: 'ลบอวตาร',
deleteDescription: 'คุณแน่ใจหรือไม่ว่าต้องการลบรูปโปรไฟล์ของคุณ? บัญชีของคุณจะใช้รูปโปรไฟล์เริ่มต้นตามค่าเริ่มต้น.',
},
feedback: {
content: 'เนื้อหาข้อเสนอแนะ',
title: 'ให้ข้อเสนอแนะ',
placeholder: 'กรุณาบรรยายสิ่งที่ผิดพลาดหรือวิธีที่เราสามารถปรับปรุงได้...',
subtitle: 'กรุณาบอกเราว่าเกิดอะไรขึ้นผิดพลาดกับการตอบนี้',
},
label: {
optional: '(ไม่บังคับ)',
},
noData: 'ไม่มีข้อมูล',
dynamicSelect: {
error: 'การโหลดตัวเลือกล้มเหลว',
noData: 'ไม่มีตัวเลือก available',
loading: 'กำลังโหลดตัวเลือก...',
selected: '{{count}} ที่ถูกเลือก',
},
}
export default translation

View File

@@ -0,0 +1,32 @@
const translation = {
custom: 'กำหนด เอง',
upgradeTip: {
prefix: 'อัปเกรดแผนของคุณเป็น',
suffix: 'ปรับแต่งแบรนด์ของคุณ',
des: 'อัปเกรดแผนของคุณเพื่อปรับแต่งแบรนด์ของคุณ',
title: 'อัปเกรดแผนของคุณ',
},
webapp: {
title: 'ปรับแต่งแบรนด์ web app',
removeBrand: 'ลบ ขับเคลื่อนโดย Dify',
changeLogo: 'การเปลี่ยนแปลงที่ขับเคลื่อนโดยภาพลักษณ์ของแบรนด์',
changeLogoTip: 'รูปแบบ SVG หรือ PNG ที่มีขนาดขั้นต่ํา 40x40px',
},
app: {
title: 'ปรับแต่งแบรนด์ส่วนหัวของแอป',
changeLogoTip: 'รูปแบบ SVG หรือ PNG ที่มีขนาดขั้นต่ํา 80x80px',
},
upload: 'อัปโหลด',
uploading: 'อัป โหลด',
uploadedFail: 'อัปโหลดรูปภาพล้มเหลวโปรดอัปโหลดใหม่',
change: 'เปลี่ยน',
apply: 'ใช้',
restore: 'คืนค่าเริ่มต้น',
customize: {
contactUs: 'ติดต่อเรา',
prefix: 'หากต้องการปรับแต่งโลโก้แบรนด์ภายในแอพ โปรด',
suffix: 'เพื่ออัปเกรดเป็นรุ่น Enterprise',
},
}
export default translation

View File

@@ -0,0 +1,217 @@
const translation = {
steps: {
header: {
fallbackRoute: 'ความรู้',
},
one: 'เลือกแหล่งข้อมูล',
two: 'การประมวลผลและการทําความสะอาดข้อความล่วงหน้า',
three: 'ดําเนินการและเสร็จสิ้น',
},
error: {
unavailable: 'ความรู้นี้ไม่มี',
},
firecrawl: {
configFirecrawl: 'กําหนดค่า 🔥Firecrawl',
apiKeyPlaceholder: 'คีย์ API จาก firecrawl.dev',
getApiKeyLinkText: 'รับคีย์ API ของคุณจาก firecrawl.dev',
},
jinaReader: {
configJinaReader: 'กําหนดค่า Jina Reader',
apiKeyPlaceholder: 'คีย์ API จาก jina.ai',
getApiKeyLinkText: 'รับคีย์ API ฟรีได้ที่ jina.ai',
},
stepOne: {
filePreview: 'ตัวอย่างไฟล์',
pagePreview: 'ตัวอย่างหน้า',
dataSourceType: {
file: 'นําเข้าจากไฟล์',
notion: 'ซิงค์จาก Notion',
web: 'ซิงค์จากเว็บไซต์',
},
uploader: {
title: 'อัปโหลดไฟล์',
button: 'ลากและวางไฟล์หรือโฟลเดอร์หรือ',
buttonSingleFile: 'ลากและวางไฟล์หรือ',
browse: 'เล็ม',
tip: 'รองรับ {{supportTypes}} สูงสุด {{size}}MB แต่ละตัว',
validation: {
typeError: 'ไม่รองรับประเภทไฟล์',
size: 'ไฟล์ใหญ่เกินไป สูงสุดคือ {{size}}MB',
count: 'ไม่รองรับหลายไฟล์',
filesNumber: 'คุณถึงขีดจํากัดการอัปโหลดเป็นชุดของ {{filesNumber}} แล้ว',
},
cancel: 'ยกเลิก',
change: 'เปลี่ยน',
failed: 'อัปโหลดล้มเหลว',
},
notionSyncTitle: 'ความคิดไม่เชื่อมต่อ',
notionSyncTip: 'ในการซิงค์กับ Notion ต้องสร้างการเชื่อมต่อกับ Notion ก่อน',
connect: 'ไปที่เชื่อมต่อ',
button: 'ต่อไป',
emptyDatasetCreation: 'ฉันต้องการสร้างความรู้ที่ว่างเปล่า',
modal: {
title: 'สร้างความรู้ที่ว่างเปล่า',
tip: 'ความรู้ที่ว่างเปล่าจะไม่มีเอกสาร และคุณสามารถอัปโหลดเอกสารได้ตลอดเวลา',
input: 'ชื่อความรู้',
placeholder: 'กรุณาป้อน',
nameNotEmpty: 'ชื่อต้องไม่ว่างเปล่า',
nameLengthInvalid: 'ชื่อต้องมีอักขระระหว่าง 1 ถึง 40 ตัว',
cancelButton: 'ยกเลิก',
confirmButton: 'สร้าง',
failed: 'การสร้างล้มเหลว',
},
website: {
chooseProvider: 'เลือกผู้ให้บริการ',
fireCrawlNotConfigured: 'ไม่ได้กําหนดค่า Firecrawl',
fireCrawlNotConfiguredDescription: 'กําหนดค่า Firecrawl ด้วยคีย์ API เพื่อใช้งาน',
jinaReaderNotConfigured: 'ไม่ได้กําหนดค่า Jina Reader',
jinaReaderNotConfiguredDescription: 'ตั้งค่า Jina Reader โดยป้อนคีย์ API ฟรีเพื่อเข้าถึง',
configure: 'กําหนดค่า',
run: 'วิ่ง',
firecrawlTitle: 'แยกเนื้อหาเว็บด้วย 🔥Firecrawl',
firecrawlDoc: 'เอกสาร Firecrawl',
jinaReaderTitle: 'แปลงทั้งไซต์เป็น Markdown',
jinaReaderDoc: 'เรียนรู้เพิ่มเติมเกี่ยวกับ Jina Reader',
jinaReaderDocLink: 'https://jina.ai/reader',
useSitemap: 'ใช้แผนผังเว็บไซต์',
useSitemapTooltip: 'ทําตามแผนผังเว็บไซต์เพื่อรวบรวมข้อมูลเว็บไซต์ หากไม่เป็นเช่นนั้น Jina Reader จะรวบรวมข้อมูลซ้ําๆ ตามความเกี่ยวข้องของหน้า โดยให้หน้าเว็บน้อยลงแต่มีคุณภาพสูงกว่า',
options: 'ตัวเลือก',
crawlSubPage: 'รวบรวมข้อมูลหน้าย่อย',
limit: 'เขต',
maxDepth: 'ความลึกสูงสุด',
excludePaths: 'ยกเว้นเส้นทาง',
includeOnlyPaths: 'รวมเฉพาะเส้นทาง',
extractOnlyMainContent: 'แยกเฉพาะเนื้อหาหลัก (ไม่มีส่วนหัว การนําทาง ส่วนท้าย ฯลฯ)',
exceptionErrorTitle: 'มีข้อยกเว้นเกิดขึ้นขณะรันงานการรวบรวมข้อมูล:',
unknownError: 'ข้อผิดพลาดที่ไม่รู้จัก',
totalPageScraped: 'จํานวนหน้าที่ขูด:',
selectAll: 'เลือกทั้งหมด',
resetAll: 'รีเซ็ตทั้งหมด',
scrapTimeInfo: 'ขูด {{total}} หน้าทั้งหมดภายใน {{time}}s',
preview: 'ดูตัวอย่าง',
maxDepthTooltip: 'ความลึกสูงสุดในการรวบรวมข้อมูลเมื่อเทียบกับ URL ที่ป้อน ความลึก 0 เพียงแค่ขูดหน้าของ URL ที่ป้อนความลึก 1 ขูด url และทุกอย่างหลังจาก enteredURL + หนึ่ง / เป็นต้น',
watercrawlTitle: 'ดึงเนื้อหาจากเว็บด้วย Watercrawl',
configureJinaReader: 'ตั้งค่า Jina Reader',
configureFirecrawl: 'กำหนดค่า Firecrawl',
configureWatercrawl: 'กำหนดค่าการเข้าถึงน้ำ',
waterCrawlNotConfiguredDescription: 'กำหนดค่า Watercrawl ด้วย API key เพื่อใช้งาน.',
watercrawlDoc: 'เอกสาร Watercrawl',
waterCrawlNotConfigured: 'Watercrawl ยังไม่ได้ตั้งค่า',
running: 'กำลัง เรียก ใช้',
},
cancel: 'ยกเลิก',
},
stepTwo: {
segmentation: 'การตั้งค่าก้อน',
auto: 'อัตโนมัติ',
autoDescription: 'ตั้งค่ากฎการแบ่งกลุ่มและการประมวลผลล่วงหน้าโดยอัตโนมัติ ขอแนะนําให้ผู้ใช้ที่ไม่คุ้นเคยเลือกสิ่งนี้',
custom: 'ธรรมเนียม',
customDescription: 'ปรับแต่งกฎของกลุ่ม ความยาวของกลุ่ม และกฎการประมวลผลล่วงหน้า ฯลฯ',
separator: 'ตัวคั่น',
separatorTip: 'ตัวคั่นคืออักขระที่ใช้ในการแยกข้อความ \\n\\n และ \\n เป็นตัวคั่นที่ใช้กันทั่วไปสําหรับการแยกย่อหน้าและบรรทัด เมื่อรวมกับเครื่องหมายจุลภาค (\\n\\n,\\n) ย่อหน้าจะถูกแบ่งตามบรรทัดเมื่อเกินความยาวของก้อนสูงสุด คุณยังสามารถใช้ตัวคั่นพิเศษที่กําหนดโดยตัวคุณเอง (เช่น ***)',
separatorPlaceholder: '\\n\\n สําหรับแยกย่อหน้า \\n สําหรับแยกเส้น',
maxLength: 'ความยาวก้อนสูงสุด',
maxLengthCheck: 'ความยาวก้อนสูงสุดควรน้อยกว่า {{limit}}',
overlap: 'การทับซ้อนกันของก้อน',
overlapTip: 'การตั้งค่าการทับซ้อนกันของกลุ่มสามารถรักษาความเกี่ยวข้องทางความหมายระหว่างกันได้ ขอแนะนําให้ตั้งค่า 10%-25% ของขนาดก้อนสูงสุด',
overlapCheck: 'การทับซ้อนกันของก้อนไม่ควรใหญ่กว่าความยาวของก้อนสูงสุด',
rules: 'กฎการประมวลผลข้อความล่วงหน้า',
removeExtraSpaces: 'แทนที่ช่องว่างบรรทัดใหม่และแท็บที่ต่อเนื่องกัน',
removeUrlEmails: 'ลบ URL และที่อยู่อีเมลทั้งหมด',
removeStopwords: 'ลบคําหยุด เช่น "a", "an", "the"',
preview: 'ยืนยันและดูตัวอย่าง',
reset: 'รี เซ็ต',
indexMode: 'โหมดดัชนี',
qualified: 'คุณภาพสูง',
recommend: 'แนะนำ',
qualifiedTip: 'เรียกใช้อินเทอร์เฟซการฝังระบบเริ่มต้นสําหรับการประมวลผลเพื่อให้มีความแม่นยําสูงขึ้นเมื่อผู้ใช้สืบค้น',
warning: 'โปรดตั้งค่าคีย์ API ของผู้ให้บริการโมเดลก่อน',
click: 'ไปที่การตั้งค่า',
economical: 'ประหยัด',
economicalTip: 'ใช้เอ็นจิ้นเวกเตอร์ออฟไลน์ ดัชนีคําหลัก ฯลฯ เพื่อลดความแม่นยําโดยไม่ต้องใช้โทเค็น',
QATitle: 'การแบ่งกลุ่มในรูปแบบคําถามและคําตอบ',
QATip: 'การเปิดใช้งานตัวเลือกนี้จะใช้โทเค็นมากขึ้น',
QALanguage: 'แบ่งกลุ่มโดยใช้',
estimateCost: 'กะ',
estimateSegment: 'ก้อนโดยประมาณ',
segmentCount: 'ก้อน',
calculating: 'คำนวณ ',
fileSource: 'เตรียมเอกสารล่วงหน้า',
notionSource: 'หน้าประมวลผลล่วงหน้า',
websiteSource: 'เว็บไซต์ Preprocess',
other: 'และอื่น ๆ',
fileUnit: 'แฟ้ม',
notionUnit: 'หน้า',
webpageUnit: 'หน้า',
previousStep: 'ขั้นตอนก่อนหน้า',
nextStep: 'บันทึกและประมวลผล',
save: 'บันทึกและประมวลผล',
cancel: 'ยกเลิก',
sideTipTitle: 'ทําไมต้องแบ่งกลุ่มและเตรียมกระบวนการล่วงหน้า?',
sideTipP1: 'เมื่อประมวลผลข้อมูลข้อความ การแบ่งกลุ่มและการทําความสะอาดเป็นขั้นตอนการประมวลผลล่วงหน้าที่สําคัญสองขั้นตอน',
sideTipP2: 'การแบ่งส่วนจะแบ่งข้อความยาวออกเป็นย่อหน้าเพื่อให้โมเดลเข้าใจได้ดีขึ้น สิ่งนี้ช่วยปรับปรุงคุณภาพและความเกี่ยวข้องของผลลัพธ์ของแบบจําลอง',
sideTipP3: 'การทําความสะอาดจะลบอักขระและรูปแบบที่ไม่จําเป็น ทําให้ความรู้สะอาดขึ้นและง่ายต่อการแยกวิเคราะห์',
sideTipP4: 'การแบ่งส่วนและการทําความสะอาดที่เหมาะสมช่วยปรับปรุงประสิทธิภาพของโมเดล ให้ผลลัพธ์ที่แม่นยําและมีคุณค่ามากขึ้น',
previewTitle: 'ดูตัวอย่าง',
previewTitleButton: 'ดูตัวอย่าง',
previewButton: 'การเปลี่ยนไปใช้รูปแบบ Q&A',
previewSwitchTipStart: 'การแสดงตัวอย่างส่วนปัจจุบันอยู่ในรูปแบบข้อความ การเปลี่ยนไปใช้ตัวอย่างรูปแบบคําถามและคําตอบจะ',
previewSwitchTipEnd: 'ใช้โทเค็นเพิ่มเติม',
characters: 'อักขระ',
indexSettingTip: 'หากต้องการเปลี่ยนวิธีการจัดทําดัชนีและรูปแบบการฝัง โปรดไปที่',
retrievalSettingTip: 'หากต้องการเปลี่ยนการตั้งค่าการดึงข้อมูล โปรดไปที่',
datasetSettingLink: 'การตั้งค่าความรู้',
notAvailableForParentChild: 'ไม่สามารถใช้ได้กับ ดัชนีผู้ปกครอง-ลูก',
qaSwitchHighQualityTipContent: 'ปัจจุบัน มีเพียงวิธีการจัดทําดัชนีคุณภาพสูงเท่านั้นที่รองรับการแบ่งกลุ่มรูปแบบ Q&A คุณต้องการเปลี่ยนไปใช้โหมดคุณภาพสูงหรือไม่?',
fullDoc: 'เอกสารฉบับเต็ม',
parentChild: 'พ่อแม่ลูก',
parentChunkForContext: 'Parent-chunk สําหรับบริบท',
general: 'ทั่วไป',
parentChildChunkDelimiterTip: 'ตัวคั่นคืออักขระที่ใช้ในการแยกข้อความ \\n แนะนําให้ใช้สําหรับการแยกก้อนหลักออกเป็นก้อนย่อยขนาดเล็ก คุณยังสามารถใช้ตัวคั่นพิเศษที่กําหนดโดยตัวคุณเอง',
previewChunkCount: '{{นับ}} ก้อนโดยประมาณ',
fullDocTip: 'เอกสารทั้งหมดจะถูกใช้เป็นส่วนหลักและดึงข้อมูลโดยตรง โปรดทราบว่าด้วยเหตุผลด้านประสิทธิภาพ ข้อความที่เกิน 10,000 โทเค็นจะถูกตัดทอนโดยอัตโนมัติ',
useQALanguage: 'ก้อนโดยใช้รูปแบบ Q&A ใน',
switch: 'เปลี่ยน',
paragraphTip: 'โหมดนี้จะแบ่งข้อความออกเป็นย่อหน้าตามตัวคั่นและความยาวของกลุ่มสูงสุด โดยใช้ข้อความที่แยกเป็นส่วนหลักสําหรับการดึงข้อมูล',
childChunkForRetrieval: 'ก้อนเด็กสําหรับการดึงข้อมูล',
parentChildDelimiterTip: 'ตัวคั่นคืออักขระที่ใช้ในการแยกข้อความ \\n\\n แนะนําให้ใช้สําหรับการแบ่งเอกสารต้นฉบับออกเป็นส่วนหลักขนาดใหญ่ คุณยังสามารถใช้ตัวคั่นพิเศษที่กําหนดโดยตัวคุณเอง',
qaSwitchHighQualityTipTitle: 'รูปแบบ Q&A ต้องใช้วิธีการจัดทําดัชนีคุณภาพสูง',
highQualityTip: 'เมื่อฝังในโหมดคุณภาพสูงเสร็จแล้ว จะไม่สามารถเปลี่ยนกลับเป็นโหมดประหยัดได้',
generalTip: 'โหมดการแบ่งกลุ่มข้อความทั่วไป กลุ่มที่ดึงและเรียกคืนจะเหมือนกัน',
previewChunkTip: 'คลิกปุ่ม \'Preview Chunk\' ทางด้านซ้ายเพื่อโหลดตัวอย่าง',
previewChunk: 'ดูตัวอย่าง Chunk',
notAvailableForQA: 'ไม่สามารถใช้ได้กับ Q&A Index',
paragraph: 'วรรค',
parentChildTip: 'เมื่อใช้โหมดผู้ปกครอง-รอง child-chunk จะใช้สําหรับการดึงข้อมูล และ parent-chunk จะใช้สําหรับการเรียกคืนเป็นบริบท',
qaTip: 'เมื่อใช้ข้อมูล Q&A ที่มีโครงสร้าง คุณสามารถสร้างเอกสารที่จับคู่คําถามกับคําตอบได้ เอกสารเหล่านี้ได้รับการจัดทําดัชนีตามส่วนคําถาม ทําให้ระบบสามารถดึงคําตอบที่เกี่ยวข้องตามความคล้ายคลึงกันของคําถาม',
},
stepThree: {
creationTitle: '🎉 สร้างความรู้',
creationContent: 'เราตั้งชื่อความรู้โดยอัตโนมัติ คุณสามารถแก้ไขได้ตลอดเวลา',
label: 'ชื่อความรู้',
additionTitle: '🎉 อัปโหลดเอกสาร',
additionP1: 'เอกสารถูกอัปโหลดไปยังความรู้แล้ว',
additionP2: 'คุณสามารถค้นหาได้ในรายการเอกสารของความรู้',
stop: 'หยุดการประมวลผล',
resume: 'ดําเนินการต่อ',
navTo: 'ไปที่เอกสาร',
sideTipTitle: 'อะไรต่อไป',
sideTipContent: 'หลังจากที่เอกสารเสร็จสิ้นการจัดทําดัชนี ความรู้สามารถรวมเข้ากับแอปพลิเคชันเป็นบริบท คุณสามารถค้นหาการตั้งค่าบริบทในหน้าการประสานงานพร้อมท์ คุณยังสามารถสร้างเป็นปลั๊กอินการจัดทําดัชนี ChatGPT อิสระสําหรับการเผยแพร่',
modelTitle: 'คุณแน่ใจหรือว่าจะหยุดฝัง?',
modelContent: 'หากคุณต้องการดําเนินการต่อในภายหลัง คุณจะดําเนินการต่อจากจุดที่คุณค้างไว้',
modelButtonConfirm: 'ยืนยัน',
modelButtonCancel: 'ยกเลิก',
},
otherDataSource: {
learnMore: 'ศึกษาเพิ่มเติม',
title: 'เชื่อมต่อกับแหล่งข้อมูลอื่นใช่ไหม',
description: 'ปัจจุบัน ฐานความรู้ของ Dify มีแหล่งข้อมูลที่จํากัดเท่านั้น การมีส่วนร่วมในแหล่งข้อมูลในฐานความรู้ Dify เป็นวิธีที่ยอดเยี่ยมในการช่วยเพิ่มความยืดหยุ่นและพลังของแพลตฟอร์มสําหรับผู้ใช้ทุกคน คู่มือการมีส่วนร่วมของเราทําให้ง่ายต่อการเริ่มต้นใช้งาน โปรดคลิกที่ลิงค์ด้านล่างเพื่อเรียนรู้เพิ่มเติม',
},
watercrawl: {
configWatercrawl: 'กำหนด Watercrawl',
getApiKeyLinkText: 'รับคีย์ API ของคุณจาก watercrawl.dev',
apiKeyPlaceholder: 'คีย์ API จาก watercrawl.dev',
},
}
export default translation

View File

@@ -0,0 +1,406 @@
const translation = {
list: {
title: 'เอกสาร',
desc: 'ไฟล์ทั้งหมดของความรู้จะแสดงที่นี่ และความรู้ทั้งหมดสามารถเชื่อมโยงกับการอ้างอิง Dify หรือจัดทําดัชนีผ่านปลั๊กอินแชท',
addFile: 'เพิ่มไฟล์',
addPages: 'เพิ่มหน้า',
addUrl: 'เพิ่ม URL',
table: {
header: {
fileName: 'ชื่อไฟล์',
words: 'นิรุกติ',
hitCount: 'จํานวนการดึงข้อมูล',
uploadTime: 'เวลาอัปโหลด',
status: 'สถานะ',
action: 'การเคลื่อนไหว',
chunkingMode: 'โหมดก้อน',
},
rename: 'ตั้งชื่อใหม่',
name: 'ชื่อ',
},
action: {
uploadFile: 'อัปโหลดไฟล์ใหม่',
settings: 'การตั้งค่ากลุ่ม',
addButton: 'เพิ่มก้อน',
add: 'เพิ่มก้อน',
batchAdd: 'เพิ่มแบทช์',
archive: 'หอจดหมายเหตุ',
unarchive: 'ยกเลิกการเก็บถาวร',
delete: 'ลบ',
enableWarning: 'ไม่สามารถเปิดใช้งานไฟล์ที่เก็บถาวรได้',
sync: 'ซิงค์',
pause: 'หยุด',
resume: 'ดำเนิน',
},
index: {
enable: 'เปิด',
disable: 'เก',
all: 'ทั้งหมด',
enableTip: 'สามารถจัดทําดัชนีไฟล์ได้',
disableTip: 'ไม่สามารถจัดทําดัชนีไฟล์',
},
status: {
queuing: 'จัด คิว',
indexing: 'ดัชนี',
paused: 'หยุดชั่วคราว',
error: 'ความผิดพลาด',
available: 'มีอยู่',
enabled: 'เปิด',
disabled: 'พิการ',
archived: 'เก็บ ถาวร',
},
empty: {
title: 'ยังไม่มีเอกสาร',
upload: {
tip: 'คุณสามารถอัปโหลดไฟล์ ซิงค์จากเว็บไซต์ หรือจากแอป web เช่น Notion, GitHub เป็นต้น',
},
sync: {
tip: 'Dify จะดาวน์โหลดไฟล์จาก Notion ของคุณเป็นระยะและดําเนินการให้เสร็จสมบูรณ์',
},
},
delete: {
title: 'คุณแน่ใจหรือเปล่า ลบ?',
content: 'หากคุณต้องการดําเนินการต่อในภายหลัง คุณจะดําเนินการต่อจากจุดที่คุณค้างไว้',
},
batchModal: {
title: 'แบทช์เพิ่มก้อน',
csvUploadTitle: 'ลากและวางไฟล์ CSV ของคุณที่นี่ หรือ',
browse: 'เล็ม',
tip: 'ไฟล์ CSV ต้องสอดคล้องกับโครงสร้างต่อไปนี้:',
question: 'ปัญหา',
answer: 'ตอบ',
contentTitle: 'เนื้อหาก้อน',
content: 'เนื้อหา',
template: 'ดาวน์โหลดเทมเพลตที่นี่',
cancel: 'ยกเลิก',
run: 'เรียกใช้แบทช์',
runError: 'เรียกใช้ชุดงานล้มเหลว',
processing: 'ในการประมวลผลแบบแบทช์',
completed: 'นําเข้าเสร็จสมบูรณ์',
error: 'ข้อผิดพลาดในการนําเข้า',
ok: 'ตกลง, ได้',
},
learnMore: 'ศึกษาเพิ่มเติม',
sort: {
uploadTime: 'เวลาที่อัปโหลด',
hitCount: 'จำนวนการดึงข้อมูล',
},
},
metadata: {
title: 'ข้อมูลเมตา',
desc: 'การติดฉลากข้อมูลเมตาสําหรับเอกสารช่วยให้ AI สามารถเข้าถึงเอกสารได้ทันท่วงทีและเปิดเผยแหล่งที่มาของการอ้างอิงสําหรับผู้ใช้',
dateTimeFormat: 'มมมม ด, ป hh:mm A',
docTypeSelectTitle: 'โปรดเลือกประเภทเอกสาร',
docTypeChangeTitle: 'เปลี่ยนชนิดเอกสาร',
docTypeSelectWarning: 'หากชนิดเอกสารมีการเปลี่ยนแปลง ข้อมูลเมตาที่เติมในขณะนี้จะไม่ถูกเก็บรักษาไว้อีกต่อไป',
firstMetaAction: 'ไปกันเถอะ',
placeholder: {
add: 'เพิ่ม',
select: 'เลือก',
},
source: {
upload_file: 'อัปโหลดไฟล์',
notion: 'ซิงค์แบบฟอร์ม Notion',
github: 'แบบฟอร์มซิงค์ Github',
online_document: 'เอกสารออนไลน์',
local_file: 'ไฟล์ท้องถิ่น',
website_crawl: 'รวบรวมข้อมูลเว็บไซต์',
},
type: {
book: 'หนังสือ',
webPage: 'เว็บเพจ',
paper: 'กระดาษ',
socialMediaPost: 'โพสต์บนโซเชียลมีเดีย',
personalDocument: 'เอกสารส่วนตัว',
businessDocument: 'เอกสารทางธุรกิจ',
IMChat: 'แชท IM',
wikipediaEntry: 'รายการวิกิพีเดีย',
notion: 'ซิงค์แบบฟอร์ม Notion',
github: 'แบบฟอร์มซิงค์ Github',
technicalParameters: 'พารามิเตอร์ทางเทคนิค',
},
field: {
processRule: {
processDoc: 'เอกสารกระบวนการ',
segmentRule: 'กฎก้อน',
segmentLength: 'ความยาวของก้อน',
processClean: 'กระบวนการส่งข้อความที่สะอาด',
},
book: {
title: 'ชื่อเรื่อง',
language: 'ภาษา',
author: 'ผู้แต่ง',
publisher: 'ผู้พิมพ์',
publicationDate: 'วันที่ตีพิมพ์',
ISBN: 'ไอเอส',
category: 'ประเภท',
},
webPage: {
title: 'ชื่อเรื่อง',
url: 'URL',
language: 'ภาษา',
authorPublisher: 'ผู้เขียน/สํานักพิมพ์',
publishDate: 'วันที่เผยแพร่',
topicKeywords: 'หัวข้อ/คําสําคัญ',
description: 'คำอธิบาย',
},
paper: {
title: 'ชื่อเรื่อง',
language: 'ภาษา',
author: 'ผู้แต่ง',
publishDate: 'วันที่เผยแพร่',
journalConferenceName: 'ชื่อวารสาร/การประชุม',
volumeIssuePage: 'ปริมาณ/ฉบับ/หน้า',
DOI: 'ดอย',
topicsKeywords: 'หัวข้อ/คําสําคัญ',
abstract: 'นามธรรม',
},
socialMediaPost: {
platform: 'แท่น',
authorUsername: 'ผู้เขียน/ชื่อผู้ใช้',
publishDate: 'วันที่เผยแพร่',
postURL: 'URL โพสต์',
topicsTags: 'หัวข้อ/แท็ก',
},
personalDocument: {
title: 'ชื่อเรื่อง',
author: 'ผู้แต่ง',
creationDate: 'วันที่สร้าง',
lastModifiedDate: 'วันที่แก้ไขล่าสุด',
documentType: 'ประเภทเอกสาร',
tagsCategory: 'แท็ก/หมวดหมู่',
},
businessDocument: {
title: 'ชื่อเรื่อง',
author: 'ผู้แต่ง',
creationDate: 'วันที่สร้าง',
lastModifiedDate: 'วันที่แก้ไขล่าสุด',
documentType: 'ประเภทเอกสาร',
departmentTeam: 'แผนก/ทีม',
},
IMChat: {
chatPlatform: 'แพลตฟอร์มแชท',
chatPartiesGroupName: 'ปาร์ตี้แชท/ชื่อกลุ่ม',
participants: 'คน',
startDate: 'วันที่เริ่มต้น',
endDate: 'วันที่สิ้นสุด',
topicsKeywords: 'หัวข้อ/คําสําคัญ',
fileType: 'ประเภทไฟล์',
},
wikipediaEntry: {
title: 'ชื่อเรื่อง',
language: 'ภาษา',
webpageURL: 'URL ของหน้าเว็บ',
editorContributor: 'บรรณาธิการ/ผู้ร่วมให้ข้อมูล',
lastEditDate: 'วันที่แก้ไขล่าสุด',
summaryIntroduction: 'สรุป/บทนํา',
},
notion: {
title: 'ชื่อเรื่อง',
language: 'ภาษา',
author: 'ผู้แต่ง',
createdTime: 'เวลาที่สร้างขึ้น',
lastModifiedTime: 'เวลาแก้ไขล่าสุด',
url: 'URL',
tag: 'ฉลาก',
description: 'คำอธิบาย',
},
github: {
repoName: 'ชื่อ Repo',
repoDesc: 'คําอธิบาย Repo',
repoOwner: 'เจ้าของ Repo',
fileName: 'ชื่อไฟล์',
filePath: 'เส้นทางไฟล์',
programmingLang: 'ภาษาโปรแกรม',
url: 'URL',
license: 'ใบอนุญาต',
lastCommitTime: 'เวลาคอมมิตล่าสุด',
lastCommitAuthor: 'ผู้เขียนคอมมิตล่าสุด',
},
originInfo: {
originalFilename: 'ชื่อไฟล์เดิม',
originalFileSize: 'ขนาดไฟล์ต้นฉบับ',
uploadDate: 'วันที่อัปโหลด',
lastUpdateDate: 'วันที่อัปเดตล่าสุด',
source: 'ที่มา',
},
technicalParameters: {
segmentSpecification: 'ข้อมูลจําเพาะของก้อน',
segmentLength: 'ความยาวของก้อน',
avgParagraphLength: 'ความยาวย่อหน้าเฉลี่ย',
paragraphs: 'ย่อหน้า',
hitCount: 'จํานวนการดึงข้อมูล',
embeddingTime: 'เวลาฝัง',
embeddedSpend: 'การใช้จ่ายแบบฝังตัว',
},
},
languageMap: {
zh: 'จีน',
en: 'อังกฤษ',
es: 'สเปน',
fr: 'ฝรั่งเศส',
de: 'เยอรมัน',
ja: 'ญี่ปุ่น',
ko: 'เกาหลี',
ru: 'รัสเซีย',
ar: 'อาหรับ',
pt: 'โปรตุเกส',
it: 'อิตาลี',
nl: 'ดัทช์',
pl: 'โปแลนด์',
sv: 'สวีเดน',
tr: 'ตุรกี',
he: 'เฮบรู',
hi: 'ฮินดี',
da: 'เดนมาร์ก',
fi: 'ฟินแลนด์',
no: 'นอร์เวย์',
hu: 'ฮังการี',
el: 'กรีก',
cs: 'เชก',
th: 'ไทย',
id: 'อินโดนีเซีย',
},
categoryMap: {
book: {
fiction: 'นิยาย',
biography: 'ชีวประวัติ',
history: 'ประวัติศาสตร์',
science: 'วิทยาศาสตร์',
technology: 'เทคโนโลยี',
education: 'การศึกษา',
philosophy: 'ปรัชญา',
religion: 'ศาสนา',
socialSciences: 'สังคมศาสตร์',
art: 'ศิลป์',
travel: 'เดินทาง',
health: 'สุขภาพ',
selfHelp: 'ช่วยเหลือตนเอง',
businessEconomics: 'ธุรกิจเศรษฐศาสตร์',
cooking: 'การหุงต้ม',
childrenYoungAdults: 'เด็กผู้ใหญ่',
comicsGraphicNovels: 'การ์ตูนนิยายกราฟิก',
poetry: 'กวีนิพนธ์',
drama: 'ละคร',
other: 'อื่นๆ',
},
personalDoc: {
notes: 'หมาย เหตุ',
blogDraft: 'ร่างบล็อก',
diary: 'ไดอารี่',
researchReport: 'รายงานการวิจัย',
bookExcerpt: 'ข้อความที่ตัดตอนมาจากหนังสือ',
schedule: 'ตาราง',
list: 'รายการ',
projectOverview: 'ภาพรวมโครงการ',
photoCollection: 'คอลเลกชันภาพถ่าย',
creativeWriting: 'การเขียนเชิงสร้างสรรค์',
codeSnippet: 'ข้อมูลโค้ด',
designDraft: 'ร่างการออกแบบ',
personalResume: 'ประวัติส่วนตัว',
other: 'อื่นๆ',
},
businessDoc: {
meetingMinutes: 'รายงานการประชุม',
researchReport: 'รายงานการวิจัย',
proposal: 'ข้อเสนอ',
employeeHandbook: 'คู่มือพนักงาน',
trainingMaterials: 'สื่อการฝึกอบรม',
requirementsDocument: 'เอกสารข้อกําหนด',
designDocument: 'เอกสารการออกแบบ',
productSpecification: 'คุณสมบัติของผลิตภัณฑ์',
financialReport: 'รายงานทางการเงิน',
marketAnalysis: 'การวิเคราะห์ตลาด',
projectPlan: 'แผนโครงการ',
teamStructure: 'โครงสร้างทีม',
policiesProcedures: 'นโยบายและขั้นตอน',
contractsAgreements: 'สัญญาและข้อตกลง',
emailCorrespondence: 'การติดต่อทางอีเมล',
other: 'อื่นๆ',
},
},
},
embedding: {
processing: 'การประมวลผลการฝัง...',
paused: 'การฝังหยุดชั่วคราว',
completed: 'การฝังเสร็จสมบูรณ์',
error: 'ข้อผิดพลาดในการฝัง',
docName: 'เอกสารการประมวลผลล่วงหน้า',
mode: 'กฎการแบ่งกลุ่ม',
segmentLength: 'ความยาวของก้อน',
textCleaning: 'การกําหนดข้อความล่วงหน้าและการทําความสะอาด',
segments: 'ย่อหน้า',
highQuality: 'โหมดคุณภาพสูง',
economy: 'โหมดประหยัด',
estimate: 'การบริโภคโดยประมาณ',
stop: 'หยุดการประมวลผล',
resume: 'ดําเนินการต่อ',
automatic: 'อัตโนมัติ',
custom: 'ธรรมเนียม',
previewTip: 'การแสดงตัวอย่างย่อหน้าจะพร้อมใช้งานหลังจากการฝังเสร็จสิ้น',
childMaxTokens: 'เด็ก',
parentMaxTokens: 'พ่อแม่',
pause: 'หยุด',
hierarchical: 'พ่อแม่ลูก',
waiting: 'กำลังรอสัญญาณ...',
},
segment: {
paragraphs: 'ย่อหน้า',
keywords: 'คําสําคัญ',
addKeyWord: 'เพิ่มคําสําคัญ',
keywordError: 'ความยาวสูงสุดของคําหลักคือ 20',
hitCount: 'จํานวนการดึงข้อมูล',
vectorHash: 'แฮชเวกเตอร์:',
questionPlaceholder: 'เพิ่มคําถามที่นี่',
questionEmpty: 'คําถามไม่สามารถว่างเปล่าได้',
answerPlaceholder: 'เพิ่มคําตอบที่นี่',
answerEmpty: 'คําตอบไม่สามารถว่างเปล่าได้',
contentPlaceholder: 'เพิ่มเนื้อหาที่นี่',
contentEmpty: 'เนื้อหาไม่สามารถว่างเปล่าได้',
newTextSegment: 'เซ็กเมนต์ข้อความใหม่',
newQaSegment: 'ส่วนถาม & คําตอบใหม่',
delete: 'ลบส่วนนี้ ?',
parentChunks_other: 'ก้อนผู้ปกครอง',
childChunkAdded: 'เพิ่มก้อนลูก 1 ชิ้น',
regeneratingMessage: 'อาจใช้เวลาสักครู่โปรดรอสักครู่...',
regenerationSuccessTitle: 'การฟื้นฟูเสร็จสมบูรณ์',
chunkDetail: 'รายละเอียดก้อน',
childChunk: 'ก้อนเด็ก',
chunk: 'ก้อน',
edited: 'แก้ไข',
addChunk: 'เพิ่มก้อน',
editedAt: 'แก้ไขที่',
dateTimeFormat: 'MM/DD/YYYY h:mm',
childChunks_other: 'ก้อนเด็ก',
editChildChunk: 'แก้ไข Child Chunk',
parentChunk: 'ผู้ปกครอง-ก้อน',
newChildChunk: 'ก้อนเด็กใหม่',
regenerationConfirmTitle: 'คุณต้องการสร้างก้อนเด็กขึ้นมาใหม่หรือไม่?',
chunks_other: 'ก้อน',
regeneratingTitle: 'การสร้างก้อนลูกใหม่',
regenerationConfirmMessage: 'การสร้างก้อนย่อยใหม่จะเขียนทับส่วนย่อยปัจจุบัน รวมถึงก้อนที่แก้ไขแล้วและก้อนที่เพิ่มเข้ามาใหม่ การฟื้นฟูไม่สามารถยกเลิกได้',
chunkAdded: 'เพิ่ม 1 ก้อน',
expandChunks: 'ขยายก้อน',
searchResults_zero: 'ผล',
characters_one: 'อักขระ',
empty: 'ไม่พบก้อน',
addChildChunk: 'เพิ่ม Child Chunk',
chunks_one: 'ก้อน',
clearFilter: 'ล้างตัวกรอง',
searchResults_one: 'ผล',
addAnother: 'เพิ่มอีก',
editParentChunk: 'แก้ไขส่วนผู้ปกครอง',
characters_other: 'อักขระ',
parentChunks_one: 'ก้อนผู้ปกครอง',
collapseChunks: 'ยุบก้อน',
newChunk: 'ก้อนใหม่',
editChunk: 'แก้ไขก้อน',
searchResults_other: 'ผลลัพธ์',
regenerationSuccessMessage: 'คุณสามารถปิดหน้าต่างนี้ได้',
childChunks_one: 'ก้อนเด็ก',
keywordDuplicate: 'คำสำคัญมีอยู่แล้ว',
keywordEmpty: 'คีย์เวิร์ดไม่สามารถว่างเปล่าได้',
},
}
export default translation

View File

@@ -0,0 +1,34 @@
const translation = {
title: 'การทดสอบการดึงข้อมูล',
settingTitle: 'การตั้งค่าการดึงข้อมูล',
desc: 'ทดสอบเอฟเฟกต์การตีของความรู้ตามข้อความแบบสอบถามที่กําหนด',
dateTimeFormat: 'MM/DD/YYYY hh:mm A',
table: {
header: {
source: 'ที่มา',
text: 'ข้อความ',
time: 'เวลา',
},
},
input: {
title: 'ข้อความต้นฉบับ',
placeholder: 'กรุณาป้อนข้อความแนะนําให้ใช้ประโยคประกาศสั้น ๆ',
countWarning: 'สูงสุด 200 อักขระ',
indexWarning: 'ความรู้คุณภาพสูงเท่านั้น',
testing: 'การทดสอบ',
},
hit: {
title: 'ย่อหน้าดึงข้อมูล',
emptyTip: 'ผลการทดสอบการดึงข้อมูลจะแสดงที่นี่',
},
noRecentTip: 'ไม่มีผลการค้นหาล่าสุดที่นี่',
viewChart: 'ดูแผนภูมิเวกเตอร์',
viewDetail: 'ดูรายละเอียด',
open: 'เปิด',
keyword: 'คำ',
chunkDetail: 'รายละเอียดก้อน',
records: 'เรก คอร์ด',
hitChunks: 'กด {{num}} ก้อนลูก',
}
export default translation

View File

@@ -0,0 +1,166 @@
const translation = {
creation: {
createFromScratch: {
title: 'ไปป์ไลน์ความรู้เปล่า',
description: 'สร้างไปป์ไลน์แบบกําหนดเองตั้งแต่เริ่มต้นด้วยการควบคุมการประมวลผลและโครงสร้างข้อมูลอย่างเต็มที่',
},
caution: 'ความระมัดระวัง',
createKnowledge: 'สร้างความรู้',
importDSL: 'นําเข้าจากไฟล์ DSL',
backToKnowledge: 'กลับไปที่ความรู้',
successTip: 'สร้างฐานความรู้สําเร็จ',
errorTip: 'สร้างฐานความรู้ไม่สําเร็จ',
},
templates: {
customized: 'กำหนด เอง',
},
operations: {
choose: 'เลือก',
convert: 'แปลง',
preview: 'ดูตัวอย่าง',
details: 'ราย ละเอียด',
editInfo: 'แก้ไขข้อมูล',
process: 'แปรรูป',
exportPipeline: 'ส่งออกไปป์ไลน์',
saveAndProcess: 'บันทึกและประมวลผล',
dataSource: 'แหล่งข้อมูล',
backToDataSource: 'กลับไปที่แหล่งข้อมูล',
useTemplate: 'ใช้ไปป์ไลน์ความรู้นี้',
},
deletePipeline: {
content: 'การลบเทมเพลตไปป์ไลน์ไม่สามารถย้อนกลับได้',
title: 'คุณแน่ใจที่จะลบเทมเพลตไปป์ไลน์นี้หรือไม่',
},
publishPipeline: {
success: {
message: 'เผยแพร่ไปป์ไลน์ความรู้',
tip: '<CustomLink>ไปที่เอกสาร</CustomLink> เพื่อเพิ่มหรือจัดการเอกสาร',
},
error: {
message: 'ไม่สามารถเผยแพร่ไปป์ไลน์ความรู้',
},
},
publishTemplate: {
success: {
learnMore: 'ศึกษาเพิ่มเติม',
message: 'เผยแพร่เทมเพลตไปป์ไลน์',
tip: 'คุณสามารถใช้เทมเพลตนี้ในหน้าการสร้าง',
},
error: {
message: 'ไม่สามารถเผยแพร่เทมเพลตไปป์ไลน์ได้',
},
},
exportDSL: {
successTip: 'ส่งออก DSL ไปป์ไลน์สําเร็จ',
errorTip: 'ไม่สามารถส่งออก DSL ไปป์ไลน์ได้',
},
details: {
structure: 'โครงสร้าง',
structureTooltip: 'โครงสร้างก้อนกําหนดวิธีการแยกและจัดทําดัชนีเอกสาร โดยเสนอโหมดทั่วไป ผู้ปกครอง-รอง และ Q&A และไม่ซ้ํากันสําหรับแต่ละฐานความรู้',
createdBy: 'โดย {{author}}',
},
testRun: {
steps: {
dataSource: 'แหล่งข้อมูล',
documentProcessing: 'การประมวลผลเอกสาร',
},
dataSource: {
localFiles: 'ไฟล์ในเครื่อง',
},
notion: {
docTitle: 'เอกสาร Notion',
title: 'เลือกหน้า Notion',
},
title: 'ทดสอบการทํางาน',
tooltip: 'ในโหมดทดสอบการทํางาน อนุญาตให้นําเข้าเอกสารได้ครั้งละหนึ่งฉบับเท่านั้นเพื่อการดีบักและสังเกตการณ์ที่ง่ายขึ้น',
},
inputFieldPanel: {
uniqueInputs: {
title: 'อินพุตที่ไม่ซ้ํากันสําหรับแต่ละทางเข้า',
tooltip: 'อินพุตที่ไม่ซ้ํากันสามารถเข้าถึงได้เฉพาะแหล่งข้อมูลที่เลือกและโหนดดาวน์สตรีมเท่านั้น ผู้ใช้ไม่จําเป็นต้องกรอกข้อมูลเมื่อเลือกแหล่งข้อมูลอื่น เฉพาะฟิลด์อินพุตที่อ้างอิงโดยตัวแปรแหล่งข้อมูลเท่านั้นที่จะปรากฏในขั้นตอนแรก (แหล่งข้อมูล) ฟิลด์อื่น ๆ ทั้งหมดจะแสดงในขั้นตอนที่สอง (เอกสารการประมวลผล)',
},
globalInputs: {
title: 'อินพุตทั่วโลกสําหรับทางเข้าทั้งหมด',
tooltip: 'อินพุตส่วนกลางจะถูกแชร์ในทุกโหนด ผู้ใช้จะต้องกรอกข้อมูลเมื่อเลือกแหล่งข้อมูลใดๆ ตัวอย่างเช่น ฟิลด์ เช่น ตัวคั่นและความยาวของก้อนสูงสุดสามารถนําไปใช้อย่างสม่ําเสมอกับแหล่งข้อมูลหลายแหล่ง เฉพาะฟิลด์อินพุตที่อ้างอิงโดยตัวแปรแหล่งข้อมูลเท่านั้นที่ปรากฏในขั้นตอนแรก (แหล่งข้อมูล) ฟิลด์อื่นๆ ทั้งหมดจะแสดงในขั้นตอนที่สอง (เอกสารกระบวนการ)',
},
preview: {
stepOneTitle: 'แหล่งข้อมูล',
stepTwoTitle: 'เอกสารกระบวนการ',
},
error: {
variableDuplicate: 'ชื่อตัวแปรมีอยู่แล้ว โปรดเลือกชื่ออื่น',
},
addInputField: 'เพิ่มฟิลด์อินพุต',
editInputField: 'แก้ไขฟิลด์อินพุต',
title: 'ช่องป้อนข้อมูลของผู้ใช้',
description: 'ฟิลด์การป้อนข้อมูลของผู้ใช้ใช้เพื่อกําหนดและรวบรวมตัวแปรที่จําเป็นในระหว่างกระบวนการดําเนินการไปป์ไลน์ ผู้ใช้สามารถปรับแต่งประเภทฟิลด์และกําหนดค่าอินพุตได้อย่างยืดหยุ่นเพื่อตอบสนองความต้องการของแหล่งข้อมูลหรือขั้นตอนการประมวลผลเอกสารต่างๆ',
},
addDocuments: {
steps: {
processDocuments: 'เอกสารกระบวนการ',
processingDocuments: 'การประมวลผลเอกสาร',
chooseDatasource: 'เลือกแหล่งข้อมูล',
},
stepOne: {
preview: 'ดูตัวอย่าง',
},
stepTwo: {
previewChunks: 'ดูตัวอย่างก้อน',
chunkSettings: 'การตั้งค่าก้อน',
},
stepThree: {
learnMore: 'ศึกษาเพิ่มเติม',
},
characters: 'อักขระ',
backToDataSource: 'แหล่งข้อมูล',
title: 'เพิ่มเอกสาร',
selectOnlineDocumentTip: 'ประมวลผลได้สูงสุด {{count}} หน้า',
selectOnlineDriveTip: 'ประมวลผลไฟล์ได้สูงสุด {{count}} ไฟล์ แต่ละไฟล์ไม่เกิน {{fileSize}} MB',
},
documentSettings: {
title: 'การตั้งค่าเอกสาร',
},
onlineDocument: {
pageSelectorTitle: '{{name}} หน้า',
},
onlineDrive: {
breadcrumbs: {
searchPlaceholder: 'ค้นหาไฟล์...',
allFiles: 'ไฟล์ทั้งหมด',
allBuckets: 'ที่เก็บข้อมูลบนคลาวด์ทั้งหมด',
searchResult: 'พบ {{searchResultsLength}} รายการในโฟลเดอร์ "{{folderName}}"',
},
resetKeywords: 'รีเซ็ตคีย์เวิร์ด',
emptySearchResult: 'ไม่พบสิ่งของ',
notSupportedFileType: 'ไม่รองรับชนิดแฟ้มนี้',
emptyFolder: 'โฟลเดอร์นี้ว่างเปล่า',
notConnected: '{{name}} ไม่ได้เชื่อมต่อ',
notConnectedTip: 'เพื่อซิงค์กับ {{name}} ต้องสร้างการเชื่อมต่อกับ {{name}} ก่อน',
},
credentialSelector: {
name: '{{credentialName}}\'s {{pluginName}}',
},
conversion: {
confirm: {
title: 'การยืนยัน',
content: 'การกระทํานี้เป็นแบบถาวร คุณจะไม่สามารถเปลี่ยนกลับไปใช้วิธีการก่อนหน้านี้ได้ โปรดยืนยันการแปลง',
},
title: 'แปลงเป็นไปป์ไลน์ความรู้',
warning: 'การดําเนินการนี้ไม่สามารถยกเลิกได้',
errorMessage: 'ไม่สามารถแปลงชุดข้อมูลเป็นไปป์ไลน์ได้',
successMessage: 'แปลงชุดข้อมูลเป็นไปป์ไลน์เรียบร้อยแล้ว',
descriptionChunk2: '— แนวทางที่เปิดกว้างและยืดหยุ่นมากขึ้นด้วยการเข้าถึงปลั๊กอินจากตลาดของเรา การดําเนินการนี้จะใช้วิธีการประมวลผลใหม่กับเอกสารในอนาคตทั้งหมด',
descriptionChunk1: 'ตอนนี้คุณสามารถแปลงฐานความรู้ที่มีอยู่เพื่อใช้ไปป์ไลน์ความรู้สําหรับการประมวลผลเอกสารได้แล้ว',
},
knowledgePermissions: 'สิทธิ์',
inputField: 'ฟิลด์อินพุต',
knowledgeNameAndIcon: 'ชื่อความรู้และไอคอน',
knowledgeDescription: 'คําอธิบายความรู้',
knowledgeNameAndIconPlaceholder: 'โปรดป้อนชื่อฐานความรู้',
editPipelineInfo: 'แก้ไขข้อมูลไปป์ไลน์',
pipelineNameAndIcon: 'ชื่อและไอคอนไปป์ไลน์',
knowledgeDescriptionPlaceholder: 'อธิบายสิ่งที่อยู่ในฐานความรู้นี้ คําอธิบายโดยละเอียดช่วยให้ AI สามารถเข้าถึงเนื้อหาของชุดข้อมูลได้แม่นยํายิ่งขึ้น หากว่างเปล่า Dify จะใช้กลยุทธ์การโจมตีเริ่มต้น (ไม่บังคับ)',
configurationTip: 'กำหนดค่า {{pluginName}}',
}
export default translation

View File

@@ -0,0 +1,51 @@
const translation = {
title: 'การตั้งค่าความรู้',
desc: 'ที่นี่คุณสามารถแก้ไขคุณสมบัติและการตั้งค่าการดึงข้อมูลของความรู้นี้',
form: {
name: 'ชื่อความรู้',
namePlaceholder: 'กรุณากรอกชื่อความรู้',
nameError: 'ชื่อต้องไม่ว่างเปล่า',
desc: 'คําอธิบายความรู้',
descInfo: 'โปรดเขียนคําอธิบายข้อความที่ชัดเจนเพื่อร่างเนื้อหาของความรู้ คําอธิบายนี้จะใช้เป็นพื้นฐานสําหรับการจับคู่เมื่อเลือกจากความรู้หลายรายการเพื่อการอนุมาน',
descPlaceholder: 'อธิบายสิ่งที่อยู่ในความรู้นี้ (ไม่บังคับ)',
descWrite: 'เรียนรู้วิธีเขียนคําอธิบายความรู้ที่ดี',
permissions: 'สิทธิ์',
permissionsOnlyMe: 'ฉันเท่านั้น',
permissionsAllMember: 'สมาชิกในทีมทุกคน',
permissionsInvitedMembers: 'สมาชิกในทีมบางส่วน',
me: '(คุณ)',
indexMethod: 'วิธีการจัดทําดัชนี',
indexMethodHighQuality: 'คุณภาพสูง',
indexMethodHighQualityTip: 'เรียกใช้แบบจําลองการฝังตัวสําหรับการประมวลผลเพื่อให้มีความแม่นยําสูงขึ้นเมื่อผู้ใช้สืบค้น',
indexMethodEconomy: 'ประหยัด',
indexMethodEconomyTip: 'ใช้เอ็นจิ้นเวกเตอร์ออฟไลน์ ดัชนีคําหลัก ฯลฯ เพื่อลดความแม่นยําโดยไม่ต้องใช้โทเค็น',
embeddingModel: 'โมเดลการฝัง',
embeddingModelTip: 'เปลี่ยนรุ่นที่ฝังไว้ โปรดไปที่',
embeddingModelTipLink: 'การตั้งค่า',
retrievalSetting: {
title: 'การตั้งค่าการดึงข้อมูล',
learnMore: 'ศึกษาเพิ่มเติม',
description: 'เกี่ยวกับวิธีการดึงข้อมูล',
longDescription: 'เกี่ยวกับวิธีการดึงข้อมูล คุณสามารถเปลี่ยนแปลงได้ตลอดเวลาในการตั้งค่าความรู้',
method: 'วิธีการค้นคืน',
},
externalKnowledgeAPI: 'API ความรู้ภายนอก',
externalKnowledgeID: 'ID ความรู้ภายนอก',
retrievalSettings: 'การตั้งค่าการดึงข้อมูล',
save: 'ประหยัด',
indexMethodChangeToEconomyDisabledTip: 'ไม่สามารถดาวน์เกรดจาก HQ เป็น ECO ได้',
helpText: 'เรียนรู้วิธีเขียนคําอธิบายชุดข้อมูลที่ดี',
upgradeHighQualityTip: 'เมื่ออัปเกรดเป็นโหมดคุณภาพสูงแล้ว จะไม่สามารถเปลี่ยนกลับเป็นโหมดประหยัดได้',
searchModel: 'ค้นหารุ่น',
chunkStructure: {
learnMore: 'ศึกษาเพิ่มเติม',
description: 'เกี่ยวกับ Chunk Structure',
title: 'โครงสร้างก้อน',
},
numberOfKeywords: 'จํานวนคําหลัก',
nameAndIcon: 'ชื่อ & ไอคอน',
onSearchResults: 'ไม่มีสมาชิกที่ตรงกับคําค้นหาของคุณ\nลองค้นหาอีกครั้ง',
},
}
export default translation

View File

@@ -0,0 +1,242 @@
const translation = {
knowledge: 'ความรู้',
externalTag: 'ภายนอก',
externalAPI: 'API ภายนอก',
externalAPIPanelTitle: 'API ความรู้ภายนอก',
externalKnowledgeId: 'ID ความรู้ภายนอก',
externalKnowledgeName: 'ชื่อความรู้ภายนอก',
externalKnowledgeDescription: 'คําอธิบายความรู้',
externalKnowledgeIdPlaceholder: 'โปรดป้อน Knowledge ID',
externalKnowledgeNamePlaceholder: 'โปรดป้อนชื่อฐานความรู้',
externalKnowledgeDescriptionPlaceholder: 'อธิบายสิ่งที่อยู่ในฐานความรู้นี้ (ไม่บังคับ)',
learnHowToWriteGoodKnowledgeDescription: 'เรียนรู้วิธีการเขียนคําอธิบายความรู้ที่ดี',
externalAPIPanelDescription: 'API ความรู้ภายนอกใช้เพื่อเชื่อมต่อกับฐานความรู้ภายนอก Dify และดึงความรู้จากฐานความรู้นั้น',
externalAPIPanelDocumentation: 'เรียนรู้วิธีสร้าง API ความรู้ภายนอก',
documentCount: 'เอกสาร',
wordCount: 'คํา k',
appCount: 'แอปที่เชื่อมโยง',
createDataset: 'สร้างความรู้',
createNewExternalAPI: 'สร้าง API ความรู้ภายนอกใหม่',
noExternalKnowledge: 'ยังไม่มี External Knowledge API คลิกที่นี่เพื่อสร้าง',
createExternalAPI: 'เพิ่ม API ความรู้ภายนอก',
editExternalAPIFormTitle: 'แก้ไข API ความรู้ภายนอก',
editExternalAPITooltipTitle: 'ความรู้ที่เชื่อมโยง',
editExternalAPIConfirmWarningContent: {
front: 'API ความรู้ภายนอกนี้เชื่อมโยงกับ',
end: 'ความรู้ภายนอกและการปรับเปลี่ยนนี้จะนําไปใช้กับพวกเขาทั้งหมด คุณแน่ใจหรือไม่ว่าต้องการบันทึกการเปลี่ยนแปลงนี้?',
},
editExternalAPIFormWarning: {
front: 'API ภายนอกนี้เชื่อมโยงกับ',
end: 'ความรู้ภายนอก',
},
deleteExternalAPIConfirmWarningContent: {
title: {
front: 'ลบ',
end: '?',
},
content: {
front: 'API ความรู้ภายนอกนี้เชื่อมโยงกับ',
end: 'ความรู้ภายนอก การลบ API นี้จะทําให้ API ทั้งหมดเป็นโมฆะ คุณแน่ใจหรือไม่ว่าต้องการลบ API นี้?',
},
noConnectionContent: 'คุณแน่ใจว่าจะลบ API นี้หรือไม่',
},
selectExternalKnowledgeAPI: {
placeholder: 'เลือก API ความรู้ภายนอก',
},
connectDataset: 'เชื่อมต่อกับฐานความรู้ภายนอก',
connectDatasetIntro: {
title: 'วิธีการเชื่อมต่อกับฐานความรู้ภายนอก',
content: {
front: 'เมื่อต้องการเชื่อมต่อกับฐานความรู้ภายนอก คุณต้องสร้าง API ภายนอกก่อน โปรดอ่านอย่างละเอียดและอ้างอิง',
link: 'ดูวิธีสร้าง API ภายนอก',
end: '. จากนั้นค้นหา Knowledge ID ที่เกี่ยวข้องและกรอกข้อมูลในแบบฟอร์มทางด้านซ้าย หากข้อมูลทั้งหมดถูกต้อง ข้อมูลจะข้ามไปยังการทดสอบการดึงข้อมูลในฐานความรู้โดยอัตโนมัติหลังจากคลิกปุ่มเชื่อมต่อ',
},
learnMore: 'ศึกษาเพิ่มเติม',
},
connectHelper: {
helper1: 'เชื่อมต่อกับฐานความรู้ภายนอกผ่าน API และ ID ฐานความรู้ ปัจจุบัน',
helper2: 'รองรับเฉพาะฟังก์ชันการดึงข้อมูล',
helper3: '. เราขอแนะนําให้คุณ',
helper4: 'อ่านเอกสารวิธีใช้',
helper5: 'ระมัดระวังก่อนใช้คุณสมบัตินี้',
},
createDatasetIntro: 'นําเข้าข้อมูลข้อความของคุณเองหรือเขียนข้อมูลแบบเรียลไทม์ผ่าน Webhook เพื่อปรับปรุงบริบท LLM',
deleteDatasetConfirmTitle: 'ลบความรู้นี้?',
deleteDatasetConfirmContent: 'การลบความรู้นั้นไม่สามารถย้อนกลับได้ ผู้ใช้จะไม่สามารถเข้าถึงความรู้ของคุณอีกต่อไป และการกําหนดค่าพร้อมท์และบันทึกทั้งหมดจะถูกลบอย่างถาวร',
datasetUsedByApp: 'ความรู้นี้ถูกใช้โดยบางแอป แอปจะไม่สามารถใช้ความรู้นี้ได้อีกต่อไป และการกําหนดค่าพร้อมท์และบันทึกทั้งหมดจะถูกลบอย่างถาวร',
datasetDeleted: 'ลบความรู้',
datasetDeleteFailed: 'ลบความรู้ไม่สําเร็จ',
didYouKnow: 'คุณรู้หรือไม่?',
intro1: 'ความรู้สามารถรวมเข้ากับแอปพลิเคชัน Dify ได้',
intro2: 'ตามบริบท',
intro3: ',',
intro4: 'หรือมัน',
intro5: 'สามารถสร้างได้',
intro6: 'เป็นปลั๊กอินดัชนี ChatGPT แบบสแตนด์อโลนเพื่อเผยแพร่',
unavailable: 'ไม่',
datasets: 'ความรู้',
datasetsApi: 'การเข้าถึง API',
externalKnowledgeForm: {
connect: 'ติด',
cancel: 'ยกเลิก',
},
externalAPIForm: {
name: 'ชื่อ',
endpoint: 'ปลายทาง API',
apiKey: 'คีย์ API',
save: 'ประหยัด',
cancel: 'ยกเลิก',
edit: 'แก้ไข',
encrypted: {
front: 'โทเค็น API ของคุณจะถูกเข้ารหัสและจัดเก็บโดยใช้',
end: 'เทคโนโลยี ',
},
},
retrieval: {
semantic_search: {
title: 'การค้นหาเวกเตอร์',
description: 'สร้างการฝังแบบสอบถามและค้นหาส่วนข้อความที่คล้ายกับการแสดงเวกเตอร์มากที่สุด',
},
full_text_search: {
title: 'การค้นหาข้อความแบบเต็ม',
description: 'จัดทําดัชนีคําศัพท์ทั้งหมดในเอกสาร เพื่อให้ผู้ใช้สามารถค้นหาคําศัพท์ใดก็ได้และดึงข้อความที่เกี่ยวข้องที่มีคําเหล่านั้น',
},
hybrid_search: {
title: 'การค้นหาแบบไฮบริด',
description: 'ดําเนินการค้นหาข้อความแบบเต็มและการค้นหาแบบเวกเตอร์พร้อมกันจัดอันดับใหม่เพื่อเลือกการจับคู่ที่ดีที่สุดสําหรับคําค้นหาของผู้ใช้ ผู้ใช้สามารถเลือกที่จะตั้งค่าน้ําหนักหรือกําหนดค่าเป็นโมเดล Rerank',
recommend: 'แนะนำ',
},
invertedIndex: {
},
change: 'เปลี่ยน',
changeRetrievalMethod: 'วิธีการเรียกดูการเปลี่ยนแปลง',
keyword_search: {
title: 'ดัชนีกลับด้าน',
description: 'Inverted Index เป็นโครงสร้างที่ใช้สําหรับการดึงข้อมูลอย่างมีประสิทธิภาพ จัดเรียงตามคําศัพท์ แต่ละคําชี้ไปที่เอกสารหรือหน้าเว็บที่มีคําดังกล่าว',
},
},
docsFailedNotice: 'เอกสารไม่สามารถจัดทําดัชนีได้',
retry: 'ลอง',
indexingTechnique: {
high_quality: 'สํานักงานใหญ่',
economy: 'อีโค',
},
indexingMethod: {
semantic_search: 'เวกเตอร์',
full_text_search: 'ข้อความฉบับเต็ม',
hybrid_search: 'พันธุ์ผสม',
invertedIndex: 'คว่ำ',
},
defaultRetrievalTip: 'การดึงข้อมูลหลายเส้นทางจะถูกใช้โดยค่าเริ่มต้น ความรู้จะถูกดึงมาจากฐานความรู้หลายแห่งแล้วจัดอันดับใหม่',
mixtureHighQualityAndEconomicTip: 'โมเดล Rerank จําเป็นสําหรับการผสมผสานระหว่างฐานความรู้คุณภาพสูงและประหยัด',
inconsistentEmbeddingModelTip: 'จําเป็นต้องมีแบบจําลอง Rerank หากแบบจําลองการฝังของฐานความรู้ที่เลือกไม่สอดคล้องกัน',
mixtureInternalAndExternalTip: 'โมเดล Rerank จําเป็นสําหรับการผสมผสานระหว่างความรู้ภายในและภายนอก',
allExternalTip: 'เมื่อใช้ความรู้ภายนอกเท่านั้น ผู้ใช้สามารถเลือกได้ว่าจะเปิดใช้งานโมเดล Rerank หรือไม่ หากไม่ได้เปิดใช้งาน ก้อนที่ดึงมาจะถูกจัดเรียงตามคะแนน เมื่อกลยุทธ์การดึงข้อมูลของฐานความรู้ที่แตกต่างกันไม่สอดคล้องกัน ก็จะไม่ถูกต้อง',
retrievalSettings: 'การตั้งค่าการดึงข้อมูล',
rerankSettings: 'การตั้งค่ารีไลน์',
weightedScore: {
title: 'คะแนนถ่วงน้ําหนัก',
description: 'กลยุทธ์การจัดอันดับใหม่นี้จะกําหนดว่าควรจัดลําดับความสําคัญของการจับคู่ความหมายหรือคีย์เวิร์ด',
semanticFirst: 'ความหมายก่อน',
keywordFirst: 'คีย์เวิร์ดก่อน',
customized: 'กำหนด เอง',
semantic: 'ความหมาย',
keyword: 'คำ',
},
nTo1RetrievalLegacy: 'การดึงข้อมูล N-to-1 จะเลิกใช้อย่างเป็นทางการตั้งแต่เดือนกันยายน ขอแนะนําให้ใช้การดึงข้อมูลหลายเส้นทางล่าสุดเพื่อให้ได้ผลลัพธ์ที่ดีขึ้น',
nTo1RetrievalLegacyLink: 'ศึกษาเพิ่มเติม',
nTo1RetrievalLegacyLinkText: 'การดึงข้อมูล N-to-1 จะเลิกใช้อย่างเป็นทางการในเดือนกันยายน',
chunkingMode: {
general: 'ทั่วไป',
parentChild: 'พ่อแม่ลูก',
graph: 'กราฟ',
qa: 'ถาม & ตอบ',
},
parentMode: {
paragraph: 'วรรค',
fullDoc: 'เอกสารฉบับเต็ม',
},
batchAction: {
selected: 'เลือก',
archive: 'หอจดหมายเหตุ',
delete: 'ลบ',
enable: 'เปิด',
cancel: 'ยกเลิก',
disable: 'เก',
},
localDocs: 'เอกสารท้องถิ่น',
preprocessDocument: '{{num}} เอกสารการประมวลผลล่วงหน้า',
documentsDisabled: '{{num}} เอกสารถูกปิดใช้งาน - ไม่ได้ใช้งานนานกว่า 30 วัน',
enable: 'เปิด',
allKnowledge: 'ความรู้ทั้งหมด',
allKnowledgeDescription: 'เลือกเพื่อแสดงความรู้ทั้งหมดในพื้นที่ทํางานนี้ เฉพาะเจ้าของพื้นที่ทํางานเท่านั้นที่สามารถจัดการความรู้ทั้งหมดได้',
metadata: {
createMetadata: {
back: 'กลับ',
title: 'ข้อมูลเมตาใหม่',
namePlaceholder: 'เพิ่มชื่อข้อมูลเมตา',
name: 'ชื่อ',
type: 'ประเภท',
},
checkName: {
invalid: 'ชื่อเมตาดาต้าต้องประกอบด้วยตัวอักษรตัวเล็กเท่านั้น เลข และขีดล่าง และต้องเริ่มต้นด้วยตัวอักษรตัวเล็ก',
empty: 'ชื่อข้อมูลเมตาไม่สามารถเป็นค่าแEmpty',
tooLong: 'ชื่อเมตาดาต้าไม่สามารถเกิน {{max}} ตัวอักษร',
},
batchEditMetadata: {
multipleValue: 'หลายค่า',
applyToAllSelectDocument: 'ใช้กับเอกสารที่เลือกทั้งหมด',
editMetadata: 'แก้ไขข้อมูลเมตา',
editDocumentsNum: 'การแก้ไขเอกสาร {{num}} ฉบับ',
applyToAllSelectDocumentTip: 'สร้างข้อมูลเมตาใหม่และแก้ไขทั้งหมดข้างต้นโดยอัตโนมัติสำหรับเอกสารที่เลือกทั้งหมด มิฉะนั้นการแก้ไขข้อมูลเมตาจะใช้ได้เฉพาะกับเอกสารที่มีข้อมูลเมตานั้นเท่านั้น.',
},
selectMetadata: {
manageAction: 'จัดการ',
search: 'ค้นหาข้อมูลเมตา',
newAction: 'ข้อมูลเมตาใหม่',
},
datasetMetadata: {
deleteTitle: 'ยืนยันเพื่อทำการลบ',
values: '{{num}} ค่า',
disabled: 'คนพิการ',
builtInDescription: 'ข้อมูลเมตาที่สร้างขึ้นในตัวจะถูกดึงออกและสร้างโดยอัตโนมัติ ต้องเปิดใช้งานก่อนใช้งานและไม่สามารถแก้ไขได้',
rename: 'เปลี่ยนชื่อ',
description: 'คุณสามารถจัดการข้อมูลเมตาทั้งหมดในความรู้นี้ได้ที่นี่ การปรับเปลี่ยนจะถูกซิงโครไนซ์ไปยังเอกสารทุกฉบับ',
deleteContent: 'คุณแน่ใจหรือว่าต้องการลบข้อมูลเมตา "{{name}}"',
name: 'ชื่อ',
addMetaData: 'เพิ่มข้อมูลเมตา',
builtIn: 'แบบในตัว',
namePlaceholder: 'ชื่อเมทาดาทา',
},
documentMetadata: {
technicalParameters: 'พารามิเตอร์ทางเทคนิค',
startLabeling: 'เริ่มการติดป้าย',
metadataToolTip: 'ข้อมูลเมตาเป็นตัวกรองที่สำคัญซึ่งช่วยเพิ่มความถูกต้องและความเกี่ยวข้องของการดึงข้อมูล คุณสามารถปรับแก้และเพิ่มข้อมูลเมตาสำหรับเอกสารนี้ได้ที่นี่',
documentInformation: 'ข้อมูลเอกสาร',
},
metadata: 'ข้อมูลเมตา',
addMetadata: 'เพิ่มข้อมูลเมตา',
chooseTime: 'เลือกเวลา...',
},
embeddingModelNotAvailable: 'โมเดลฝังตัวไม่สามารถใช้งานได้.',
updated: 'ปรับ ปรุง',
externalKnowledgeBase: 'ฐานความรู้ภายนอก',
createFromPipeline: 'สร้างจากไปป์ไลน์ความรู้',
serviceApi: {
card: {
title: 'บริการแบ็กเอนด์ API',
apiReference: 'เอกสารอ้างอิง API',
apiKey: 'กุญแจ API',
endpoint: 'จุดเชื่อมต่อ API บริการ',
},
enabled: 'ให้บริการ',
disabled: 'ถูกปิดใช้งาน',
title: 'บริการ API',
},
docAllEnabled_one: '{{count}} เอกสารถูกเปิดใช้งาน',
docAllEnabled_other: 'เอกสาร {{count}} ทั้งหมดเปิดใช้งานแล้ว',
partialEnabled_one: 'รวม {{count}} เอกสาร, {{num}} ใช้งานได้',
partialEnabled_other: 'รวม {{count}} เอกสาร, {{num}} ใช้งานได้',
}
export default translation

View File

@@ -0,0 +1,76 @@
const translation = {
toVerifiedTip: {
coupon: 'คูปองพิเศษ 100%',
end: 'สำหรับแผนมืออาชีพของ Dify.',
front: 'คุณมีสิทธิ์ได้รับสถานะการตรวจสอบการศึกษาแล้ว กรุณากรอกข้อมูลการศึกษาของคุณด้านล่างเพื่อดำเนินการให้เสร็จสิ้นและรับสิทธิ์',
},
form: {
schoolName: {
title: 'ชื่อโรงเรียนของคุณ',
placeholder: 'กรุณาใส่ชื่อของโรงเรียนอย่างเป็นทางการที่ไม่มีการย่อ',
},
schoolRole: {
option: {
student: 'นักเรียน',
teacher: 'ครู',
administrator: 'ผู้ดูแลโรงเรียน',
},
title: 'บทบาทของคุณในโรงเรียน',
},
terms: {
desc: {
front: 'ข้อมูลของคุณและการใช้สถานะการตรวจสอบการศึกษาอยู่ภายใต้เงื่อนไขของเรา',
end: '. โดยการส่ง:',
privacyPolicy: 'นโยบายความเป็นส่วนตัว',
and: 'และ',
termsOfService: 'ข้อกำหนดในการให้บริการ',
},
option: {
age: 'ฉันยืนยันว่าฉันมีอายุอย่างน้อย 18 ปี',
inSchool: 'ฉันยืนยันว่าฉันได้ลงทะเบียนหรือทำงานที่สถาบันที่ระบุไว้ Dify อาจขอหลักฐานการลงทะเบียน/การจ้างงาน หากฉันแสดงความไม่ถูกต้องเกี่ยวกับคุณสมบัติของฉัน ฉันตกลงที่จะชำระค่าธรรมเนียมใด ๆ ที่ถูกยกเว้นไปในเบื้องต้นตามสถานะการศึกษาของฉัน.',
},
title: 'ข้อกำหนดและเงื่อนไข',
},
},
toVerified: 'ตรวจสอบการศึกษา',
rejectTitle: 'การตรวจสอบการศึกษา Dify ของคุณถูกปฏิเสธ',
emailLabel: 'อีเมลปัจจุบันของคุณ',
currentSigned: 'ลงชื่อเข้าใช้ในฐานะ',
successTitle: 'คุณได้รับการรับรองการศึกษา Dify',
learn: 'เรียนรู้วิธีการตรวจสอบการศึกษา',
submitError: 'การส่งแบบฟอร์มล้มเหลว โปรดลองอีกครั้งในภายหลัง.',
submit: 'ส่ง',
successContent: 'เราได้ออกคูปองส่วนลด 100% สำหรับแผน Dify Professional ให้กับบัญชีของคุณ คูปองนี้สามารถใช้ได้เป็นระยะเวลา 1 ปี กรุณาใช้ภายในช่วงระยะเวลาที่กำหนด.',
rejectContent: 'น่าเสียดายที่คุณไม่มีสิทธิ์ได้รับสถานะการตรวจสอบการศึกษาและดังนั้นคุณจึงไม่สามารถรับคูปองพิเศษ 100% สำหรับแผนมืออาชีพ Dify หากคุณใช้ที่อยู่อีเมลนี้.',
notice: {
expired: {
summary: {
line1: 'คุณยังสามารถเข้าถึงและใช้ Dify ได้อยู่',
line2: 'อย่างไรก็ตาม คุณไม่มีสิทธิ์ในการใช้คูปองส่วนลดการศึกษาใหม่อีกต่อไป',
},
title: 'สถานภาพการศึกษาของคุณหมดอายุแล้ว',
},
isAboutToExpire: {
summary: 'ไม่ต้องกังวล — สิ่งนี้จะไม่กระทบต่อการสมัครสมาชิกปัจจุบันของคุณ แต่คุณจะไม่ได้รับส่วนลดการศึกษาขณะต่ออายุเว้นแต่คุณจะยืนยันสถานะของคุณอีกครั้ง.',
title: 'สถานะการศึกษาของคุณจะหมดอายุในวันที่ {{date}}',
},
stillInEducation: {
title: 'ยังอยู่ในวัยเรียนใช่ไหม?',
isAboutToExpire: 'ตรวจสอบอีกครั้งเดี๋ยวนี้เพื่อรับคูปองใหม่สำหรับปีการศึกษาที่จะมาถึง มันจะถูกบันทึกในบัญชีของคุณและพร้อมใช้งานในการต่ออายุครั้งถัดไปของคุณ.',
expired: 'ตรวจสอบอีกครั้งตอนนี้เพื่อรับคูปองใหม่สำหรับปีการศึกษาใหม่ เราจะเพิ่มมันเข้ากับบัญชีของคุณและคุณสามารถใช้มันสำหรับการอัปเกรดครั้งถัดไปได้',
},
alreadyGraduated: {
title: 'จบการศึกษาแล้วเหรอ?',
expired: 'สามารถอัปเกรดเมื่อใดก็ได้เพื่อเข้าถึงฟีเจอร์แบบชำระเงินอย่างเต็มที่',
isAboutToExpire: 'การสมัครสมาชิกปัจจุบันของคุณจะยังคงมีผลต่อไป เมื่อมันสิ้นสุดลง คุณจะถูกย้ายไปยังแผน Sandbox หรือคุณสามารถอัปเกรดได้ทุกเมื่อเพื่อคืนสิทธิ์การเข้าถึงฟีเจอร์แบบชำระเงินทั้งหมด.',
},
action: {
reVerify: 'ตรวจสอบอีกครั้ง',
upgrade: 'อัปเกรด',
dismiss: 'ปฏิเสธ',
},
dateFormat: 'วัน/เดือน/ปี',
},
}
export default translation

View File

@@ -0,0 +1,44 @@
const translation = {
title: 'สํารวจ',
sidebar: {
discovery: 'การค้นพบ',
chat: 'สนทนา',
workspace: 'พื้นที่',
action: {
pin: 'เข็มกลัด',
unpin: 'ปลดหมุด',
rename: 'ตั้งชื่อใหม่',
delete: 'ลบ',
},
delete: {
title: 'ลบแอป',
content: 'คุณแน่ใจหรือไม่ว่าต้องการลบแอปนี้?',
},
},
apps: {
title: 'สํารวจแอพโดย Dify',
description: 'ใช้แอปเทมเพลตเหล่านี้ทันทีหรือปรับแต่งแอปของคุณเองตามเทมเพลต',
allCategories: 'แนะ นำ',
},
appCard: {
addToWorkspace: 'เพิ่มไปยังพื้นที่ทํางาน',
customize: 'ปรับแต่ง',
},
appCustomize: {
title: 'สร้างแอปจาก {{name}}',
subTitle: 'ไอคอนและชื่อแอป',
nameRequired: 'ต้องใช้ชื่อแอป',
},
category: {
Assistant: 'ผู้ช่วย',
Writing: 'การเขียน',
Translate: 'แปล',
Programming: 'โปรแกรม',
HR: 'ชั่วโมง',
Workflow: 'เวิร์กโฟลว์',
Agent: 'ตัวแทน',
Entertainment: 'ความบันเทิง',
},
}
export default translation

View File

@@ -0,0 +1,8 @@
const translation = {
sidebar: {
collapseSidebar: 'ยุบแถบด้านข้าง',
expandSidebar: 'ขยายแถบด้านข้าง',
},
}
export default translation

View File

@@ -0,0 +1,126 @@
const translation = {
pageTitle: 'เฮ้ มาเริ่มกันเลย!',
welcome: '👋 ยินดีต้อนรับสู่ Dify โปรดเข้าสู่ระบบเพื่อดําเนินการต่อ',
email: 'ที่อยู่อีเมล',
emailPlaceholder: 'อีเมลของคุณ',
password: 'รหัสผ่าน',
passwordPlaceholder: 'รหัสผ่านของคุณ',
name: 'ชื่อผู้ใช้',
namePlaceholder: 'ชื่อผู้ใช้ของคุณ',
forget: 'ลืมรหัสผ่านใช่ไหม',
signBtn: 'เข้าสู่ระบบ',
continueWithCode: 'ดําเนินการต่อด้วยรหัส',
sendVerificationCode: 'ส่งรหัสยืนยัน',
usePassword: 'ใช้รหัสผ่าน',
useVerificationCode: 'ใช้รหัสยืนยัน',
or: 'หรือ',
installBtn: 'สถาปนา',
setAdminAccount: 'การตั้งค่าบัญชีผู้ดูแลระบบ',
setAdminAccountDesc: 'สิทธิ์สูงสุดสําหรับบัญชีผู้ดูแลระบบ ซึ่งสามารถใช้สร้างแอปพลิเคชันและจัดการผู้ให้บริการ LLM เป็นต้น',
createAndSignIn: 'สร้างและลงชื่อเข้าใช้',
oneMoreStep: 'อีกหนึ่งขั้นตอน',
createSample: 'จากข้อมูลนี้ เราจะสร้างแอปพลิเคชันตัวอย่างสําหรับคุณ',
invitationCode: 'รหัสเชิญ',
invitationCodePlaceholder: 'รหัสเชิญของคุณ',
interfaceLanguage: 'ภาษาอินเทอร์เฟซ',
timezone: 'เขตเวลา',
go: 'ไปที่ Dify',
sendUsMail: 'ส่งอีเมลถึงเรา แล้วเราจะจัดการกับคําขอเชิญ',
acceptPP: 'ฉันได้อ่านและยอมรับนโยบายความเป็นส่วนตัวแล้ว',
reset: 'โปรดเรียกใช้คําสั่งต่อไปนี้เพื่อรีเซ็ตรหัสผ่านของคุณ',
withGitHub: 'ดําเนินการต่อด้วย GitHub',
withGoogle: 'ดําเนินการต่อกับ Google',
withSSO: 'ดําเนินการต่อด้วย SSO',
rightTitle: 'ปลดล็อกศักยภาพของ LLM อย่างเต็มที่',
rightDesc: 'สร้างแอปพลิเคชัน AI ที่ดึงดูดสายตา ใช้งานได้ และปรับปรุงได้อย่างง่ายดาย',
tos: 'ข้อกําหนดในการให้บริการ',
pp: 'นโยบายความเป็นส่วนตัว',
tosDesc: 'การลงทะเบียนแสดงว่าคุณยอมรับ',
goToInit: 'หากคุณยังไม่ได้เริ่มต้นบัญชี โปรดไปที่หน้าการเริ่มต้น',
dontHave: 'ไม่มี?',
invalidInvitationCode: 'รหัสเชิญไม่ถูกต้อง',
accountAlreadyInited: 'บัญชีเริ่มต้นแล้ว',
forgotPassword: 'ลืมรหัสผ่านใช่ไหม',
resetLinkSent: 'รีเซ็ตลิงก์ที่ส่ง',
sendResetLink: 'ส่งลิงก์รีเซ็ต',
backToSignIn: 'กลับไปที่การลงชื่อเข้าใช้',
forgotPasswordDesc: 'โปรดป้อนที่อยู่อีเมลของคุณเพื่อรีเซ็ตรหัสผ่านของคุณ เราจะส่งอีเมลพร้อมคําแนะนําเกี่ยวกับวิธีการรีเซ็ตรหัสผ่านของคุณ',
checkEmailForResetLink: 'โปรดตรวจสอบอีเมลของคุณเพื่อหาลิงก์สําหรับรีเซ็ตรหัสผ่านของคุณ หากไม่ปรากฏขึ้นภายใน 2-3 นาที โปรดตรวจสอบโฟลเดอร์สแปมของคุณ',
passwordChanged: 'ลงชื่อเข้าใช้ตอนนี้',
changePassword: 'ตั้งรหัสผ่าน',
changePasswordTip: 'โปรดป้อนรหัสผ่านใหม่สําหรับบัญชีของคุณ',
changePasswordBtn: 'ตั้งรหัสผ่าน',
invalidToken: 'โทเค็นไม่ถูกต้องหรือหมดอายุ',
confirmPassword: 'ยืนยันรหัสผ่าน',
confirmPasswordPlaceholder: 'ยืนยันรหัสผ่านใหม่ของคุณ',
passwordChangedTip: 'เปลี่ยนรหัสผ่านของคุณเรียบร้อยแล้ว',
error: {
emailEmpty: 'ต้องระบุที่อยู่อีเมล',
emailInValid: 'โปรดป้อนที่อยู่อีเมลที่ถูกต้อง',
nameEmpty: 'ต้องระบุชื่อ',
passwordEmpty: 'ต้องใช้รหัสผ่าน',
passwordLengthInValid: 'รหัสผ่านต้องมีอย่างน้อย 8 อักขระ',
passwordInvalid: 'รหัสผ่านต้องมีตัวอักษรและตัวเลข และความยาวต้องมากกว่า 8',
registrationNotAllowed: 'ไม่พบบัญชี โปรดติดต่อผู้ดูแลระบบเพื่อลงทะเบียน',
invalidEmailOrPassword: 'อีเมลหรือรหัสผ่านไม่ถูกต้อง.',
},
license: {
tip: 'ก่อนเริ่ม Dify Community Edition โปรดอ่าน GitHub',
link: 'ใบอนุญาตโอเพ่นซอร์ส',
},
join: 'ต่อ',
joinTipStart: 'เชิญคุณเข้าร่วม',
joinTipEnd: 'ทีมงานใน Dify',
invalid: 'ลิงก์หมดอายุ',
explore: 'สํารวจ Dify',
activatedTipStart: 'คุณได้เข้าร่วม',
activatedTipEnd: 'ทีม',
activated: 'ลงชื่อเข้าใช้ตอนนี้',
adminInitPassword: 'รหัสผ่านเริ่มต้นผู้ดูแลระบบ',
validate: 'ตรวจ สอบ',
checkCode: {
checkYourEmail: 'ตรวจสอบอีเมลของคุณ',
validTime: 'โปรดทราบว่ารหัสนี้ใช้ได้นาน 5 นาที',
verificationCode: 'รหัสยืนยัน',
verificationCodePlaceholder: 'ป้อนรหัส 6 หลัก',
verify: 'ตรวจสอบ',
didNotReceiveCode: 'ไม่ได้รับรหัสใช่ไหม',
resend: 'ส่ง',
useAnotherMethod: 'ใช้วิธีอื่น',
emptyCode: 'ต้องใช้รหัส',
invalidCode: 'รหัสไม่ถูกต้อง',
tipsPrefix: 'เราส่งรหัสตรวจสอบไปยัง',
},
resetPassword: 'รีเซ็ตรหัสผ่าน',
resetPasswordDesc: 'พิมพ์อีเมลที่คุณใช้ลงทะเบียนบน Dify แล้วเราจะส่งอีเมลรีเซ็ตรหัสผ่านให้คุณ',
backToLogin: 'กลับไปที่เข้าสู่ระบบ',
setYourAccount: 'ตั้งค่าบัญชีของคุณ',
enterYourName: 'โปรดป้อนชื่อผู้ใช้ของคุณ',
back: 'ย้อนกลับ',
noLoginMethod: 'ไม่ได้กําหนดค่าวิธีการตรวจสอบสิทธิ์',
noLoginMethodTip: 'โปรดติดต่อผู้ดูแลระบบเพื่อเพิ่มวิธีการรับรองความถูกต้อง',
licenseExpired: 'ใบอนุญาตหมดอายุ',
licenseExpiredTip: 'สิทธิ์การใช้งาน Dify Enterprise สําหรับพื้นที่ทํางานของคุณหมดอายุแล้ว โปรดติดต่อผู้ดูแลระบบของคุณเพื่อใช้ Dify ต่อไป',
licenseLost: 'ใบอนุญาตสูญหาย',
licenseLostTip: 'เชื่อมต่อเซิร์ฟเวอร์ใบอนุญาต Dify ไม่สําเร็จ โปรดติดต่อผู้ดูแลระบบของคุณเพื่อใช้ Dify ต่อไป',
licenseInactive: 'ใบอนุญาตไม่ใช้งาน',
licenseInactiveTip: 'สิทธิ์การใช้งาน Dify Enterprise สําหรับพื้นที่ทํางานของคุณไม่ได้ใช้งาน โปรดติดต่อผู้ดูแลระบบของคุณเพื่อใช้ Dify ต่อไป',
webapp: {
noLoginMethodTip: 'กรุณาติดต่อผู้ดูแลระบบเพื่อเพิ่มวิธีการตรวจสอบสิทธิ์.',
noLoginMethod: 'ไม่ได้กำหนดวิธีการตรวจสอบสิทธิ์สำหรับเว็บแอป',
disabled: 'การรับรองความถูกต้องของเว็บแอปถูกปิดใช้งาน โปรดติดต่อผู้ดูแลระบบเพื่อเปิดใช้งาน คุณสามารถลองใช้แอปโดยตรงได้',
login: 'เข้าสู่ระบบ',
},
signup: {
signIn: 'เข้าสู่ระบบ',
signUp: 'สมัครสมาชิก',
createAccount: 'สร้างบัญชีของคุณ',
noAccount: 'ยังไม่มีบัญชีใช่ไหม?',
welcome: '👋 ยินดีต้อนรับ! โปรดกรอกข้อมูลเพื่อเริ่มต้น.',
verifyMail: 'โปรดดำเนินการต่อด้วยรหัสการตรวจสอบ',
haveAccount: 'มีบัญชีอยู่แล้วใช่ไหม?',
},
pageTitleForE: 'เฮ้ เรามาเริ่มกันเถอะ!',
}
export default translation

View File

@@ -0,0 +1,27 @@
const translation = {
tips: {
needLogin: 'โปรดเข้าสู่ระบบเพื่ออนุญาต',
notLoggedIn: 'แอปพลิเคชันนี้ต้องการเข้าถึงบัญชี Dify Cloud ของคุณ',
loggedIn: 'แอปพลิเคชันนี้ต้องการเข้าถึงข้อมูลต่อไปนี้จากบัญชี Dify Cloud ของคุณ.',
common: 'เรามีความเคารพต่อความเป็นส่วนตัวของคุณและจะใช้ข้อมูลนี้เพื่อปรับปรุงประสบการณ์ของคุณกับเครื่องมือนักพัฒนาของเราเท่านั้น.',
},
scopes: {
email: 'อีเมล',
languagePreference: 'ความชอบภาษา',
timezone: 'เขตเวลา',
name: 'ชื่อ',
avatar: 'อวตาร',
},
error: {
authorizeFailed: 'การอนุญาตล้มเหลว',
authAppInfoFetchFailed: 'ไม่สามารถดึงข้อมูลแอปเพื่อการอนุญาตได้',
invalidParams: 'พารามิเตอร์ไม่ถูกต้อง',
},
login: 'เข้าสู่ระบบ',
continue: 'ดำเนินต่อไป',
connect: 'เชื่อมต่อกับ',
unknownApp: 'แอปพลิเคชันที่ไม่รู้จัก',
switchAccount: 'เปลี่ยนบัญชี',
}
export default translation

View File

@@ -0,0 +1,40 @@
const translation = {
common: {
publishAsPipeline: {
description: 'คําอธิบายความรู้',
name: 'ชื่อและไอคอนไปป์ไลน์',
namePlaceholder: 'โปรดป้อนชื่อของไปป์ไลน์ความรู้นี้ (จําเป็น)',
descriptionPlaceholder: 'โปรดป้อนคําอธิบายของไปป์ไลน์ความรู้นี้ (ไม่บังคับ)',
},
reRun: 'เรียกใช้ซ้ํา',
confirmPublish: 'ยืนยันการเผยแพร่',
goToAddDocuments: 'ไปที่เพิ่มเอกสาร',
processing: 'ประมวล ผล',
testRun: 'ทดสอบการทํางาน',
preparingDataSource: 'การเตรียมแหล่งข้อมูล',
publishAs: 'เผยแพร่เป็นไปป์ไลน์ความรู้',
confirmPublishContent: 'หลังจากเผยแพร่ไปป์ไลน์ความรู้สําเร็จแล้ว จะไม่สามารถแก้ไขโครงสร้างกลุ่มของฐานความรู้นี้ได้ คุณแน่ใจหรือไม่ว่าต้องการเผยแพร่?',
},
inputField: {
manage: 'จัดการ',
create: 'สร้างฟิลด์ป้อนข้อมูลของผู้ใช้',
},
publishToast: {
title: 'ไปป์ไลน์นี้ยังไม่ได้รับการเผยแพร่',
desc: 'เมื่อไม่ได้เผยแพร่ไปป์ไลน์ คุณสามารถปรับเปลี่ยนโครงสร้างก้อนในโหนดฐานความรู้ และการประสานไปป์ไลน์และการเปลี่ยนแปลงจะถูกบันทึกเป็นแบบร่างโดยอัตโนมัติ',
},
result: {
resultPreview: {
viewDetails: 'ดูรายละเอียด',
error: 'เกิดข้อผิดพลาดระหว่างการดําเนินการ',
loading: 'กำลังประมวลผล...กรุณารอ',
footerTip: 'ในโหมดทดสอบ ลองดูตัวอย่างได้สูงสุด {{count}} ชิ้น',
},
},
ragToolSuggestions: {
title: 'คําแนะนําสําหรับ RAG',
noRecommendationPlugins: 'ไม่มีปลั๊กอินที่แนะนำ ค้นหาเพิ่มเติมได้ใน <CustomLink>ตลาด</CustomLink>',
},
}
export default translation

View File

@@ -0,0 +1,26 @@
const translation = {
tags: {
weather: 'อากาศ',
finance: 'การเงิน',
social: 'สังคม',
entertainment: 'มหรสพ',
education: 'การศึกษา',
news: 'ข่าว',
design: 'ออกแบบ',
agent: 'ตัวแทน',
videos: 'วิดีโอ',
utilities: 'สาธารณูปโภค',
search: 'ค้น',
business: 'ธุรกิจ',
productivity: 'ผลิตภาพ',
travel: 'เดินทาง',
medical: 'ทางการแพทย์',
image: 'ภาพ',
other: 'อื่นๆ',
rag: 'ผ้าขี้ริ้ว',
},
searchTags: 'แท็กค้นหา',
allTags: 'แท็กทั้งหมด',
}
export default translation

View File

@@ -0,0 +1,186 @@
const translation = {
subscription: {
title: 'การสมัครสมาชิก',
listNum: 'การสมัครสมาชิก {{num}}',
empty: {
title: 'ไม่มีการสมัครสมาชิก',
button: 'สมัครสมาชิกใหม่',
},
createButton: {
oauth: 'การสมัครสมาชิกใหม่ด้วย OAuth',
apiKey: 'การสมัครสมาชิกใหม่ด้วยคีย์ API',
manual: 'วาง URL เพื่อสร้างการสมัครสมาชิกใหม่',
},
createSuccess: 'การสมัครสมาชิกสร้างเรียบร้อยแล้ว',
createFailed: 'ไม่สามารถสร้างการสมัครสมาชิกได้',
maxCount: 'สมาชิกสูงสุด {{num}}',
selectPlaceholder: 'เลือกการสมัครสมาชิก',
noSubscriptionSelected: 'ยังไม่ได้เลือกการสมัครสมาชิก',
subscriptionRemoved: 'ยกเลิกการสมัครแล้ว',
list: {
title: 'การสมัครสมาชิก',
addButton: 'เพิ่ม',
tip: 'รับเหตุการณ์ผ่านการสมัครสมาชิก',
item: {
enabled: 'เปิดใช้งาน',
disabled: 'ปิดการใช้งาน',
credentialType: {
api_key: 'คีย์ API',
oauth2: 'OAuth',
unauthorized: 'คู่มือ',
},
actions: {
delete: 'ลบ',
deleteConfirm: {
title: 'ลบ {{name}} หรือไม่?',
success: 'การสมัครสมาชิก {{name}} ถูกลบเรียบร้อยแล้ว',
error: 'ลบการสมัครสมาชิก {{name}} ไม่สำเร็จ',
content: 'เมื่อถูกลบแล้ว การสมัครสมาชิกนี้ไม่สามารถกู้คืนได้ กรุณายืนยัน',
contentWithApps: 'การสมัครสมาชิกปัจจุบันถูกอ้างอิงโดยแอปพลิเคชัน {{count}} การลบการสมัครสมาชิกนี้จะทำให้แอปพลิเคชันที่ถูกกำหนดค่าไม่สามารถรับเหตุการณ์การสมัครสมาชิกได้',
confirm: 'ยืนยันการลบ',
cancel: 'ยกเลิก',
confirmInputWarning: 'กรุณาใส่ชื่อที่ถูกต้องเพื่อยืนยัน',
confirmInputPlaceholder: 'ใส่ "{{name}}" เพื่อยืนยัน',
confirmInputTip: 'โปรดใส่ “{{name}}” เพื่อยืนยัน',
},
},
status: {
active: 'ใช้งานอยู่',
inactive: 'ไม่ทำงาน',
},
usedByNum: 'ใช้โดยเวิร์กโฟลว์ {{num}}',
noUsed: 'ไม่ได้ใช้เวิร์กโฟลว์',
},
},
addType: {
title: 'เพิ่มการสมัครสมาชิก',
description: 'เลือกวิธีที่คุณต้องการสร้างการสมัครรับข้อมูลทริกเกอร์ของคุณ',
options: {
apikey: {
title: 'สร้างด้วยคีย์ API',
description: 'สร้างการสมัครสมาชิกโดยอัตโนมัติโดยใช้ข้อมูลรับรอง API',
},
oauth: {
title: 'สร้างด้วย OAuth',
description: 'อนุญาตการใช้งานกับแพลตฟอร์มภายนอกเพื่อสร้างการสมัครสมาชิก',
clientSettings: 'การตั้งค่าไคลเอนต์ OAuth',
clientTitle: 'ไคลเอนต์ OAuth',
default: 'ค่าเริ่มต้น',
custom: 'กำหนดเอง',
},
manual: {
title: 'การตั้งค่าแบบแมนนวล',
description: 'วาง URL เพื่อสร้างการสมัครสมาชิกใหม่',
tip: 'กำหนดค่า URL บนแพลตฟอร์มของบุคคลที่สามด้วยตนเอง',
},
},
},
},
modal: {
steps: {
verify: 'ยืนยัน',
configuration: 'การกำหนดค่า',
},
common: {
cancel: 'ยกเลิก',
back: 'กลับ',
next: 'ถัดไป',
create: 'สร้าง',
verify: 'ยืนยัน',
authorize: 'อนุญาต',
creating: 'กำลังสร้าง...',
verifying: 'กำลังตรวจสอบ...',
authorizing: 'กำลังอนุมัติ...',
},
oauthRedirectInfo: 'เนื่องจากไม่พบรหัสลับของระบบลูกค้าสำหรับผู้ให้บริการเครื่องมือนี้ จำเป็นต้องตั้งค่าเอง สำหรับ redirect_uri กรุณาใช้',
apiKey: {
title: 'สร้างด้วยคีย์ API',
verify: {
title: 'ตรวจสอบข้อมูลรับรอง',
description: 'กรุณาให้ข้อมูลรับรอง API ของคุณเพื่อยืนยันการเข้าถึง',
error: 'การตรวจสอบข้อมูลรับรองล้มเหลว โปรดตรวจสอบคีย์ API ของคุณ',
success: 'การยืนยันข้อมูลประจำตัวสำเร็จ',
},
configuration: {
title: 'ตั้งค่าการสมัครสมาชิก',
description: 'ตั้งค่าพารามิเตอร์การสมัครของคุณ',
},
},
oauth: {
title: 'สร้างด้วย OAuth',
authorization: {
title: 'การอนุญาต OAuth',
description: 'อนุญาตให้ Dify เข้าถึงบัญชีของคุณ',
redirectUrl: 'เปลี่ยนเส้นทาง URL',
redirectUrlHelp: 'ใช้ URL นี้ในการตั้งค่าแอป OAuth ของคุณ',
authorizeButton: 'อนุญาตด้วย {{provider}}',
waitingAuth: 'กำลังรอการอนุญาต...',
authSuccess: 'การอนุญาตสำเร็จ',
authFailed: 'ไม่สามารถดึงข้อมูลการอนุญาต OAuth ได้',
waitingJump: 'ได้รับอนุญาต กำลังรอการบินขึ้น',
},
configuration: {
title: 'ตั้งค่าการสมัครสมาชิก',
description: 'ตั้งค่าพารามิเตอร์การสมัครของคุณหลังจากได้รับอนุญาต',
success: 'การตั้งค่า OAuth สำเร็จ',
failed: 'การตั้งค่า OAuth ล้มเหลว',
},
remove: {
success: 'การลบ OAuth สำเร็จ',
failed: 'การลบ OAuth ล้มเหลว',
},
save: {
success: 'บันทึกการตั้งค่า OAuth สำเร็จแล้ว',
},
},
manual: {
title: 'การตั้งค่าด้วยตนเอง',
description: 'ตั้งค่าการสมัครสมาชิกเว็บฮุคของคุณด้วยตนเอง',
logs: {
title: 'บันทึกคำขอ',
request: 'คำขอ',
loading: 'กำลังรอคำขอจาก {{pluginName}} ...',
},
},
form: {
subscriptionName: {
label: 'ชื่อการสมัครสมาชิก',
placeholder: 'ใส่ชื่อการสมัครสมาชิก',
required: 'จำเป็นต้องระบุชื่อการสมัครสมาชิก',
},
callbackUrl: {
label: 'URL สำหรับเรียกกลับ',
description: 'URL นี้จะได้รับเหตุการณ์เว็บฮุค',
tooltip: 'จัดเตรียมจุดปลายทางที่สามารถเข้าถึงได้สาธารณะเพื่อรับคำขอกลับเรียกจากผู้ให้บริการทริกเกอร์',
placeholder: 'กำลังสร้าง...',
privateAddressWarning: 'URL นี้ดูเหมือนจะเป็นที่อยู่ภายใน ซึ่งอาจทำให้การร้องขอ webhook ล้มเหลว คุณสามารถเปลี่ยน TRIGGER_URL เป็นที่อยู่สาธารณะได้',
},
},
errors: {
createFailed: 'ไม่สามารถสร้างการสมัครสมาชิกได้',
verifyFailed: 'ไม่สามารถตรวจสอบข้อมูลประจำตัวได้',
authFailed: 'การอนุญาตล้มเหลว',
networkError: 'เกิดข้อผิดพลาดของเครือข่าย กรุณาลองใหม่',
},
},
events: {
title: 'กิจกรรมที่มีอยู่',
description: 'เหตุการณ์ที่ปลั๊กอินทริกเกอร์นี้สามารถสมัครรับได้',
empty: 'ไม่มีเหตุการณ์ใดๆ',
event: 'งานกิจกรรม',
events: 'เหตุการณ์',
actionNum: '{{num}} {{event}} รวมอยู่ด้วย',
item: {
parameters: 'พารามิเตอร์ {{count}}',
noParameters: 'ไม่มีพารามิเตอร์',
},
output: 'ผลลัพธ์',
},
node: {
status: {
warning: 'ตัดการเชื่อมต่อ',
},
},
}
export default translation

View File

@@ -0,0 +1,320 @@
const translation = {
category: {
extensions: 'นาม สกุล',
models: 'รุ่น',
tools: 'เครื่อง มือ',
agents: 'กลยุทธ์ตัวแทน',
all: 'ทั้งหมด',
bundles: 'ชุดรวม',
datasources: 'แหล่งข้อมูล',
triggers: 'สิ่งกระตุ้น',
},
categorySingle: {
tool: 'เครื่องมือ',
extension: 'การเพิ่ม',
agent: 'กลยุทธ์ตัวแทน',
model: 'แบบ',
bundle: 'มัด',
datasource: 'แหล่งข้อมูล',
trigger: 'ทริกเกอร์',
},
list: {
source: {
github: 'ติดตั้งจาก GitHub',
local: 'ติดตั้งจากไฟล์แพ็คเกจในเครื่อง',
marketplace: 'ติดตั้งจาก Marketplace',
},
noInstalled: 'ไม่ได้ติดตั้งปลั๊กอิน',
notFound: 'ไม่พบปลั๊กอิน',
},
source: {
local: 'ไฟล์แพ็คเกจในเครื่อง',
github: 'เกวบ',
marketplace: 'ตลาด',
},
detailPanel: {
categoryTip: {
debugging: 'ปลั๊กอินการดีบัก',
local: 'ปลั๊กอินท้องถิ่น',
marketplace: 'ติดตั้งจาก Marketplace',
github: 'ติดตั้งจาก Github',
},
operation: {
info: 'ข้อมูลปลั๊กอิน',
detail: 'ราย ละเอียด',
install: 'ติดตั้ง',
update: 'อัพเดต',
viewDetail: 'ดูรายละเอียด',
checkUpdate: 'ตรวจสอบการอัปเดต',
remove: 'ถอด',
back: 'กลับ',
},
toolSelector: {
settings: 'การตั้งค่าผู้ใช้',
placeholder: 'เลือกเครื่องมือ...',
params: 'การกําหนดค่าเหตุผล',
paramsTip2: 'เมื่อปิด \'อัตโนมัติ\' จะใช้ค่าเริ่มต้น',
toolLabel: 'เครื่องมือ',
paramsTip1: 'ควบคุมพารามิเตอร์การอนุมาน LLM',
uninstalledLink: 'จัดการในปลั๊กอิน',
unsupportedContent: 'เวอร์ชันปลั๊กอินที่ติดตั้งไม่มีการดําเนินการนี้',
title: 'เพิ่มเครื่องมือ',
unsupportedContent2: 'คลิกเพื่อเปลี่ยนเวอร์ชัน',
empty: 'คลิกปุ่ม \'+\' เพื่อเพิ่มเครื่องมือ คุณสามารถเพิ่มเครื่องมือได้หลายอย่าง',
descriptionLabel: 'คําอธิบายเครื่องมือ',
auto: 'อัตโนมัติ',
unsupportedTitle: 'การดําเนินการที่ไม่รองรับ',
uninstalledTitle: 'ไม่ได้ติดตั้งเครื่องมือ',
descriptionPlaceholder: 'คําอธิบายสั้น ๆ เกี่ยวกับวัตถุประสงค์ของเครื่องมือ เช่น รับอุณหภูมิสําหรับตําแหน่งเฉพาะ',
uninstalledContent: 'ปลั๊กอินนี้ติดตั้งจากที่เก็บในเครื่อง/GitHub กรุณาใช้หลังการติดตั้ง',
toolSetting: 'การตั้งค่าเครื่องมือ',
unsupportedMCPTool: 'รุ่นปลั๊กอินกลยุทธ์ตัวแทนที่เลือกในขณะนี้ไม่สนับสนุนเครื่องมือ MCP.',
},
endpointDisableContent: 'คุณต้องการปิดการใช้งาน {{name}} หรือไม่?',
configureApp: 'กําหนดค่าแอป',
configureTool: 'กําหนดค่าเครื่องมือ',
switchVersion: 'สลับเวอร์ชัน',
endpointModalTitle: 'ปลายทางการตั้งค่า',
actionNum: '{{num}} {{การกระทํา}} รวม',
strategyNum: '{{num}} {{กลยุทธ์}} รวม',
endpointsDocLink: 'ดูเอกสาร',
configureModel: 'กําหนดค่าแบบจําลอง',
endpointModalDesc: 'เมื่อกําหนดค่าแล้ว สามารถใช้คุณสมบัติที่ปลั๊กอินให้ผ่านปลายทาง API ได้',
modelNum: '{{num}} รุ่นรวม',
endpointDisableTip: 'ปิดใช้งานปลายทาง',
endpointDeleteTip: 'ลบปลายทาง',
disabled: 'พิการ',
endpointDeleteContent: 'คุณต้องการลบ {{name}} หรือไม่?',
endpoints: 'ปลาย ทาง',
endpointsTip: 'ปลั๊กอินนี้มีฟังก์ชันเฉพาะผ่านปลายทาง และคุณสามารถกําหนดค่าชุดปลายทางหลายชุดสําหรับพื้นที่ทํางานปัจจุบันได้',
endpointsEmpty: 'คลิกปุ่ม \'+\' เพื่อเพิ่มปลายทาง',
serviceOk: 'บริการตกลง',
deprecation: {
reason: {
ownershipTransferred: 'การโอนความเป็นเจ้าของ',
businessAdjustments: 'การปรับเปลี่ยนธุรกิจ',
noMaintainer: 'ไม่มีผู้ดูแล',
},
onlyReason: 'ปลั๊กอินนี้ถูกเลิกใช้เนื่องจาก {{deprecatedReason}} และจะไม่มีการอัปเดตอีกต่อไป.',
noReason: 'ปลั๊กอินนี้ได้ถูกยกเลิกใช้งานและจะไม่มีการอัปเดตอีกต่อไป.',
fullMessage: 'ปลั๊กอินนี้ถูกยกเลิกการใช้งานเนื่องจาก {{เหตุผลที่ถูกยกเลิก}} และจะไม่มีการอัปเดตอีกต่อไป กรุณาใช้ <CustomLink href=\'https://example.com/\'>{{-alternativePluginId}}</CustomLink> แทน.',
},
},
debugInfo: {
viewDocs: 'ดูเอกสาร',
title: 'การแก้จุดบกพร่อง',
},
privilege: {
everyone: 'ทุกคน',
whoCanInstall: 'ใครสามารถติดตั้งและจัดการปลั๊กอินได้บ้าง',
noone: 'ไม่มีใคร',
whoCanDebug: 'ใครสามารถดีบักปลั๊กอินได้บ้าง',
title: 'การตั้งค่าปลั๊กอิน',
admins: 'ผู้ดูแลระบบ',
},
pluginInfoModal: {
packageName: 'ห่อ',
title: 'ข้อมูลปลั๊กอิน',
release: 'ปล่อย',
repository: 'เก็บ',
},
action: {
pluginInfo: 'ข้อมูลปลั๊กอิน',
deleteContentLeft: 'คุณต้องการลบ',
deleteContentRight: 'ปลั๊กอิน?',
usedInApps: 'ปลั๊กอินนี้ถูกใช้ในแอป {{num}}',
delete: 'ลบปลั๊กอิน',
checkForUpdates: 'ตรวจสอบการอัปเดต',
},
installModal: {
labels: {
version: 'เวอร์ชัน',
package: 'ห่อ',
repository: 'เก็บ',
},
pluginLoadErrorDesc: 'ปลั๊กอินนี้จะไม่ถูกติดตั้ง',
readyToInstall: 'เกี่ยวกับการติดตั้งปลั๊กอินต่อไปนี้',
uploadFailed: 'อัปโหลดล้มเหลว',
installFailed: 'การติดตั้งล้มเหลว',
installedSuccessfullyDesc: 'ติดตั้งปลั๊กอินสําเร็จแล้ว',
readyToInstallPackage: 'เกี่ยวกับการติดตั้งปลั๊กอินต่อไปนี้',
dropPluginToInstall: 'วางแพ็คเกจปลั๊กอินที่นี่เพื่อติดตั้ง',
install: 'ติดตั้ง',
back: 'ย้อนกลับ',
cancel: 'ยกเลิก',
installPlugin: 'ติดตั้งปลั๊กอิน',
readyToInstallPackages: 'เกี่ยวกับการติดตั้งปลั๊กอิน {{num}} ต่อไปนี้',
uploadingPackage: 'กําลังอัปโหลด {{packageName}}...',
installFailedDesc: 'ติดตั้งปลั๊กอินล้มเหลว',
next: 'ต่อไป',
fromTrustSource: 'โปรดตรวจสอบให้แน่ใจว่าคุณติดตั้งปลั๊กอินจาก<trustSource>แหล่งที่เชื่อถือได้</trustSource>เท่านั้น',
installing: 'ติด ตั้ง ',
close: 'ปิด',
installedSuccessfully: 'การติดตั้งสําเร็จ',
installComplete: 'การติดตั้งเสร็จสมบูรณ์',
pluginLoadError: 'ข้อผิดพลาดในการโหลดปลั๊กอิน',
installWarning: 'ไม่อนุญาตให้ติดตั้งปลั๊กอินนี้',
},
installFromGitHub: {
updatePlugin: 'อัปเดตปลั๊กอินจาก GitHub',
gitHubRepo: 'ที่เก็บ GitHub',
installNote: 'โปรดตรวจสอบให้แน่ใจว่าคุณติดตั้งปลั๊กอินจากแหล่งที่เชื่อถือได้เท่านั้น',
installedSuccessfully: 'การติดตั้งสําเร็จ',
uploadFailed: 'อัปโหลดล้มเหลว',
selectVersionPlaceholder: 'โปรดเลือกเวอร์ชัน',
selectPackagePlaceholder: 'โปรดเลือกแพ็กเกจ',
installFailed: 'การติดตั้งล้มเหลว',
selectVersion: 'เลือกรุ่น',
installPlugin: 'ติดตั้งปลั๊กอินจาก GitHub',
selectPackage: 'เลือกแพ็กเกจ',
},
upgrade: {
description: 'เกี่ยวกับการติดตั้งปลั๊กอินต่อไปนี้',
title: 'ติดตั้งปลั๊กอิน',
upgrading: 'ติด ตั้ง ',
successfulTitle: 'ติดตั้งสําเร็จ',
upgrade: 'ติดตั้ง',
usedInApps: 'ใช้ในแอป {{num}}',
close: 'ปิด',
},
error: {
noReleasesFound: 'ไม่พบข่าวประชาสัมพันธ์ โปรดตรวจสอบที่เก็บ GitHub หรือ URL ที่ป้อนข้อมูล',
inValidGitHubUrl: 'URL GitHub ไม่ถูกต้อง โปรดป้อน URL ที่ถูกต้องในรูปแบบ: https://github.com/owner/repo',
fetchReleasesError: 'ไม่สามารถดึงข้อมูลการเผยแพร่ได้ โปรดลองอีกครั้งในภายหลัง',
},
marketplace: {
sortOption: {
newlyReleased: 'เปิดตัวใหม่',
mostPopular: 'แห่ง',
recentlyUpdated: 'อัพเดทล่าสุด',
firstReleased: 'เปิดตัวครั้งแรก',
},
viewMore: 'ดูเพิ่มเติม',
moreFrom: 'แอปเพิ่มเติมจาก Marketplace',
pluginsResult: '{{num}} ผลลัพธ์',
and: 'และ',
sortBy: 'เมืองสีดํา',
discover: 'ค้นพบ',
noPluginFound: 'ไม่พบปลั๊กอิน',
empower: 'เพิ่มศักยภาพในการพัฒนา AI ของคุณ',
difyMarketplace: 'ตลาด Dify',
partnerTip: 'ได้รับการตรวจสอบโดยพันธมิตรของ Dify',
verifiedTip: 'ได้รับการตรวจสอบโดย Dify',
},
task: {
installing: 'การติดตั้งปลั๊กอิน {{installingLength}} 0 เสร็จแล้ว',
installingWithError: 'การติดตั้งปลั๊กอิน {{installingLength}}, {{successLength}} สําเร็จ, {{errorLength}} ล้มเหลว',
installingWithSuccess: 'การติดตั้งปลั๊กอิน {{installingLength}}, {{successLength}} สําเร็จ',
installedError: '{{errorLength}} ปลั๊กอินติดตั้งไม่สําเร็จ',
clearAll: 'ล้างทั้งหมด',
installError: '{{errorLength}} ปลั๊กอินติดตั้งไม่สําเร็จ คลิกเพื่อดู',
},
searchCategories: 'หมวดหมู่การค้นหา',
searchInMarketplace: 'ค้นหาใน Marketplace',
findMoreInMarketplace: 'ค้นหาเพิ่มเติมใน Marketplace',
installPlugin: 'ติดตั้งปลั๊กอิน',
search: 'ค้น',
from: 'จาก',
install: '{{num}} การติดตั้ง',
endpointsEnabled: '{{num}} ชุดของปลายทางที่เปิดใช้งาน',
searchPlugins: 'ค้นหาปลั๊กอิน',
installAction: 'ติดตั้ง',
searchTools: 'เครื่องมือค้นหา...',
installFrom: 'ติดตั้งจาก',
fromMarketplace: 'จาก Marketplace',
allCategories: 'หมวดหมู่ทั้งหมด',
metadata: {
title: 'ปลั๊กอิน',
},
difyVersionNotCompatible: 'เวอร์ชั่นปัจจุบันของ Dify ไม่สามารถใช้งานร่วมกับปลั๊กอินนี้ได้ กรุณาอัปเกรดไปยังเวอร์ชั่นขั้นต่ำที่ต้องการ: {{minimalDifyVersion}}',
requestAPlugin: 'ขอปลั๊กอิน',
publishPlugins: 'เผยแพร่ปลั๊กอิน',
auth: {
saveOnly: 'บันทึกเฉพาะ',
oauthClientSettings: 'การตั้งค่าไคลเอนต์ OAuth',
addApi: 'เพิ่มคีย์ API',
setDefault: 'ตั้งเป็นค่าเริ่มต้น',
addOAuth: 'เพิ่ม OAuth',
authRemoved: 'ผู้แต่งถูกลบออก',
default: 'ค่าเริ่มต้น',
setupOAuth: 'ตั้งค่า OAuth Client',
useOAuthAuth: 'ใช้การอนุญาต OAuth',
workspaceDefault: 'พื้นที่ทำงานเริ่มต้น',
authorization: 'การอนุญาต',
saveAndAuth: 'บันทึกและอนุญาต',
useApi: 'ใช้รหัส API',
authorizations: 'การอนุญาต',
oauthClient: 'ไคลเอนต์ OAuth',
authorizationName: 'ชื่อผู้มีอำนาจ',
useApiAuth: 'การกำหนดค่าการอนุญาตคีย์ API',
useOAuth: 'ใช้ OAuth',
custom: 'ที่กำหนดเอง',
useApiAuthDesc: 'หลังจากตั้งค่าข้อมูลประจำตัวแล้ว สมาชิกทุกคนภายในพื้นที่ทำงานสามารถใช้เครื่องมือนี้เมื่อจัดการแอปพลิเคชันได้',
clientInfo: 'เนื่องจากไม่พบความลับของลูกค้าสำหรับผู้ให้บริการเครื่องมือนี้ จำเป็นต้องตั้งค่าแบบแมนนวล สำหรับ redirect_uri กรุณาใช้',
unavailable: 'ไม่มีให้บริการ',
customCredentialUnavailable: 'ข้อมูลรับรองที่กำหนดเองขณะนี้ไม่สามารถใช้ได้',
credentialUnavailable: 'ข้อมูลรับรองไม่สามารถใช้งานได้ในขณะนี้ กรุณาติดต่อผู้ดูแลระบบ.',
credentialUnavailableInButton: 'ข้อมูลรับรองไม่พร้อมใช้งาน',
connectedWorkspace: 'พื้นที่ทํางานที่เชื่อมต่อ',
emptyAuth: 'โปรดกําหนดค่าการรับรองความถูกต้อง',
},
deprecated: 'เลิกใช้',
autoUpdate: {
strategy: {
disabled: {
name: 'ผู้พิการ',
description: 'ปลั๊กอินจะไม่อัปเดตอัตโนมัติ',
},
fixOnly: {
name: 'ซ่อมเฉพาะ',
selectedDescription: 'อัปเดตอัตโนมัติเฉพาะเวอร์ชันแพตช์เท่านั้น',
description: 'การอัปเดตอัตโนมัติสำหรับเฉพาะเวอร์ชันแพทช์ (เช่น 1.0.1 → 1.0.2) การเปลี่ยนแปลงเวอร์ชันย่อยจะไม่ทำให้เกิดการอัปเดต',
},
latest: {
name: 'ล่าสุด',
selectedDescription: 'อัปเดตเป็นเวอร์ชันล่าสุดเสมอ',
description: 'อัปเดตเป็นเวอร์ชันล่าสุดเสมอ',
},
},
upgradeMode: {
partial: 'เฉพาะที่เลือกไว้',
exclude: 'ยกเว้นที่เลือกไว้',
all: 'อัปเดตทั้งหมด',
},
upgradeModePlaceholder: {
exclude: 'ปลั๊กอินที่เลือกจะไม่อัปเดตอัตโนมัติ',
partial: 'เฉพาะปลั๊กอินที่เลือกจะอัปเดตโดยอัตโนมัติ ขณะนี้ไม่มีปลั๊กอินใดที่ถูกเลือก ดังนั้นจะไม่มีปลั๊กอินใดที่อัปเดตโดยอัตโนมัติ',
},
operation: {
clearAll: 'ล้างทั้งหมด',
select: 'เลือกปลั๊กอิน',
},
pluginDowngradeWarning: {
title: 'การลดเวอร์ชันปลั๊กอิน',
downgrade: 'ลดระดับอยู่ดี',
exclude: 'ไม่รวมในการอัปเดตอัตโนมัติ',
description: 'ฟีเจอร์การอัปเดตอัตโนมัติเปิดใช้งานอยู่สำหรับปลั๊กอินนี้ การลดระดับเวอร์ชันอาจทำให้การเปลี่ยนแปลงของคุณหายไปในระหว่างการอัปเดตอัตโนมัติต่อไป',
},
noPluginPlaceholder: {
noInstalled: 'ไม่มีปลั๊กอินติดตั้ง',
noFound: 'ไม่พบปลั๊กอิน',
},
specifyPluginsToUpdate: 'ระบุปลั๊กอินที่จะแ atualizar',
updateTime: 'เวลาที่อัปเดต',
updateTimeTitle: 'เวลาที่อัปเดต',
updateSettings: 'อัปเดตการตั้งค่า',
nextUpdateTime: 'การอัปเดตอัตโนมัติครั้งถัดไป: {{time}}',
automaticUpdates: 'การอัปเดตอัตโนมัติ',
excludeUpdate: 'ปลั๊กอิน {{num}} ต่อไปนี้จะไม่อัพเดตอัตโนมัติ',
partialUPdate: 'ปลั๊กอิน {{num}} ตัวต่อไปนี้จะอัปเดตให้อัตโนมัติเท่านั้น',
changeTimezone: 'ในการเปลี่ยนเขตเวลา ให้ไปที่ <setTimezone>การตั้งค่า</setTimezone>',
},
readmeInfo: {
title: 'อ่านฉัน',
needHelpCheckReadme: 'ต้องการความช่วยเหลือ? ตรวจสอบไฟล์ README',
noReadmeAvailable: 'ไม่มีไฟล์ README',
failedToFetch: 'ไม่สามารถดึงไฟล์ README ได้',
},
}
export default translation

View File

@@ -0,0 +1,3 @@
const translation = {}
export default translation

View File

@@ -0,0 +1,31 @@
const translation = {
input: 'อินพุต',
result: 'ผล',
detail: 'รายละเอียด',
tracing: 'ติดตาม',
resultPanel: {
status: 'สถานะ',
time: 'เวลาที่ผ่านไป',
tokens: 'โทเค็นทั้งหมด',
},
meta: {
title: 'ข้อมูลเมตา',
status: 'สถานะ',
version: 'เวอร์ชัน',
executor: 'ผู้ปฏิบัติการ',
startTime: 'เวลาเริ่มต้น',
time: 'เวลาที่ผ่านไป',
tokens: 'โทเค็นทั้งหมด',
steps: 'เรียกใช้ขั้นตอน',
},
resultEmpty: {
title: 'เรียกใช้เฉพาะรูปแบบ JSON เอาต์พุต',
tipLeft: 'กรุณาไปที่',
link: 'แผงรายละเอียด',
tipRight: 'ดูมัน',
},
circularInvocationTip: 'มีการเรียกใช้เครื่องมือ/โหนดแบบวงกลมในเวิร์กโฟลว์ปัจจุบัน',
actionLogs: 'บันทึกการดําเนินการ',
}
export default translation

View File

@@ -0,0 +1,82 @@
const translation = {
common: {
appUnavailable: 'แอพไม่พร้อมใช้งาน',
appUnknownError: 'แอพไม่พร้อมใช้งาน',
welcome: '',
},
chat: {
newChat: 'แชทใหม่',
pinnedTitle: 'ปัก หมุด',
unpinnedTitle: 'แมว',
newChatDefaultName: 'การสนทนาใหม่',
resetChat: 'รีเซ็ตการสนทนา',
poweredBy: 'รับพลังมาจาก',
prompt: 'พร้อมท์',
privatePromptConfigTitle: 'การตั้งค่าการสนทนา',
publicPromptConfigTitle: 'พรอมต์เริ่มต้น',
configStatusDes: 'ก่อนเริ่ม คุณสามารถแก้ไขการตั้งค่าการสนทนาได้',
configDisabled: 'มีการใช้การตั้งค่าเซสชันก่อนหน้านี้สําหรับเซสชันนี้',
startChat: 'เริ่มแชท',
privacyPolicyLeft: 'โปรดอ่าน',
privacyPolicyMiddle: 'นโยบายความเป็นส่วนตัว',
privacyPolicyRight: 'จัดทําโดยนักพัฒนาแอป',
deleteConversation: {
title: 'ลบการสนทนา',
content: 'คุณแน่ใจหรือไม่ว่าต้องการลบการสนทนานี้?',
},
tryToSolve: 'พยายามแก้',
temporarySystemIssue: 'ขออภัย ปัญหาระบบชั่วคราว',
expand: 'ขยาย',
collapse: 'ย่อ',
newChatTip: 'อยู่ในแชทใหม่แล้ว',
chatSettingsTitle: 'การตั้งค่าการสนทนาใหม่',
viewChatSettings: 'ดูการตั้งค่าการแชท',
chatFormTip: 'การตั้งค่าแชทไม่สามารถเปลี่ยนแปลงได้หลังจากที่แชทเริ่มต้นขึ้นแล้ว.',
},
generation: {
tabs: {
create: 'เรียกใช้ครั้งเดียว',
batch: 'เรียกใช้แบทช์',
saved: 'บันทึก',
},
savedNoData: {
title: 'คุณยังไม่ได้บันทึกผลลัพธ์!',
description: 'เริ่มสร้างเนื้อหา และค้นหาผลลัพธ์ที่บันทึกไว้ที่นี่',
startCreateContent: 'เริ่มสร้างเนื้อหา',
},
title: 'ความสมบูรณ์ของ AI',
queryTitle: 'เนื้อหาแบบสอบถาม',
completionResult: 'ผลการเสร็จสมบูรณ์',
queryPlaceholder: 'เขียนเนื้อหาแบบสอบถามของคุณ...',
run: 'ประหารชีวิต',
copy: 'ลอก',
resultTitle: 'ความสมบูรณ์ของ AI',
noData: 'AI จะให้สิ่งที่คุณต้องการที่นี่',
csvUploadTitle: 'ลากและวางไฟล์ CSV ของคุณที่นี่ หรือ',
browse: 'เล็ม',
csvStructureTitle: 'ไฟล์ CSV ต้องสอดคล้องกับโครงสร้างต่อไปนี้:',
downloadTemplate: 'ดาวน์โหลดเทมเพลตที่นี่',
field: 'สนาม',
batchFailed: {
info: '{{num}} การดําเนินการที่ล้มเหลว',
retry: 'ลอง',
outputPlaceholder: 'ไม่มีเนื้อหาเอาต์พุต',
},
errorMsg: {
empty: 'กรุณาป้อนเนื้อหาในไฟล์ที่อัปโหลด',
fileStructNotMatch: 'ไฟล์ CSV ที่อัปโหลดไม่ตรงกับโครงสร้าง',
emptyLine: 'แถว {{rowIndex}} ว่างเปล่า',
invalidLine: 'แถว {{rowIndex}}: ค่า {{varName}} ต้องว่างเปล่าไม่ได้',
moreThanMaxLengthLine: 'แถว {{rowIndex}}: ค่า {{varName}} ต้องไม่เกิน {{maxLength}} อักขระ',
atLeastOne: 'โปรดป้อนอย่างน้อยหนึ่งแถวในไฟล์ที่อัปโหลด',
},
execution: 'การดำเนินการ',
executions: '{{num}} ครั้งที่รัน',
stopRun: 'หยุดการทำงาน',
},
login: {
backToHome: 'กลับไปที่หน้าแรก',
},
}
export default translation

View File

@@ -0,0 +1,44 @@
const translation = {
daysInWeek: {
Fri: 'เสรี',
Sat: 'เสาร์',
Wed: 'วันพุธ',
Sun: 'ดวงอาทิตย์',
Tue: 'อังคาร',
Thu: 'วันพฤหัสบดี',
Mon: 'มอน',
},
months: {
February: 'กุมภาพันธ์',
July: 'กรกฎาคม',
June: 'มิถุนายน',
January: 'มกราคม',
September: 'กันยายน',
August: 'สิงหาคม',
October: 'ตุลาคม',
May: 'พฤษภาคม',
November: 'พฤศจิกายน',
March: 'มีนาคม',
December: 'ธันวาคม',
April: 'เมษายน',
},
operation: {
ok: 'ตกลง',
cancel: 'ยกเลิก',
pickDate: 'เลือกวันที่',
now: 'ตอนนี้',
},
title: {
pickTime: 'เลือกเวลา',
},
defaultPlaceholder: 'เลือกเวลา...',
dateFormats: {
input: 'YYYY-MM-DD',
displayWithTime: 'MMMM D, YYYY hh:mm A',
outputWithTime: 'YYYY-MM-DDTHH:mm:ss.SSSZ',
display: 'MMMM D, YYYY',
output: 'YYYY-MM-DD',
},
}
export default translation

View File

@@ -0,0 +1,257 @@
const translation = {
title: 'เครื่อง มือ',
createCustomTool: 'สร้างเครื่องมือที่กําหนดเอง',
customToolTip: 'เรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือแบบกําหนดเองของ Dify',
type: {
builtIn: 'ในตัว',
custom: 'ธรรมเนียม',
workflow: 'เวิร์กโฟลว์',
},
contribute: {
line1: 'ฉันสนใจใน',
line2: 'เครื่องมือที่มีส่วนร่วมใน Dify',
viewGuide: 'ดูคู่มือ',
},
author: 'โดย',
auth: {
authorized: 'อนุญาต',
setup: 'ตั้งค่าการให้สิทธิ์เพื่อใช้',
setupModalTitle: 'ตั้งค่าการให้สิทธิ์',
setupModalTitleDescription: 'หลังจากกําหนดค่าข้อมูลประจําตัวแล้ว สมาชิกทั้งหมดภายในพื้นที่ทํางานสามารถใช้เครื่องมือนี้เมื่อประสานงานแอปพลิเคชันได้',
},
includeToolNum: '{{num}} รวมเครื่องมือ',
addToolModal: {
type: 'ประเภท',
category: 'ประเภท',
added: 'เพิ่ม',
custom: {
title: 'ไม่มีเครื่องมือกำหนดเอง',
tip: 'สร้างเครื่องมือกำหนดเอง',
},
workflow: {
title: 'ไม่มีเครื่องมือเวิร์กโฟลว์',
tip: 'เผยแพร่เวิร์กโฟลว์เป็นเครื่องมือใน Studio',
},
mcp: {
title: 'ไม่มีเครื่องมือ MCP',
tip: 'เพิ่มเซิร์ฟเวอร์ MCP',
},
agent: {
title: 'ไม่มีกลยุทธ์เอเจนต์',
},
},
createTool: {
title: 'สร้างเครื่องมือที่กําหนดเอง',
editAction: 'กําหนดค่า',
editTitle: 'แก้ไขเครื่องมือที่กําหนดเอง',
name: 'ชื่อ',
toolNamePlaceHolder: 'ป้อนชื่อเครื่องมือ',
nameForToolCall: 'ชื่อการเรียกเครื่องมือ',
nameForToolCallPlaceHolder: 'ใช้สําหรับจดจําเครื่อง เช่น getCurrentWeather list_pets',
nameForToolCallTip: 'รองรับเฉพาะตัวเลข ตัวอักษร และขีดล่างเท่านั้น',
description: 'คำอธิบาย',
descriptionPlaceholder: 'คําอธิบายสั้น ๆ เกี่ยวกับวัตถุประสงค์ของเครื่องมือ เช่น รับอุณหภูมิสําหรับตําแหน่งเฉพาะ',
schema: 'แผนการ',
schemaPlaceHolder: 'ป้อนสคีมา OpenAPI ของคุณที่นี่',
viewSchemaSpec: 'ดูข้อมูลจําเพาะของ OpenAPI-Swagger',
importFromUrl: 'นําเข้าจาก URL',
importFromUrlPlaceHolder: 'https://...',
urlError: 'โปรดป้อน URL ที่ถูกต้อง',
examples: 'ตัว อย่าง เช่น',
exampleOptions: {
json: 'สภาพอากาศ(JSON)',
yaml: 'ร้านขายสัตว์เลี้ยง (YAML)',
blankTemplate: 'เทมเพลตเปล่า',
},
availableTools: {
title: 'เครื่องมือที่มี',
name: 'ชื่อ',
description: 'คำอธิบาย',
method: 'วิธี',
path: 'ทาง',
action: 'การดําเนินการ',
test: 'ทดสอบ',
},
authMethod: {
title: 'วิธีการอนุญาต',
type: 'ชนิดการอนุญาต',
keyTooltip: 'Http Header Key คุณสามารถปล่อยให้เป็น "การอนุญาต" ได้หากคุณไม่รู้ว่ามันคืออะไรหรือตั้งค่าเป็นค่าที่กําหนดเอง',
types: {
none: 'ไม่มีใคร',
apiKeyPlaceholder: 'ชื่อส่วนหัว HTTP สําหรับคีย์ API',
apiValuePlaceholder: 'ป้อนคีย์ API',
api_key_header: 'หัวเรื่อง',
api_key_query: 'พารามิเตอร์การค้นหา',
queryParamPlaceholder: 'ชื่อพารามิเตอร์คำค้นสำหรับ API Key',
},
key: 'กุญแจ',
value: 'ค่า',
queryParam: 'พารามิเตอร์การค้นหา',
queryParamTooltip: 'ชื่อของพารามิเตอร์การค้นหา API key ที่ต้องส่ง ตัวอย่างเช่น "key" ใน "https://example.com/test?key=API_KEY".',
},
authHeaderPrefix: {
title: 'ประเภทการรับรองความถูกต้อง',
types: {
basic: 'พื้นฐาน',
bearer: 'ผู้ถือ',
custom: 'ธรรมเนียม',
},
},
privacyPolicy: 'นโยบายความเป็นส่วนตัว',
privacyPolicyPlaceholder: 'กรุณากรอกนโยบายความเป็นส่วนตัว',
toolInput: {
title: 'อินพุตเครื่องมือ',
name: 'ชื่อ',
required: 'ต้องระบุ',
method: 'วิธี',
methodSetting: 'ฉาก',
methodSettingTip: 'ผู้ใช้กรอกข้อมูลในการกําหนดค่าเครื่องมือ',
methodParameter: 'พารามิเตอร์',
methodParameterTip: 'การเติม LLM ระหว่างการอนุมาน',
label: 'ในตอนกลางวัน',
labelPlaceholder: 'เลือกแท็ก (ไม่บังคับ)',
description: 'คำอธิบาย',
descriptionPlaceholder: 'คําอธิบายความหมายของพารามิเตอร์',
},
customDisclaimer: 'ข้อจํากัดความรับผิดชอบที่กําหนดเอง',
customDisclaimerPlaceholder: 'โปรดป้อนข้อจํากัดความรับผิดชอบที่กําหนดเอง',
confirmTitle: 'ยืนยันการบันทึก ?',
confirmTip: 'แอปที่ใช้เครื่องมือนี้จะได้รับผลกระทบ',
deleteToolConfirmTitle: 'ลบเครื่องมือนี้?',
deleteToolConfirmContent: 'การลบเครื่องมือนั้นไม่สามารถย้อนกลับได้ ผู้ใช้จะไม่สามารถเข้าถึงเครื่องมือของคุณได้อีกต่อไป',
},
test: {
title: 'ทดสอบ',
parametersValue: 'พารามิเตอร์และค่า',
parameters: 'พารามิเตอร์',
value: 'ค่า',
testResult: 'ผลการทดสอบ',
testResultPlaceholder: 'ผลการทดสอบจะแสดงที่นี่',
},
thought: {
using: 'ใช้',
used: 'ใช้แล้ว',
requestTitle: 'ขอร้อง',
responseTitle: 'การตอบสนอง',
},
setBuiltInTools: {
info: 'ข้อมูล',
setting: 'ฉาก',
toolDescription: 'คําอธิบายเครื่องมือ',
parameters: 'พารามิเตอร์',
string: 'เชือก',
number: 'เลข',
required: 'ต้องระบุ',
infoAndSetting: 'ข้อมูลและการตั้งค่า',
file: 'แฟ้ม',
},
noCustomTool: {
title: 'ไม่มีเครื่องมือที่กําหนดเอง!',
content: 'เพิ่มและจัดการเครื่องมือที่กําหนดเองของคุณที่นี่สําหรับการสร้างแอป AI',
createTool: 'สร้างเครื่องมือ',
},
noSearchRes: {
title: 'ขออภัย ไม่มีผลลัพธ์!',
content: 'เราไม่พบเครื่องมือที่ตรงกับการค้นหาของคุณ',
reset: 'รีเซ็ตการค้นหา',
},
builtInPromptTitle: 'พร้อมท์',
toolRemoved: 'เครื่องมือถูกลบออก',
notAuthorized: 'เครื่องมือไม่ได้รับอนุญาต',
howToGet: 'วิธีรับ',
openInStudio: 'เปิดในสตูดิโอ',
toolNameUsageTip: 'ชื่อการเรียกเครื่องมือสําหรับการใช้เหตุผลและการแจ้งเตือนของตัวแทน',
noTools: 'ไม่พบเครื่องมือ',
copyToolName: 'คัดลอกชื่อ',
mcp: {
create: {
cardTitle: 'เพิ่มเซิร์ฟเวอร์ MCP (HTTP)',
cardLink: 'เรียนรู้เพิ่มเติมเกี่ยวกับการรวมเซิร์ฟเวอร์ MCP',
},
noConfigured: 'เซิร์ฟเวอร์ที่ยังไม่ได้กำหนดค่า',
updateTime: 'อัปเดตแล้ว',
toolsCount: '{count} เครื่องมือ',
noTools: 'ไม่มีเครื่องมือที่ใช้ได้',
modal: {
title: 'เพิ่มเซิร์ฟเวอร์ MCP (HTTP)',
editTitle: 'แก้ไขเซิร์ฟเวอร์ MCP (HTTP)',
name: 'ชื่อ & ไอคอน',
namePlaceholder: 'ตั้งชื่อเซิร์ฟเวอร์ MCP ของคุณ',
serverUrl: 'URL ของเซิร์ฟเวอร์',
serverUrlPlaceholder: 'URL สำหรับจุดสิ้นสุดของเซิร์ฟเวอร์',
serverUrlWarning: 'การอัปเดตที่อยู่เซิร์ฟเวอร์อาจทำให้แอปพลิเคชันที่พึ่งพาเซิร์ฟเวอร์นี้หยุดทำงาน',
serverIdentifier: 'ตัวระบุเซิร์ฟเวอร์',
serverIdentifierTip: 'ตัวระบุที่ไม่ซ้ำกันสำหรับเซิร์ฟเวอร์ MCP ภายในพื้นที่ทำงาน ตัวอักษรเล็ก ตัวเลข ขีดล่าง และขีดกลางเท่านั้น ความยาวไม่เกิน 24 ตัวอักษร',
serverIdentifierPlaceholder: 'ตัวระบุที่ไม่ซ้ำกัน เช่น my-mcp-server',
serverIdentifierWarning: 'เซิร์ฟเวอร์จะไม่ถูกต้องในแอปพลิเคชันที่มีอยู่หลังจากการเปลี่ยน ID',
cancel: 'ยกเลิก',
save: 'บันทึก',
confirm: 'เพิ่มและอนุญาต',
timeout: 'หมดเวลา',
sseReadTimeout: 'หมดเวลาการอ่าน SSE',
timeoutPlaceholder: 'สามสิบ',
headerValue: 'ค่าหัวข้อ',
addHeader: 'เพิ่มหัวเรื่อง',
headerKey: 'ชื่อหัวเรื่อง',
headerKeyPlaceholder: 'เช่น การอนุญาต',
headerValuePlaceholder: 'ตัวอย่าง: รหัสตัวแทน token123',
headers: 'หัวเรื่อง',
noHeaders: 'ไม่มีการกำหนดหัวข้อที่กำหนดเอง',
headersTip: 'HTTP header เพิ่มเติมที่จะส่งไปกับคำขอ MCP server',
maskedHeadersTip: 'ค่าหัวถูกปกปิดเพื่อความปลอดภัย การเปลี่ยนแปลงจะปรับปรุงค่าที่แท้จริง',
clientSecret: 'รหัสลับของลูกค้า',
configurations: 'การตั้งค่า',
authentication: 'การตรวจสอบตัวตน',
clientSecretPlaceholder: 'รหัสลับของลูกค้า',
useDynamicClientRegistration: 'ใช้การลงทะเบียนลูกค้าแบบไดนามิก',
clientID: 'รหัสลูกค้า',
redirectUrlWarning: 'กรุณากำหนด URL การเปลี่ยนเส้นทาง OAuth ของคุณเป็น:',
},
delete: 'ลบเซิร์ฟเวอร์ MCP',
deleteConfirmTitle: 'คุณต้องการลบ {mcp} หรือไม่?',
operation: {
edit: 'แก้ไข',
remove: 'ลบ',
},
authorize: 'อนุญาต',
authorizing: 'กำลังอนุญาต...',
authorizingRequired: 'ต้องมีการอนุญาต',
authorizeTip: 'หลังจากอนุญาต เครื่องมือจะถูกแสดงที่นี่',
update: 'อัปเดต',
updating: 'กำลังอัปเดต',
gettingTools: 'กำลังโหลดเครื่องมือ...',
updateTools: 'กำลังอัปเดตเครื่องมือ...',
toolsEmpty: 'ยังไม่โหลดเครื่องมือ',
getTools: 'รับเครื่องมือ',
toolUpdateConfirmTitle: 'อัปเดตรายการเครื่องมือ',
toolUpdateConfirmContent: 'การอัปเดตรายการเครื่องมืออาจส่งผลต่อแอปพลิเคชันที่มีอยู่ คุณต้องการดำเนินการต่อหรือไม่?',
toolsNum: '{count} เครื่องมือที่รวมอยู่',
onlyTool: 'รวม 1 เครื่องมือ',
identifier: 'ตัวระบุเซิร์ฟเวอร์ (คลิกเพื่อคัดลอก)',
server: {
title: 'เซิร์ฟเวอร์ MCP',
url: 'URL ของเซิร์ฟเวอร์',
reGen: 'คุณต้องการสร้าง URL ของเซิร์ฟเวอร์ใหม่หรือไม่?',
addDescription: 'เพิ่มคำอธิบาย',
edit: 'แก้ไขคำอธิบาย',
modal: {
addTitle: 'เพิ่มคำอธิบายเพื่อเปิดใช้งานเซิร์ฟเวอร์ MCP',
editTitle: 'แก้ไขคำอธิบาย',
description: 'คำอธิบาย',
descriptionPlaceholder: 'อธิบายว่าเครื่องมือนี้ทำอะไรและควรใช้กับ LLM อย่างไร',
parameters: 'พารามิเตอร์',
parametersTip: 'เพิ่มคำอธิบายสำหรับแต่ละพารามิเตอร์เพื่อช่วยให้ LLM เข้าใจวัตถุประสงค์และข้อจำกัดของมัน',
parametersPlaceholder: 'วัตถุประสงค์และข้อจำกัดของพารามิเตอร์',
confirm: 'เปิดใช้งานเซิร์ฟเวอร์ MCP',
},
publishTip: 'แอปไม่ถูกเผยแพร่ กรุณาเผยแพร่แอปก่อน',
},
toolItem: {
noDescription: 'ไม่มีคำอธิบาย',
parameters: 'พารามิเตอร์',
},
},
allTools: 'เครื่องมือทั้งหมด',
}
export default translation

File diff suppressed because it is too large Load Diff