chore: add Thai GUI (#11201)

This commit is contained in:
Yi Xiao 2024-11-29 14:20:48 +08:00 committed by GitHub
parent d3af0e9090
commit e3119112a6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
25 changed files with 3115 additions and 1 deletions

View File

@ -18,6 +18,7 @@ language_timezone_mapping = {
"tr-TR": "Europe/Istanbul", "tr-TR": "Europe/Istanbul",
"fa-IR": "Asia/Tehran", "fa-IR": "Asia/Tehran",
"sl-SI": "Europe/Ljubljana", "sl-SI": "Europe/Ljubljana",
"th-TH": "Asia/Bangkok",
} }
languages = list(language_timezone_mapping.keys()) languages = list(language_timezone_mapping.keys())

View File

@ -25,6 +25,7 @@ export type I18nText = {
'hi-IN': string 'hi-IN': string
'fa-IR': string 'fa-IR': string
'sl-SI': string 'sl-SI': string
'th-TH': string
} }
export const languages = data.languages export const languages = data.languages
@ -55,6 +56,7 @@ export const NOTICE_I18N = {
it_IT: 'Avviso Importante', it_IT: 'Avviso Importante',
fa_IR: 'هشدار مهم', fa_IR: 'هشدار مهم',
sl_SI: 'Pomembno obvestilo', sl_SI: 'Pomembno obvestilo',
th_TH: 'ประกาศสำคัญ',
}, },
desc: { desc: {
en_US: en_US:
@ -87,6 +89,8 @@ export const NOTICE_I18N = {
'سیستم ما از ساعت 19:00 تا 24:00 UTC در تاریخ 28 اوت برای ارتقاء در دسترس نخواهد بود. برای سؤالات، لطفاً با تیم پشتیبانی ما (support@dify.ai) تماس بگیرید. ما برای صبر شما ارزش قائلیم.', 'سیستم ما از ساعت 19:00 تا 24:00 UTC در تاریخ 28 اوت برای ارتقاء در دسترس نخواهد بود. برای سؤالات، لطفاً با تیم پشتیبانی ما (support@dify.ai) تماس بگیرید. ما برای صبر شما ارزش قائلیم.',
sl_SI: sl_SI:
'Naš sistem ne bo na voljo od 19:00 do 24:00 UTC 28. avgusta zaradi nadgradnje. Za vprašanja se obrnite na našo skupino za podporo (support@dify.ai). Cenimo vašo potrpežljivost.', 'Naš sistem ne bo na voljo od 19:00 do 24:00 UTC 28. avgusta zaradi nadgradnje. Za vprašanja se obrnite na našo skupino za podporo (support@dify.ai). Cenimo vašo potrpežljivost.',
th_TH:
'ระบบของเราจะไม่สามารถใช้งานได้ตั้งแต่เวลา 19:00 ถึง 24:00 UTC ในวันที่ 28 สิงหาคม เพื่อทำการอัปเกรด หากมีคำถามใดๆ กรุณาติดต่อทีมสนับสนุนของเรา (support@dify.ai) เราขอขอบคุณในความอดทนของท่าน',
}, },
href: '#', href: '#',
} }

View File

@ -82,7 +82,7 @@
"name": "ไทย (ประเทศไทย)", "name": "ไทย (ประเทศไทย)",
"prompt_name": "Thai", "prompt_name": "Thai",
"example": "สวัสดี Dify!", "example": "สวัสดี Dify!",
"supported": false "supported": true
}, },
{ {
"value": "id-ID", "value": "id-ID",

View File

@ -0,0 +1,87 @@
const translation = {
title: 'คำ อธิบาย',
name: 'คําอธิบายประกอบ ตอบกลับ',
editBy: 'ตอบแก้ไขโดย {{author}}',
noData: {
title: 'ไม่มีคําอธิบายประกอบ',
description: 'คุณสามารถแก้ไขคําอธิบายประกอบระหว่างการดีบักแอปหรือนําเข้าคําอธิบายประกอบจํานวนมากได้ที่นี่เพื่อการตอบกลับคุณภาพสูง',
},
table: {
header: {
question: 'ปัญหา',
answer: 'ตอบ',
createdAt: 'สร้างเมื่อ',
hits: 'ฮิต',
actions: 'การกระทํา',
addAnnotation: 'เพิ่มคําอธิบายประกอบ',
bulkImport: 'นําเข้าจํานวนมาก',
bulkExport: 'ส่งออกจํานวนมาก',
clearAll: 'ล้างคําอธิบายประกอบทั้งหมด',
},
},
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: 'โมเดลเวกเตอร์ข้อความคําอธิบายประกอบ โมเดลการสลับจะถูกฝังใหม่ส่งผลให้มีค่าใช้จ่ายเพิ่มเติม',
}
export default translation

85
web/i18n/th-TH/app-api.ts Normal file
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

94
web/i18n/th-TH/app-log.ts Normal file
View File

@ -0,0 +1,94 @@
const translation = {
title: 'บันทึก',
description: 'บันทึกบันทึกสถานะการทํางานของแอปพลิเคชัน รวมถึงการป้อนข้อมูลของผู้ใช้และการตอบกลับ AI',
dateTimeFormat: 'MM/DD/YYYY hh:mm A',
table: {
header: {
updatedTime: 'อัพเดทเวลา',
time: 'เวลาที่สร้าง',
endUser: 'ผู้ใช้ปลายทางหรือบัญชี',
input: 'อินพุต',
output: 'ผลิตภัณฑ์',
summary: 'ชื่อเรื่อง',
messageCount: 'จํานวนข้อความ',
userRate: 'อัตราผู้ใช้',
adminRate: 'Op. อัตรา',
startTime: 'เวลาเริ่มต้น',
status: 'สถานะ',
runtime: 'เวลาทํางาน',
tokens: 'โท เค็น',
user: 'ผู้ใช้ปลายทางหรือบัญชี',
version: 'เวอร์ชัน',
},
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: 'รูปภาพที่อัปโหลด',
},
filter: {
period: {
today: 'วันนี้',
last7days: '7 วันที่ผ่านมา',
last4weeks: '4 สัปดาห์ที่ผ่านมา',
last3months: '3 เดือนที่ผ่านมา',
last12months: '12 เดือนที่ผ่านมา',
monthToDate: 'เดือนจนถึงปัจจุบัน',
quarterToDate: 'ไตรมาสจนถึงปัจจุบัน',
yearToDate: 'ปีจนถึงปัจจุบัน',
allTime: 'ตลอดเวลา',
},
annotation: {
all: 'ทั้งหมด',
annotated: 'การปรับปรุงที่มีคําอธิบายประกอบ ({{count}} รายการ)',
not_annotated: 'ไม่มีคําอธิบายประกอบ',
},
sortBy: 'เมืองสีดํา:',
descending: 'จากมากไปหาน้อย',
ascending: 'จากน้อยไปมาก',
},
workflowTitle: 'บันทึกเวิร์กโฟลว์',
workflowSubtitle: 'บันทึกบันทึกการทํางานของ Automate',
runDetail: {
title: 'บันทึกการสนทนา',
workflowTitle: 'รายละเอียดบันทึก',
},
promptLog: 'บันทึกพร้อมท์',
agentLog: 'บันทึกตัวแทน',
viewLog: 'ดูบันทึก',
agentLogDetail: {
agentMode: 'โหมดตัวแทน',
toolUsed: 'เครื่องมือที่ใช้',
iterations: 'เกิด ซ้ำ',
iteration: 'เกิด ซ้ำ',
finalProcessing: 'การประมวลผลขั้นสุดท้าย',
},
}
export default translation

View File

@ -0,0 +1,168 @@
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 WebApp พร้อมใช้งาน',
accessibleAddress: 'URL สาธารณะ',
preview: 'ดูตัวอย่าง',
regenerate: 'สร้างใหม่',
regenerateNotice: 'คุณต้องการสร้าง URL สาธารณะใหม่หรือไม่',
preUseReminder: 'โปรดเปิดใช้งาน WebApp ก่อนดําเนินการต่อ',
settings: {
entry: 'การตั้งค่า',
title: 'การตั้งค่าเว็บแอป',
webName: 'ชื่อเว็บแอป',
webDesc: 'คําอธิบาย WebApp',
webDescTip: 'ข้อความนี้จะแสดงที่ฝั่งไคลเอ็นต์ โดยให้คําแนะนําพื้นฐานเกี่ยวกับวิธีการใช้แอปพลิเคชัน',
webDescPlaceholder: 'ป้อนคําอธิบายของ WebApp',
language: 'ภาษา',
workflow: {
title: 'เวิร์กโฟลว์',
subTitle: 'รายละเอียดเวิร์กโฟลว์',
show: 'แสดง',
hide: 'ซ่อน',
showDesc: 'แสดงหรือซ่อนรายละเอียดเวิร์กโฟลว์ใน WebApp',
},
chatColorTheme: 'ธีมสีแชท',
chatColorThemeDesc: 'กําหนดธีมสีของแชทบอท',
chatColorThemeInverted: 'คว่ำ',
invalidHexMessage: 'ค่าฐานสิบหกไม่ถูกต้อง',
sso: {
label: 'การรับรองความถูกต้องของ SSO',
title: 'เว็บแอป SSO',
description: 'ผู้ใช้ทุกคนต้องเข้าสู่ระบบด้วย SSO ก่อนใช้ WebApp',
tooltip: 'ติดต่อผู้ดูแลระบบเพื่อเปิดใช้ WebApp SSO',
},
more: {
entry: 'แสดงการตั้งค่าเพิ่มเติม',
copyright: 'ลิขสิทธิ์',
copyRightPlaceholder: 'ป้อนชื่อผู้เขียนหรือองค์กร',
privacyPolicy: 'นโยบายความเป็นส่วนตัว',
privacyPolicyPlaceholder: 'ป้อนลิงก์นโยบายความเป็นส่วนตัว',
privacyPolicyTip: 'ช่วยให้ผู้เยี่ยมชมเข้าใจข้อมูลที่แอปพลิเคชันรวบรวม โปรดดูนโยบาย<privacyPolicyLink>ความเป็นส่วนตัว</privacyPolicyLink>ของ Dify',
customDisclaimer: 'ข้อจํากัดความรับผิดชอบที่กําหนดเอง',
customDisclaimerPlaceholder: 'ป้อนข้อความข้อจํากัดความรับผิดชอบที่กําหนดเอง',
customDisclaimerTip: 'ข้อความปฏิเสธความรับผิดชอบที่กําหนดเองจะแสดงที่ฝั่งไคลเอ็นต์ โดยให้ข้อมูลเพิ่มเติมเกี่ยวกับแอปพลิเคชัน',
},
},
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 WebApp',
explanation: 'คุณสามารถปรับแต่งส่วนหน้าของ Web App ให้เหมาะกับสถานการณ์และความต้องการสไตล์ของคุณได้',
way1: {
name: 'แยกรหัสไคลเอ็นต์ แก้ไข และปรับใช้กับ Vercel (แนะนํา)',
step1: 'แยกรหัสไคลเอ็นต์และแก้ไข',
step1Tip: 'คลิกที่นี่เพื่อแยกซอร์สโค้ดลงในบัญชี GitHub ของคุณและแก้ไขโค้ด',
step1Operation: 'Dify-Web ไคลเอ็นต์',
step2: 'ปรับใช้กับ Vercel',
step2Tip: 'คลิกที่นี่เพื่อนําเข้าที่เก็บไปยัง Vercel และปรับใช้',
step2Operation: 'นําเข้าที่เก็บข้อมูล',
step3: 'กําหนดค่าตัวแปรสภาพแวดล้อม',
step3Tip: 'เพิ่มตัวแปรสภาพแวดล้อมต่อไปนี้ใน Vercel',
},
way2: {
name: 'เขียนโค้ดฝั่งไคลเอ็นต์เพื่อเรียกใช้ API และปรับใช้กับเซิร์ฟเวอร์',
operation: 'เอกสาร',
},
},
},
apiInfo: {
title: 'API บริการแบ็กเอนด์',
explanation: 'ผสานรวมเข้ากับแอปพลิเคชันของคุณได้อย่างง่ายดาย',
accessibleAddress: 'ปลายทาง API บริการ',
doc: 'การอ้างอิง API',
},
status: {
running: 'ให้บริการ',
disable: 'พิการ',
},
},
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

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

@ -0,0 +1,142 @@
const translation = {
createApp: 'สร้างแอพ',
types: {
all: 'ทั้งหมด',
chatbot: 'แชทบอท',
agent: 'ตัวแทน',
workflow: 'เวิร์กโฟลว์',
completion: 'เสร็จ สมบูรณ์',
},
duplicate: 'สำเนา',
duplicateTitle: 'แอปที่ซ้ํากัน',
export: 'ส่งออก DSL',
exportFailed: 'ส่งออก DSL ล้มเหลว',
importDSL: 'นําเข้าไฟล์ DSL',
createFromConfigFile: 'สร้างจากไฟล์ DSL',
importFromDSL: 'นําเข้าจาก DSL',
importFromDSLFile: 'จากไฟล์ DSL',
importFromDSLUrl: 'จาก URL',
importFromDSLUrlPlaceholder: 'วางลิงค์ DSL ที่นี่',
deleteAppConfirmTitle: 'ลบแอพนี้?',
deleteAppConfirmContent: 'การลบแอปนั้นไม่สามารถย้อนกลับได้ ผู้ใช้จะไม่สามารถเข้าถึงแอปของคุณอีกต่อไป และการกําหนดค่าพร้อมท์และบันทึกทั้งหมดจะถูกลบอย่างถาวร',
appDeleted: 'แอพถูกลบ',
appDeleteFailed: 'ลบแอปไม่สําเร็จ',
join: 'เข้าร่วมชุมชน',
communityIntro: 'พูดคุยกับสมาชิกในทีม ผู้ร่วมให้ข้อมูล และนักพัฒนาในช่องทางต่างๆ',
roadmap: 'ดูแผนงานของเรา',
newApp: {
startFromBlank: 'สร้างจากช่องว่าง',
startFromTemplate: 'สร้างจากเทมเพลต',
captionAppType: 'คุณต้องการสร้างแอปประเภทใด',
chatbotDescription: 'สร้างแอปพลิเคชันที่ใช้การแชท แอพนี้ใช้รูปแบบคําถามและคําตอบ ทําให้สามารถสนทนาต่อเนื่องได้หลายรอบ',
completionDescription: 'สร้างแอปพลิเคชันที่สร้างข้อความคุณภาพสูงตามข้อความแจ้ง เช่น การสร้างบทความ สรุป การแปล และอื่นๆ',
completionWarning: 'แอปประเภทนี้จะไม่รองรับอีกต่อไป',
agentDescription: 'สร้างตัวแทนอัจฉริยะที่สามารถเลือกเครื่องมือเพื่อทํางานให้เสร็จได้โดยอัตโนมัติ',
workflowDescription: 'สร้างแอปพลิเคชันที่สร้างข้อความคุณภาพสูงตามการประสานเวิร์กโฟลว์ที่มีการปรับแต่งในระดับสูง เหมาะสําหรับผู้ใช้ที่มีประสบการณ์',
workflowWarning: 'ขณะนี้อยู่ในช่วงเบต้า',
chatbotType: 'วิธีการประสานแชทบอท',
basic: 'พื้นฐาน',
basicTip: 'สําหรับผู้เริ่มต้นสามารถเปลี่ยนไปใช้ Chatflow ได้ในภายหลัง',
basicFor: 'สําหรับผู้เริ่มต้น',
basicDescription: 'Basic Orchestrate ช่วยให้สามารถประสานแอปแชทบอทโดยใช้การตั้งค่าง่ายๆ โดยไม่สามารถแก้ไขข้อความแจ้งในตัวได้ เหมาะสําหรับผู้เริ่มต้น',
advanced: 'แชทโฟลว์',
advancedFor: 'สําหรับผู้ใช้ขั้นสูง',
advancedDescription: 'Workflow Orchestrate ประสานงาน Chatbots ในรูปแบบของเวิร์กโฟลว์ โดยนําเสนอการปรับแต่งในระดับสูง รวมถึงความสามารถในการแก้ไขข้อความแจ้งในตัว เหมาะสําหรับผู้ใช้ที่มีประสบการณ์',
captionName: 'ไอคอนและชื่อแอป',
appNamePlaceholder: 'ตั้งชื่อแอปของคุณ',
captionDescription: 'คำอธิบาย',
appDescriptionPlaceholder: 'ป้อนคําอธิบายของแอป',
useTemplate: 'ใช้เทมเพลตนี้',
previewDemo: 'ตัวอย่างการสาธิต',
chatApp: 'ผู้ช่วย',
chatAppIntro: 'ฉันต้องการสร้างแอปพลิเคชันที่ใช้การแชท แอพนี้ใช้รูปแบบคําถามและคําตอบ ทําให้สามารถสนทนาต่อเนื่องได้หลายรอบ',
agentAssistant: 'ผู้ช่วยตัวแทนใหม่',
completeApp: 'เครื่องกําเนิดข้อความ',
completeAppIntro: 'ฉันต้องการสร้างแอปพลิเคชันที่สร้างข้อความคุณภาพสูงตามข้อความแจ้ง เช่น การสร้างบทความ สรุป การแปล และอื่นๆ',
showTemplates: 'ฉันต้องการเลือกจากเทมเพลต',
hideTemplates: 'กลับไปที่การเลือกโหมด',
Create: 'สร้าง',
Cancel: 'ยกเลิก',
Confirm: 'ยืนยัน',
nameNotEmpty: 'ชื่อต้องไม่ว่างเปล่า',
appTemplateNotSelected: 'โปรดเลือกเทมเพลต',
appTypeRequired: 'โปรดเลือกประเภทแอป',
appCreated: 'สร้างแอป',
caution: 'ความระมัดระวัง',
appCreateDSLWarning: 'ข้อควรระวัง: ความแตกต่างของเวอร์ชัน DSL อาจส่งผลต่อคุณสมบัติบางอย่าง',
appCreateDSLErrorTitle: 'ความเข้ากันไม่ได้ของเวอร์ชัน',
appCreateDSLErrorPart1: 'ตรวจพบความแตกต่างอย่างมีนัยสําคัญในเวอร์ชัน DSL การบังคับนําเข้าอาจทําให้แอปพลิเคชันทํางานผิดปกติ',
appCreateDSLErrorPart2: 'คุณต้องการดําเนินการต่อหรือไม่?',
appCreateDSLErrorPart3: 'เวอร์ชัน DSL ของแอปพลิเคชันปัจจุบัน:',
appCreateDSLErrorPart4: 'เวอร์ชัน DSL ที่ระบบรองรับ:',
appCreateFailed: 'สร้างแอปไม่สําเร็จ',
},
editApp: 'แก้ไขข้อมูล',
editAppTitle: 'แก้ไขข้อมูลแอป',
editDone: 'อัปเดตข้อมูลแอป',
editFailed: 'อัปเดตข้อมูลแอปไม่สําเร็จ',
iconPicker: {
ok: 'ตกลง, ได้',
cancel: 'ยกเลิก',
emoji: 'อิโมจิ',
image: 'ภาพ',
},
answerIcon: {
title: 'ใช้ไอคอน WebApp เพื่อแทนที่ 🤖',
description: 'จะใช้ไอคอน WebApp เพื่อแทนที่🤖ในแอปพลิเคชันที่ใช้ร่วมกันหรือไม่',
descriptionInExplore: 'จะใช้ไอคอน WebApp เพื่อแทนที่🤖ใน Explore หรือไม่',
},
switch: 'เปลี่ยนไปใช้ Workflow Orchestrate',
switchTipStart: 'สําเนาแอปใหม่จะถูกสร้างขึ้นสําหรับคุณ และสําเนาใหม่จะเปลี่ยนเป็น Workflow Orchestration สําเนาใหม่จะ',
switchTip: 'ไม่อนุญาต',
switchTipEnd: 'เปลี่ยนกลับเป็น Basic Orchestrate',
switchLabel: 'สําเนาแอปที่จะสร้าง',
removeOriginal: 'ลบแอปเดิม',
switchStart: 'สวิตช์สตาร์ท',
typeSelector: {
all: 'ทุกประเภท',
chatbot: 'แชทบอท',
agent: 'ตัวแทน',
workflow: 'เวิร์กโฟลว์',
completion: 'เสร็จ สมบูรณ์',
},
tracing: {
title: 'การติดตามประสิทธิภาพของแอป',
description: 'การกําหนดค่าผู้ให้บริการ LLMOps บุคคลที่สามและประสิทธิภาพของแอปติดตาม',
config: 'กําหนดค่า',
view: 'ทิวทัศน์',
collapse: 'ทรุด',
expand: 'ขยาย',
tracing: 'ติดตาม',
disabled: 'พิการ',
disabledTip: 'โปรดกําหนดค่าผู้ให้บริการก่อน',
enabled: 'ให้บริการ',
tracingDescription: 'บันทึกบริบททั้งหมดของการดําเนินการแอป รวมถึงการเรียก LLM บริบท พรอมต์ คําขอ HTTP และอื่นๆ ไปยังแพลตฟอร์มการติดตามของบุคคลที่สาม',
configProviderTitle: {
configured: 'กําหนดค่าแล้ว',
notConfigured: 'ผู้ให้บริการกําหนดค่าเพื่อเปิดใช้งานการติดตาม',
moreProvider: 'ผู้ให้บริการเพิ่มเติม',
},
langsmith: {
title: 'แลงสมิธ',
description: 'แพลตฟอร์มนักพัฒนาแบบครบวงจรสําหรับทุกขั้นตอนของวงจรชีวิตแอปพลิเคชันที่ขับเคลื่อนด้วย LLM',
},
langfuse: {
title: 'แลงฟิวส์',
description: 'การติดตาม การประเมิน การจัดการพร้อมท์ และเมตริกเพื่อแก้ไขข้อบกพร่องและปรับปรุงแอปพลิเคชัน LLM ของคุณ',
},
inUse: 'ใช้งาน',
configProvider: {
title: 'กําหนดค่า',
placeholder: 'ป้อน {{key}} ของคุณ',
project: 'โครงการ',
publicKey: 'กุญแจสาธารณะ',
secretKey: 'กุญแจลับ',
viewDocsLink: 'ดูเอกสาร {{key}}',
removeConfirmTitle: 'ลบการกําหนดค่า {{key}} หรือไม่?',
removeConfirmContent: 'การกําหนดค่าปัจจุบันกําลังใช้งาน การลบออกจะเป็นการปิดคุณสมบัติการติดตาม',
},
},
}
export default translation

118
web/i18n/th-TH/billing.ts Normal file
View File

@ -0,0 +1,118 @@
const translation = {
currentPlan: 'แผนปัจจุบัน',
upgradeBtn: {
plain: 'แผนการอัปเกรด',
encourage: 'อัปเกรดเดี๋ยวนี้',
encourageShort: 'อัพ เกรด',
},
viewBilling: 'จัดการการเรียกเก็บเงินและการสมัครใช้งาน',
buyPermissionDeniedTip: 'โปรดติดต่อผู้ดูแลระบบองค์กรของคุณเพื่อสมัครสมาชิก',
plansCommon: {
title: 'เลือกแผนบริการที่เหมาะกับคุณ',
yearlyTip: 'รับฟรี 2 เดือนโดยสมัครสมาชิกรายปี!',
mostPopular: 'แห่ง',
planRange: {
monthly: 'รายเดือน',
yearly: 'รายปี',
},
month: 'เดือน',
year: 'ปี',
save: 'ประหยัด',
free: 'ฟรี',
currentPlan: 'แผนปัจจุบัน',
contractSales: 'ติดต่อฝ่ายขาย',
contractOwner: 'ติดต่อผู้จัดการทีม',
startForFree: 'เริ่มฟรี',
getStartedWith: 'เริ่มต้นใช้งาน',
contactSales: 'ติดต่อฝ่ายขาย',
talkToSales: 'พูดคุยกับฝ่ายขาย',
modelProviders: 'ผู้ให้บริการโมเดล',
teamMembers: 'สมาชิกในทีม',
annotationQuota: 'โควต้าคําอธิบายประกอบ',
buildApps: 'สร้างแอพ',
vectorSpace: 'พื้นที่เวกเตอร์',
vectorSpaceBillingTooltip: 'แต่ละ 1MB สามารถจัดเก็บข้อมูลแบบเวกเตอร์ได้ประมาณ 1.2 ล้านอักขระ (โดยประมาณโดยใช้ OpenAI Embeddings แตกต่างกันไปตามรุ่น)',
vectorSpaceTooltip: 'Vector Space เป็นระบบหน่วยความจําระยะยาวที่จําเป็นสําหรับ LLM ในการทําความเข้าใจข้อมูลของคุณ',
documentsUploadQuota: 'โควต้าการอัปโหลดเอกสาร',
documentProcessingPriority: 'ลําดับความสําคัญในการประมวลผลเอกสาร',
documentProcessingPriorityTip: 'สําหรับลําดับความสําคัญในการประมวลผลเอกสารที่สูงขึ้น โปรดอัปเกรดแผนของคุณ',
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 ของคุณ',
},
annotatedResponse: {
title: 'ขีดจํากัดโควต้าคําอธิบายประกอบ',
tooltip: 'การแก้ไขและคําอธิบายประกอบการตอบกลับด้วยตนเองให้ความสามารถในการตอบคําถามคุณภาพสูงที่ปรับแต่งได้สําหรับแอป (ใช้ได้เฉพาะในแอปแชท)',
},
ragAPIRequestTooltip: 'หมายถึงจํานวนการเรียก API ที่เรียกใช้เฉพาะความสามารถในการประมวลผลฐานความรู้ของ Dify',
receiptInfo: 'เฉพาะเจ้าของทีมและผู้ดูแลทีมเท่านั้นที่สามารถสมัครสมาชิกและดูข้อมูลการเรียกเก็บเงินได้',
},
plans: {
sandbox: {
name: 'กระบะทราย',
description: 'ทดลองใช้ GPT ฟรี 200 ครั้ง',
includesTitle: 'มี:',
},
professional: {
name: 'มืออาชีพ',
description: 'สําหรับบุคคลและทีมขนาดเล็กเพื่อปลดล็อกพลังงานมากขึ้นในราคาย่อมเยา',
includesTitle: 'ทุกอย่างในแผนฟรี รวมถึง:',
},
team: {
name: 'ทีม',
description: 'ทํางานร่วมกันอย่างไร้ขีดจํากัดและเพลิดเพลินไปกับประสิทธิภาพระดับสูงสุด',
includesTitle: 'ทุกอย่างในแผน Professional รวมถึง:',
},
enterprise: {
name: 'กิจการ',
description: 'รับความสามารถและการสนับสนุนเต็มรูปแบบสําหรับระบบที่สําคัญต่อภารกิจขนาดใหญ่',
includesTitle: 'ทุกอย่างในแผนทีม รวมถึง:',
},
},
vectorSpace: {
fullTip: 'เวกเตอร์สเปซเต็ม',
fullSolution: 'อัปเกรดแผนของคุณเพื่อเพิ่มพื้นที่',
},
apps: {
fullTipLine1: 'อัปเกรดแผนของคุณเป็น',
fullTipLine2: 'สร้างแอปเพิ่มเติม',
},
annotatedResponse: {
fullTipLine1: 'อัปเกรดแผนของคุณเป็น',
fullTipLine2: 'ใส่คําอธิบายประกอบการสนทนาเพิ่มเติม',
quotaTitle: 'โควต้าตอบกลับคําอธิบายประกอบ',
},
}
export default translation

598
web/i18n/th-TH/common.ts Normal file
View File

@ -0,0 +1,598 @@
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: 'เปิดในแท็บใหม่',
},
errorMsg: {
fieldRequired: '{{field}} เป็นสิ่งจําเป็น',
urlError: 'url ควรขึ้นต้นด้วย http:// หรือ https://',
},
placeholder: {
input: 'กรุณากรอก',
select: 'กรุณาเลือก',
},
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: 'ไปที่การตั้งค่าเพื่อเพิ่มรุ่นเพิ่มเติม',
},
menus: {
status: 'Beta',
explore: 'สํารวจ',
apps: 'เรียน',
plugins: 'ปลั๊กอิน',
pluginsTips: 'รวมปลั๊กอินของบุคคลที่สามหรือสร้างปลั๊กอิน AI ที่เข้ากันได้กับ ChatGPT',
datasets: 'ความรู้',
datasetsTips: 'เร็ว ๆ นี้: นําเข้าข้อมูลข้อความของคุณเองหรือเขียนข้อมูลแบบเรียลไทม์ผ่าน Webhook เพื่อปรับปรุงบริบท LLM',
newApp: 'แอพใหม่',
newDataset: 'สร้างความรู้',
tools: 'เครื่อง มือ',
},
userProfile: {
settings: 'การตั้งค่า',
emailSupport: 'การสนับสนุนทางอีเมล',
workspace: 'พื้นที่',
createWorkspace: 'สร้างพื้นที่ทํางาน',
helpCenter: 'วิธีใช้',
communityFeedback: 'การตอบสนอง',
roadmap: 'แผนงาน',
community: 'ชุมชน',
about: 'ประมาณ',
logout: 'ออกจากระบบ',
},
settings: {
accountGroup: 'ทั่วไป',
workplaceGroup: 'พื้นที่',
account: 'บัญชีของฉัน',
members: 'สมาชิก',
billing: 'เรียก เก็บ เงิน',
integrations: 'บูรณาการ',
language: 'ภาษา',
provider: 'ผู้ให้บริการโมเดล',
dataSource: 'แหล่งข้อมูล',
plugin: 'ปลั๊กอิน',
apiBasedExtension: 'ส่วนขยาย API',
},
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: 'การลบบัญชีของคุณจะเป็นการลบข้อมูลทั้งหมดของคุณอย่างถาวรและไม่สามารถกู้คืนได้',
deleteConfirmTip: 'เพื่อยืนยัน โปรดส่งข้อมูลต่อไปนี้จากอีเมลที่ลงทะเบียนไว้ที่',
},
members: {
team: 'ทีม',
invite: 'เพิ่ม',
name: 'ชื่อ',
lastActive: 'ใช้งานล่าสุด',
role: 'บทบาท',
pending: 'รอ ',
owner: 'เจ้าของ',
admin: 'ผู้ดูแลระบบ',
adminTip: 'สามารถสร้างแอพและจัดการการตั้งค่าทีมได้',
normal: 'ปกติ',
normalTip: 'ใช้ได้เฉพาะแอพ สร้างแอพไม่ได้',
builder: 'ผู้สร้าง',
builderTip: 'สามารถสร้างและแก้ไขแอปของตัวเองได้',
editor: 'บรรณาธิการ',
editorTip: 'สามารถสร้างและแก้ไขแอปได้',
datasetOperator: 'ผู้ดูแลระบบความรู้',
datasetOperatorTip: 'สามารถจัดการฐานความรู้ได้เท่านั้น',
inviteTeamMember: 'เพิ่มสมาชิกในทีม',
inviteTeamMemberTip: 'พวกเขาสามารถเข้าถึงข้อมูลทีมของคุณได้โดยตรงหลังจากลงชื่อเข้าใช้',
email: 'อีเมล',
emailInvalid: 'รูปแบบอีเมลไม่ถูกต้อง',
emailPlaceholder: 'กรุณากรอกอีเมล',
sendInvite: 'ส่งคําเชิญ',
invitedAsRole: 'ได้รับเชิญให้เป็นผู้ใช้ {{role}}',
invitationSent: 'ส่งคําเชิญแล้ว',
invitationSentTip: 'ส่งคําเชิญแล้ว และพวกเขาสามารถลงชื่อเข้าใช้ Dify เพื่อเข้าถึงข้อมูลทีมของคุณได้',
invitationLink: 'ลิงค์คําเชิญ',
failedInvitationEmails: 'ผู้ใช้ด้านล่างไม่ได้รับเชิญสําเร็จ',
ok: 'ตกลง, ได้',
removeFromTeam: 'ลบออกจากทีม',
removeFromTeamTip: 'จะลบการเข้าถึงของทีม',
setAdmin: 'ตั้งเป็นผู้ดูแลระบบ',
setMember: 'ตั้งเป็นสมาชิกสามัญ',
setBuilder: 'ตั้งเป็นผู้สร้าง',
setEditor: 'ตั้งค่าเป็นตัวแก้ไข',
disInvite: 'ยกเลิกคําเชิญ',
deleteMember: 'ลบสมาชิก',
you: '(คุณ)',
},
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: 'ปิด',
},
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: 'อัปเกรดแผนของคุณเพื่อเปิดใช้งานการปรับสมดุลโหลด',
},
dataSource: {
add: 'เพิ่มแหล่งข้อมูล',
connect: 'ติด',
configure: 'กําหนดค่า',
notion: {
title: 'แนวคิด',
description: 'การใช้ Notion เป็นแหล่งข้อมูลสําหรับความรู้',
connectedWorkspace: 'พื้นที่ทํางานที่เชื่อมต่อ',
addWorkspace: 'เพิ่มพื้นที่ทํางาน',
connected: 'เชื่อม ต่อ',
disconnected: 'เชื่อม ต่อ',
changeAuthorizedPages: 'เปลี่ยนหน้าที่ได้รับอนุญาต',
pagesAuthorized: 'เพจที่ได้รับอนุญาต',
sync: 'ซิงค์',
remove: 'ถอด',
selector: {
pageSelected: 'หน้าที่เลือก',
searchPages: 'หน้าค้นหา...',
noSearchResult: 'ไม่มีผลการค้นหา',
addPages: 'เพิ่มหน้า',
preview: 'ดูตัวอย่าง',
},
},
website: {
title: 'เว็บไซต์',
description: 'นําเข้าเนื้อหาจากเว็บไซต์โดยใช้โปรแกรมรวบรวมข้อมูลเว็บ',
with: 'กับ',
configuredCrawlers: 'โปรแกรมรวบรวมข้อมูลที่กําหนดค่าไว้',
active: 'กระปรี้กระเปร่า',
inactive: 'เกียจคร้าน',
},
},
plugin: {
serpapi: {
apiKey: 'คีย์ API',
apiKeyPlaceholder: 'ป้อนคีย์ API ของคุณ',
keyFrom: 'รับคีย์ SerpAPI ของคุณจากหน้าบัญชี SerpAPI',
},
},
apiBasedExtension: {
title: 'ส่วนขยาย API ให้การจัดการ API แบบรวมศูนย์ ทําให้การกําหนดค่าง่ายขึ้นเพื่อให้ใช้งานได้ง่ายในแอปพลิเคชันของ Dify',
link: 'เรียนรู้วิธีพัฒนาส่วนขยาย API ของคุณเอง',
linkUrl: 'https://docs.dify.ai/features/extension/api_based_extension',
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: 'แอปที่เชื่อมโยง',
},
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: 'พูดคุยกับบอท',
},
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: 'ไม่รองรับนามสกุลไฟล์',
},
tag: {
placeholder: 'แท็กทั้งหมด',
addNew: 'เพิ่มแท็กใหม่',
noTag: 'ไม่มีแท็ก',
noTagYet: 'ยังไม่มีแท็ก',
addTag: 'เพิ่มแท็ก',
editTag: 'แก้ไขแท็ก',
manageTags: 'จัดการแท็ก',
selectorPlaceholder: 'พิมพ์เพื่อค้นหาหรือสร้าง',
create: 'สร้าง',
delete: 'ลบแท็ก',
deleteTip: 'แท็กกําลังถูกใช้ลบออก?',
created: 'สร้างแท็กสําเร็จ',
failed: 'การสร้างแท็กล้มเหลว',
},
license: {
expiring: 'หมดอายุในหนึ่งวัน',
expiring_plural: 'หมดอายุใน {{count}} วัน',
},
pagination: {
perPage: 'รายการต่อหน้า',
},
}
export default translation

30
web/i18n/th-TH/custom.ts Normal file
View File

@ -0,0 +1,30 @@
const translation = {
custom: 'กำหนด เอง',
upgradeTip: {
prefix: 'อัปเกรดแผนของคุณเป็น',
suffix: 'ปรับแต่งแบรนด์ของคุณ',
},
webapp: {
title: 'ปรับแต่งแบรนด์ WebApp',
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,176 @@
const translation = {
steps: {
header: {
creation: 'สร้างความรู้',
update: 'เพิ่มข้อมูล',
},
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: 'ลากและวางไฟล์ หรือ',
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',
firecrawlDocLink: 'https://docs.dify.ai/guides/knowledge-base/sync-from-website',
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 + หนึ่ง / เป็นต้น',
},
},
stepTwo: {
segmentation: 'การตั้งค่าก้อน',
auto: 'อัตโนมัติ',
autoDescription: 'ตั้งค่ากฎการแบ่งกลุ่มและการประมวลผลล่วงหน้าโดยอัตโนมัติ ขอแนะนําให้ผู้ใช้ที่ไม่คุ้นเคยเลือกสิ่งนี้',
custom: 'ธรรมเนียม',
customDescription: 'ปรับแต่งกฎของกลุ่ม ความยาวของกลุ่ม และกฎการประมวลผลล่วงหน้า ฯลฯ',
separator: 'ตัวคั่น',
separatorTip: 'ตัวคั่นคืออักขระที่ใช้ในการแยกข้อความ \\n\\n และ \\n เป็นตัวคั่นที่ใช้กันทั่วไปสําหรับการแยกย่อหน้าและบรรทัด เมื่อรวมกับเครื่องหมายจุลภาค (\\n\\n,\\n) ย่อหน้าจะถูกแบ่งตามบรรทัดเมื่อเกินความยาวของก้อนสูงสุด คุณยังสามารถใช้ตัวคั่นพิเศษที่กําหนดโดยตัวคุณเอง (เช่น ***)',
separatorPlaceholder: '\\n\\n สําหรับแยกย่อหน้า \\n สําหรับแยกเส้น',
maxLength: 'ความยาวก้อนสูงสุด',
maxLengthCheck: 'ความยาวก้อนสูงสุดควรน้อยกว่า 4000',
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: 'การตั้งค่าความรู้',
},
stepThree: {
creationTitle: '🎉 สร้างความรู้',
creationContent: 'เราตั้งชื่อความรู้โดยอัตโนมัติ คุณสามารถแก้ไขได้ตลอดเวลา',
label: 'ชื่อความรู้',
additionTitle: '🎉 อัปโหลดเอกสาร',
additionP1: 'เอกสารถูกอัปโหลดไปยังความรู้แล้ว',
additionP2: 'คุณสามารถค้นหาได้ในรายการเอกสารของความรู้',
stop: 'หยุดการประมวลผล',
resume: 'ดําเนินการต่อ',
navTo: 'ไปที่เอกสาร',
sideTipTitle: 'อะไรต่อไป',
sideTipContent: 'หลังจากที่เอกสารเสร็จสิ้นการจัดทําดัชนี ความรู้สามารถรวมเข้ากับแอปพลิเคชันเป็นบริบท คุณสามารถค้นหาการตั้งค่าบริบทในหน้าการประสานงานพร้อมท์ คุณยังสามารถสร้างเป็นปลั๊กอินการจัดทําดัชนี ChatGPT อิสระสําหรับการเผยแพร่',
modelTitle: 'คุณแน่ใจหรือว่าจะหยุดฝัง?',
modelContent: 'หากคุณต้องการดําเนินการต่อในภายหลัง คุณจะดําเนินการต่อจากจุดที่คุณค้างไว้',
modelButtonConfirm: 'ยืนยัน',
modelButtonCancel: 'ยกเลิก',
},
}
export default translation

View File

@ -0,0 +1,351 @@
const translation = {
list: {
title: 'เอกสาร',
desc: 'ไฟล์ทั้งหมดของความรู้จะแสดงที่นี่ และความรู้ทั้งหมดสามารถเชื่อมโยงกับการอ้างอิง Dify หรือจัดทําดัชนีผ่านปลั๊กอินแชท',
addFile: 'เพิ่มไฟล์',
addPages: 'เพิ่มหน้า',
addUrl: 'เพิ่ม URL',
table: {
header: {
fileName: 'ชื่อไฟล์',
words: 'นิรุกติ',
hitCount: 'จํานวนการดึงข้อมูล',
uploadTime: 'เวลาอัปโหลด',
status: 'สถานะ',
action: 'การเคลื่อนไหว',
},
rename: 'ตั้งชื่อใหม่',
name: 'ชื่อ',
},
action: {
uploadFile: 'อัปโหลดไฟล์ใหม่',
settings: 'การตั้งค่ากลุ่ม',
addButton: 'เพิ่มก้อน',
add: 'เพิ่มก้อน',
batchAdd: 'เพิ่มแบทช์',
archive: 'หอจดหมายเหตุ',
unarchive: 'ยกเลิกการเก็บถาวร',
delete: 'ลบ',
enableWarning: 'ไม่สามารถเปิดใช้งานไฟล์ที่เก็บถาวรได้',
sync: 'ซิงค์',
},
index: {
enable: 'เปิด',
disable: 'เก',
all: 'ทั้งหมด',
enableTip: 'สามารถจัดทําดัชนีไฟล์ได้',
disableTip: 'ไม่สามารถจัดทําดัชนีไฟล์',
},
status: {
queuing: 'จัด คิว',
indexing: 'ดัชนี',
paused: 'หยุดชั่วคราว',
error: 'ความผิดพลาด',
available: 'มีอยู่',
enabled: 'เปิด',
disabled: 'พิการ',
archived: 'เก็บ ถาวร',
},
empty: {
title: 'ยังไม่มีเอกสาร',
upload: {
tip: 'คุณสามารถอัปโหลดไฟล์ ซิงค์จากเว็บไซต์ หรือจากแอป webb เช่น 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: 'ตกลง, ได้',
},
},
metadata: {
title: 'ข้อมูลเมตา',
desc: 'การติดฉลากข้อมูลเมตาสําหรับเอกสารช่วยให้ AI สามารถเข้าถึงเอกสารได้ทันท่วงทีและเปิดเผยแหล่งที่มาของการอ้างอิงสําหรับผู้ใช้',
dateTimeFormat: 'มมมม ด, ป hh:mm A',
docTypeSelectTitle: 'โปรดเลือกประเภทเอกสาร',
docTypeChangeTitle: 'เปลี่ยนชนิดเอกสาร',
docTypeSelectWarning: 'หากชนิดเอกสารมีการเปลี่ยนแปลง ข้อมูลเมตาที่เติมในขณะนี้จะไม่ถูกเก็บรักษาไว้อีกต่อไป',
firstMetaAction: 'ไปกันเถอะ',
placeholder: {
add: 'เพิ่ม',
select: 'เลือก',
},
source: {
upload_file: 'อัปโหลดไฟล์',
notion: 'ซิงค์แบบฟอร์ม Notion',
github: 'แบบฟอร์มซิงค์ Github',
},
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: 'วันที่เผยแพร่',
topicsKeywords: 'หัวข้อ/คําสําคัญ',
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: 'การแสดงตัวอย่างย่อหน้าจะพร้อมใช้งานหลังจากการฝังเสร็จสิ้น',
},
segment: {
paragraphs: 'ย่อหน้า',
keywords: 'คําสําคัญ',
addKeyWord: 'เพิ่มคําสําคัญ',
keywordError: 'ความยาวสูงสุดของคําหลักคือ 20',
characters: 'อักขระ',
hitCount: 'จํานวนการดึงข้อมูล',
vectorHash: 'แฮชเวกเตอร์:',
questionPlaceholder: 'เพิ่มคําถามที่นี่',
questionEmpty: 'คําถามไม่สามารถว่างเปล่าได้',
answerPlaceholder: 'เพิ่มคําตอบที่นี่',
answerEmpty: 'คําตอบไม่สามารถว่างเปล่าได้',
contentPlaceholder: 'เพิ่มเนื้อหาที่นี่',
contentEmpty: 'เนื้อหาไม่สามารถว่างเปล่าได้',
newTextSegment: 'เซ็กเมนต์ข้อความใหม่',
newQaSegment: 'ส่วนถาม & คําตอบใหม่',
delete: 'ลบส่วนนี้ ?',
},
}
export default translation

View File

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

View File

@ -0,0 +1,38 @@
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: 'เกี่ยวกับวิธีการดึงข้อมูล คุณสามารถเปลี่ยนแปลงได้ตลอดเวลาในการตั้งค่าความรู้',
},
externalKnowledgeAPI: 'API ความรู้ภายนอก',
externalKnowledgeID: 'ID ความรู้ภายนอก',
retrievalSettings: 'การตั้งค่าการดึงข้อมูล',
save: 'ประหยัด',
},
}
export default translation

150
web/i18n/th-TH/dataset.ts Normal file
View File

@ -0,0 +1,150 @@
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: 'ไม่',
unavailableTip: 'โมเดลการฝังไม่พร้อมใช้งาน จําเป็นต้องกําหนดค่าโมเดลการฝังเริ่มต้น',
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: {
title: 'ดัชนีกลับด้าน',
description: 'Inverted Index เป็นโครงสร้างที่ใช้สําหรับการดึงข้อมูลอย่างมีประสิทธิภาพ จัดเรียงตามคําศัพท์ แต่ละคําชี้ไปที่เอกสารหรือหน้าเว็บที่มีคําดังกล่าว',
},
change: 'เปลี่ยน',
changeRetrievalMethod: 'วิธีการเรียกดูการเปลี่ยนแปลง',
},
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 จะเลิกใช้อย่างเป็นทางการในเดือนกันยายน',
}
export default translation

41
web/i18n/th-TH/explore.ts Normal file
View File

@ -0,0 +1,41 @@
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: 'ชั่วโมง',
},
}
export default translation

3
web/i18n/th-TH/layout.ts Normal file
View File

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

109
web/i18n/th-TH/login.ts Normal file
View File

@ -0,0 +1,109 @@
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: 'ไม่พบบัญชี โปรดติดต่อผู้ดูแลระบบเพื่อลงทะเบียน',
},
license: {
tip: 'ก่อนเริ่ม Dify Community Edition โปรดอ่าน GitHub',
link: 'ใบอนุญาตโอเพ่นซอร์ส',
},
join: 'ต่อ',
joinTipStart: 'เชิญคุณเข้าร่วม',
joinTipEnd: 'ทีมงานใน Dify',
invalid: 'ลิงก์หมดอายุ',
explore: 'สํารวจ Dify',
activatedTipStart: 'คุณได้เข้าร่วม',
activatedTipEnd: 'ทีม',
activated: 'ลงชื่อเข้าใช้ตอนนี้',
adminInitPassword: 'รหัสผ่านเริ่มต้นผู้ดูแลระบบ',
validate: 'ตรวจ สอบ',
checkCode: {
checkYourEmail: 'ตรวจสอบอีเมลของคุณ',
tips: 'เราส่งรหัสยืนยันไปที่ <strong>{{email}}</strong>',
validTime: 'โปรดทราบว่ารหัสนี้ใช้ได้นาน 5 นาที',
verificationCode: 'รหัสยืนยัน',
verificationCodePlaceholder: 'ป้อนรหัส 6 หลัก',
verify: 'ตรวจสอบ',
didNotReceiveCode: 'ไม่ได้รับรหัสใช่ไหม',
resend: 'ส่ง',
useAnotherMethod: 'ใช้วิธีอื่น',
emptyCode: 'ต้องใช้รหัส',
invalidCode: 'รหัสไม่ถูกต้อง',
},
resetPassword: 'รีเซ็ตรหัสผ่าน',
resetPasswordDesc: 'พิมพ์อีเมลที่คุณใช้ลงทะเบียนบน Dify แล้วเราจะส่งอีเมลรีเซ็ตรหัสผ่านให้คุณ',
backToLogin: 'กลับไปที่เข้าสู่ระบบ',
setYourAccount: 'ตั้งค่าบัญชีของคุณ',
enterYourName: 'โปรดป้อนชื่อผู้ใช้ของคุณ',
back: 'ย้อนกลับ',
noLoginMethod: 'ไม่ได้กําหนดค่าวิธีการตรวจสอบสิทธิ์',
noLoginMethodTip: 'โปรดติดต่อผู้ดูแลระบบเพื่อเพิ่มวิธีการรับรองความถูกต้อง',
licenseExpired: 'ใบอนุญาตหมดอายุ',
licenseExpiredTip: 'สิทธิ์การใช้งาน Dify Enterprise สําหรับพื้นที่ทํางานของคุณหมดอายุแล้ว โปรดติดต่อผู้ดูแลระบบของคุณเพื่อใช้ Dify ต่อไป',
licenseLost: 'ใบอนุญาตสูญหาย',
licenseLostTip: 'เชื่อมต่อเซิร์ฟเวอร์ใบอนุญาต Dify ไม่สําเร็จ โปรดติดต่อผู้ดูแลระบบของคุณเพื่อใช้ Dify ต่อไป',
licenseInactive: 'ใบอนุญาตไม่ใช้งาน',
licenseInactiveTip: 'สิทธิ์การใช้งาน Dify Enterprise สําหรับพื้นที่ทํางานของคุณไม่ได้ใช้งาน โปรดติดต่อผู้ดูแลระบบของคุณเพื่อใช้ Dify ต่อไป',
}
export default translation

View File

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

29
web/i18n/th-TH/run-log.ts Normal file
View File

@ -0,0 +1,29 @@
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: 'ดูมัน',
},
}
export default translation

View File

@ -0,0 +1,69 @@
const translation = {
common: {
appUnavailable: 'แอพไม่พร้อมใช้งาน',
appUnknownError: 'แอพไม่พร้อมใช้งาน',
},
chat: {
newChat: 'แชทใหม่',
pinnedTitle: 'ปัก หมุด',
unpinnedTitle: 'แมว',
newChatDefaultName: 'การสนทนาใหม่',
resetChat: 'รีเซ็ตการสนทนา',
poweredBy: 'รับพลังมาจาก',
prompt: 'พร้อมท์',
privatePromptConfigTitle: 'การตั้งค่าการสนทนา',
publicPromptConfigTitle: 'พรอมต์เริ่มต้น',
configStatusDes: 'ก่อนเริ่ม คุณสามารถแก้ไขการตั้งค่าการสนทนาได้',
configDisabled: 'มีการใช้การตั้งค่าเซสชันก่อนหน้านี้สําหรับเซสชันนี้',
startChat: 'เริ่มแชท',
privacyPolicyLeft: 'โปรดอ่าน',
privacyPolicyMiddle: 'นโยบายความเป็นส่วนตัว',
privacyPolicyRight: 'จัดทําโดยนักพัฒนาแอป',
deleteConversation: {
title: 'ลบการสนทนา',
content: 'คุณแน่ใจหรือไม่ว่าต้องการลบการสนทนานี้?',
},
tryToSolve: 'พยายามแก้',
temporarySystemIssue: 'ขออภัย ปัญหาระบบชั่วคราว',
},
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: 'โปรดป้อนอย่างน้อยหนึ่งแถวในไฟล์ที่อัปโหลด',
},
},
}
export default translation

153
web/i18n/th-TH/tools.ts Normal file
View File

@ -0,0 +1,153 @@
const translation = {
title: 'เครื่อง มือ',
createCustomTool: 'สร้างเครื่องมือที่กําหนดเอง',
customToolTip: 'เรียนรู้เพิ่มเติมเกี่ยวกับเครื่องมือแบบกําหนดเองของ Dify',
type: {
all: 'ทั้งหมด',
builtIn: 'ในตัว',
custom: 'ธรรมเนียม',
workflow: 'เวิร์กโฟลว์',
},
contribute: {
line1: 'ฉันสนใจใน',
line2: 'เครื่องมือที่มีส่วนร่วมใน Dify',
viewGuide: 'ดูคู่มือ',
},
author: 'โดย',
auth: {
unauthorized: 'การอนุญาต',
authorized: 'อนุญาต',
setup: 'ตั้งค่าการให้สิทธิ์เพื่อใช้',
setupModalTitle: 'ตั้งค่าการให้สิทธิ์',
setupModalTitleDescription: 'หลังจากกําหนดค่าข้อมูลประจําตัวแล้ว สมาชิกทั้งหมดภายในพื้นที่ทํางานสามารถใช้เครื่องมือนี้เมื่อประสานงานแอปพลิเคชันได้',
},
includeToolNum: '{{num}} รวมเครื่องมือ',
addTool: 'เพิ่มเครื่องมือ',
addToolModal: {
type: 'ประเภท',
category: 'ประเภท',
add: 'เพิ่ม',
added: 'เพิ่ม',
manageInTools: 'จัดการในเครื่องมือ',
emptyTitle: 'ไม่มีเครื่องมือเวิร์กโฟลว์',
emptyTip: 'ไปที่ "เวิร์กโฟลว์ -> เผยแพร่เป็นเครื่องมือ"',
},
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: 'ไม่มีใคร',
api_key: 'คีย์ API',
apiKeyPlaceholder: 'ชื่อส่วนหัว HTTP สําหรับคีย์ API',
apiValuePlaceholder: 'ป้อนคีย์ API',
},
key: 'กุญแจ',
value: 'ค่า',
},
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: 'ข้อมูลและการตั้งค่า',
},
noCustomTool: {
title: 'ไม่มีเครื่องมือที่กําหนดเอง!',
content: 'เพิ่มและจัดการเครื่องมือที่กําหนดเองของคุณที่นี่สําหรับการสร้างแอป AI',
createTool: 'สร้างเครื่องมือ',
},
noSearchRes: {
title: 'ขออภัย ไม่มีผลลัพธ์!',
content: 'เราไม่พบเครื่องมือที่ตรงกับการค้นหาของคุณ',
reset: 'รีเซ็ตการค้นหา',
},
builtInPromptTitle: 'พร้อมท์',
toolRemoved: 'เครื่องมือถูกลบออก',
notAuthorized: 'เครื่องมือไม่ได้รับอนุญาต',
howToGet: 'วิธีรับ',
openInStudio: 'เปิดในสตูดิโอ',
toolNameUsageTip: 'ชื่อการเรียกเครื่องมือสําหรับการใช้เหตุผลและการแจ้งเตือนของตัวแทน',
}
export default translation

635
web/i18n/th-TH/workflow.ts Normal file
View File

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