Files
Checkmate/client/src/locales/th.json
T
gorkem-bwl dad32bc475 fix(client): translate the dashboard, drop redundant font sizes, reword the header
Three fixes from an audit of the dashboard against docs/coding-conventions.md.

Translations. The dashboard shipped English-only: all 18 other locales
had an empty pages.dashboard block, so every non-English user saw raw key
paths like pages.dashboard.cards.monitorStatus.title. All 18 are now
seeded, reusing each locale's own existing vocabulary for uptime,
incidents, checks and so on so the dashboard reads consistently with the
rest of that translation. Verified: all 91 keys the code uses resolve in
all 19 locales, with no interpolation placeholder mismatches.

Rule 3. Thirty-one fontSize={typographyLevels.m} props removed. The
conventions doc is explicit that 13px is the body default and the prop
should be dropped entirely; setting it to the token was my error while
fixing an earlier font-size complaint. Only the two xxl figures keep an
explicit size, which is correct. Nine now-dead typographyLevels imports
went with them.

Header description. "What is wrong right now, across every monitor type."
was a negative sentence fragment; every other page uses a full sentence
describing what the page gives you and why it helps. Reworded to match.

Rules 1, 2, 4, 5 and the i18n rule already passed and needed no change.

Claude-Session: https://claude.ai/code/session_01AbYLvwpEaZFXktHVcqrFRd
2026-08-29 11:37:10 -04:00

1684 lines
82 KiB
JSON

{
"common": {
"auth": {
"roles": {
"admin": "ผู้ดูแลระบบ",
"demo": "สาธิต",
"superadmin": "ผู้ดูแลระบบสูงสุด",
"user": "ผู้ใช้"
}
},
"alerts": {
"pageSpeedApiKey": {
"content": "คำเตือน: คุณยังไม่ได้เพิ่ม API key ของ Google PageSpeed ไปที่<settingsLink>การตั้งค่า</settingsLink>เพื่อเพิ่ม หากไม่มี ระบบตรวจสอบ PageSpeed จะไม่ทำงาน"
}
},
"appName": "Checkmate",
"breadcrumbs": {
"details": "รายละเอียด",
"home": "หน้าหลัก"
},
"buttons": {
"addMember": "เพิ่มสมาชิก",
"cancel": "ยกเลิก",
"close": "ปิด",
"configure": "ตั้งค่า",
"confirm": "ยืนยัน",
"create": "สร้าง",
"delete": "ลบ",
"generateToken": "สร้างโทเค็น",
"incidents": "เหตุการณ์",
"inviteMember": "เชิญสมาชิก",
"pause": "หยุดชั่วคราว",
"resume": "ดำเนินการต่อ",
"save": "บันทึก",
"sendInvite": "ส่งคำเชิญ",
"test": "ทดสอบ",
"testNotifications": "ทดสอบการแจ้งเตือน",
"toggleTheme": "สลับโหมดสว่าง & มืด",
"flushQueue": "ล้างคิว",
"notFound": "ไปยังแดชบอร์ดหลัก",
"resetPassword": "รีเซ็ตรหัสผ่าน",
"reset": "รีเช็ต",
"clear": "ล้าง",
"addDemo": "เพิ่มมอนิเตอร์สาธิต",
"removeMonitors": "ลบมอนิเตอร์",
"sendTestEmail": "ส่งอีเมลทดสอบ",
"exportToJSON": "ส่งออกเป็น JSON",
"importFromJSON": "นำเข้าจาก JSON",
"clearFilters": "ล้างตัวกรอง",
"removeUser": "ลบผู้ใช้"
},
"charts": {
"labels": {
"averageResponseTime": "เวลาตอบสนองเฉลี่ย",
"downtime": "ดาวน์ไทม์",
"high": "สูง",
"low": "ต่ำ",
"uptime": "อัปไทม์"
},
"histogram": {
"avg": "เฉลี่ย: {{value}}",
"max": "สูงสุด: {{value}}"
}
},
"dialogs": {
"delete": {
"description": "การกระทำนี้ไม่สามารถย้อนกลับได้",
"title": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้?"
}
},
"labels": {
"active": "ใช้งานอยู่",
"paused": "หยุดชั่วคราว",
"na": "ไม่มีข้อมูล",
"resolved": "แก้ไขแล้ว",
"responseTime": "เวลาตอบสนอง",
"idle": "ไม่ทำงาน",
"running": "กำลังทำงาน"
},
"form": {
"role": {
"option": {
"role": {
"label": "บทบาท"
}
}
},
"name": {
"option": {
"firstName": {
"label": "ชื่อ",
"placeholder": "Brownyroll"
},
"lastName": {
"label": "นามสกุล",
"placeholder": "."
}
}
},
"email": {
"option": {
"email": {
"label": "อีเมล",
"placeholder": "you@example.com"
}
}
}
},
"table": {
"empty": "ไม่มีข้อมูล",
"headers": {
"actions": "จัดการ",
"dateTime": "วันที่และเวลา",
"message": "ข้อความ",
"monitor": "มอนิเตอร์",
"monitorId": "รหัสมอนิเตอร์",
"name": "ชื่อ",
"status": "สถานะ",
"type": "ประเภท",
"url": "URL",
"interval": "ช่วงเวลา",
"active": "ใช้งานอยู่",
"responseTime": "เวลาตอบสนอง"
}
},
"statusCode": {
"down": "ไม่พร้อมใช้งาน",
"networkError": {
"dns": "ไม่สามารถแก้ไขชื่อโฮสต์ได้ (การค้นหา DNS ล้มเหลว)",
"refused": "เซิร์ฟเวอร์ปฏิเสธการเชื่อมต่อ (พอร์ตปิดอยู่หรือบริการไม่ได้รับฟัง)",
"reset": "การเชื่อมต่อถูกรีเซ็ตก่อนที่จะได้รับการตอบกลับ",
"timeout": "เซิร์ฟเวอร์ไม่ตอบกลับทันเวลา (คำขอหมดเวลา)",
"tls": "การจับมือ TLS หรือ SSL ล้มเหลว (ปัญหาใบรับรองหรือการเข้ารหัส)",
"unknown": "ไม่ได้รับการตอบกลับ HTTP จากเป้าหมาย"
}
}
},
"components": {
"imageUpload": {
"clickToUpload": "คลิกเพื่ออัปโหลด",
"dragAndDrop": "ลากและวางเลย",
"supportedFormats": "รูปแบบที่รองรับ",
"maxSize": "ขนาดสูงสุด",
"orDragAndDrop": "หรือลากและวาง",
"errors": {
"invalidFileSize": "ขนาดไฟล์ใหญ่เกินไป!",
"invalidFileFormat": "รูปแบบไฟล์ไม่รองรับ!"
}
},
"headerStatusPageControls": {
"publicLink": "ลิงก์สาธารณะ"
},
"headerTimeRange": {
"labels": {
"day": "วัน",
"month": "เดือน",
"recent": "ล่าสุด",
"week": "สัปดาห์"
},
"description": {
"recent": "แสดงสถิติย้อนหลัง 2 ชั่วโมง",
"day": "แสดงสถิติย้อนหลัง 24 ชั่วโมง",
"week": "แสดงสถิติย้อนหลัง 7 วัน",
"month": "แสดงสถิติย้อนหลัง 30 วัน"
}
},
"offlineBanner": {
"serverUnreachable": "ไม่สามารถเชื่อมต่อเซิร์ฟเวอร์ได้",
"retry": "ลองอีกครั้ง",
"retrying": "กำลังลองอีกครั้ง...",
"reconnected": "เชื่อมต่อกับเซิร์ฟเวอร์สำเร็จแล้ว"
},
"sidebar": {
"menu": {
"uptime": "ความพร้อมใช้งาน",
"pagespeed": "ความเร็วหน้าเว็บ",
"infrastructure": "โครงสร้างพื้นฐาน",
"notifications": "การแจ้งเตือน",
"checks": "การตรวจสอบ",
"incidents": "เหตุการณ์",
"statusPages": "หน้าสถานะ",
"maintenance": "การบำรุงรักษา",
"logs": "บันทึก",
"settings": "การตั้งค่า",
"dashboard": "แดชบอร์ด"
},
"bottomMenu": {
"support": "การสนับสนุน",
"discussions": "การสนทนา",
"docs": "เอกสาร",
"changelog": "บันทึกการเปลี่ยนแปลง"
},
"accountMenu": {
"profile": "โปรไฟล์",
"password": "รหัสผ่าน",
"team": "ทีม"
},
"starPrompt": {
"title": "ให้ดาว Checkmate",
"description": "ดูรุ่นล่าสุดและช่วยเติบโตชุมชนบน GitHub"
},
"authFooter": {
"navControls": "การควบคุม",
"logOut": "ออกจากระบบ",
"roles": {
"superAdmin": "ผู้ดูแลระบบสูงสุด",
"admin": "ผู้ดูแลระบบ",
"user": "ผู้ใช้",
"demoUser": "ผู้ใช้ Demo"
}
}
},
"starPrompt": {
"title": "ให้ดาว Checkmate",
"description": "ดูรุ่นล่าสุดและช่วยเติบโตชุมชนบน GitHub"
},
"pageHeader": {
"links": {
"support": "ฝ่ายสนับสนุน",
"discussions": "การสนทนา",
"docs": "เอกสาร",
"changelog": "บันทึกการเปลี่ยนแปลง"
}
}
},
"pages": {
"dashboard": {
"header": {
"title": "แดชบอร์ด",
"description": "ดู uptime โครงสร้างพื้นฐาน เหตุการณ์ และการตรวจสอบในที่เดียว เพื่อสังเกตสิ่งที่ต้องดูแลโดยไม่ต้องเปิดทุกหน้า"
},
"card": {
"error": "ไม่สามารถโหลดการ์ดนี้ได้"
},
"cards": {
"monitorStatus": {
"title": "สถานะตัวตรวจสอบ",
"empty": "ยังไม่มีตัวตรวจสอบ",
"upOfTotal": "จาก {{total}} ที่ทำงาน"
},
"currentlyDown": {
"title": "ขณะนี้ล่ม",
"empty": "ตัวตรวจสอบทั้งหมดทำงานอยู่ ไม่มีเหตุการณ์ที่เปิดค้าง",
"count": "{{count}} รายการต้องดูแล"
},
"monitorsByType": {
"title": "ตัวตรวจสอบตามประเภท",
"empty": "ยังไม่มีตัวตรวจสอบ",
"down": "ล่ม {{count}} รายการ"
},
"recentIncidents": {
"title": "เหตุการณ์ล่าสุด",
"empty": "ไม่มีเหตุการณ์ — ทุกระบบปกติ",
"active": "เปิดอยู่ {{count}} รายการ",
"ongoing": "กำลังดำเนินอยู่",
"manual": "ด้วยตนเอง",
"unknownMonitor": "ตัวตรวจสอบที่ไม่รู้จัก"
},
"failedChecks": {
"title": "การตรวจสอบที่ล้มเหลว",
"empty": "ยังไม่มีการตรวจสอบ",
"ratio": "{{failed}} จาก {{total}} ในวันที่ผ่านมา"
},
"checkmateServer": {
"title": "เซิร์ฟเวอร์ Checkmate",
"memory": "หน่วยความจำ",
"eventLoop": "ความหน่วงของ event loop",
"uptime": "เวลาทำงาน",
"database": "ฐานข้อมูล",
"readsWrites": "อ่าน {{reads}}/วิ · เขียน {{writes}}/วิ"
},
"ranking": {
"topOf": "อันดับต้น {{shown}} จาก {{total}}",
"notEnough": "มีตัวตรวจสอบไม่พอสำหรับจัดอันดับ"
},
"slowestMonitors": {
"title": "ตัวตรวจสอบที่ช้าที่สุด"
},
"lowestUptime": {
"title": "uptime ต่ำที่สุด"
},
"monitorsByGroup": {
"title": "ตัวตรวจสอบตามกลุ่ม",
"empty": "ยังไม่มีกลุ่ม กลุ่มถูกกำหนดในแต่ละตัวตรวจสอบ"
},
"busiestServers": {
"title": "เซิร์ฟเวอร์ที่ใช้งานหนักที่สุด",
"empty": "ยังไม่มีตัวตรวจสอบโครงสร้างพื้นฐาน",
"cpu": "CPU",
"memory": "หน่วยความจำ",
"disk": "ดิสก์"
},
"incidentStats": {
"title": "สถิติเหตุการณ์",
"openNow": "เปิดอยู่ตอนนี้",
"avgResolution": "เวลาแก้ไขโดยเฉลี่ย",
"hours": "{{hours}} ชม.",
"mostIncidents": "เหตุการณ์มากที่สุด",
"total": "ทั้งหมด",
"resolved": "แก้ไขแล้ว",
"automatic": "อัตโนมัติ",
"manual": "ด้วยตนเอง",
"autoManual": "อัตโนมัติ {{automatic}} · ด้วยตนเอง {{manual}}"
},
"notificationChannels": {
"title": "ช่องทางการแจ้งเตือน",
"empty": "ยังไม่มีช่องทาง"
},
"maintenance": {
"title": "ช่วงเวลาบำรุงรักษา",
"empty": "ไม่มีการบำรุงรักษาที่กำหนดไว้",
"runningNow": "กำลังดำเนินการ",
"next": "ช่วงถัดไป"
},
"statusPages": {
"title": "หน้าสถานะ",
"empty": "ยังไม่มีหน้าสถานะ",
"monitorCount": "{{count}} ตัวตรวจสอบ",
"published": "เผยแพร่แล้ว",
"draft": "ฉบับร่าง"
},
"checksOnSchedule": {
"title": "คิวการตรวจสอบ",
"healthy": "งานทั้ง {{jobs}} รายการเป็นไปตามกำหนดบน {{workers}} worker",
"failing": "งานที่ล้มเหลว",
"scheduled": "งานที่กำหนดเวลาไว้",
"runningNow": "กำลังดำเนินการ"
},
"recentErrors": {
"title": "ข้อผิดพลาดล่าสุด",
"empty": "ไม่มีข้อผิดพลาดที่บันทึกไว้",
"count": "{{count}} ข้อผิดพลาด",
"warnings": "คำเตือน"
},
"team": {
"title": "สมาชิกทีม",
"members": "{{count}} สมาชิก",
"unverified": "ยังไม่ยืนยัน"
}
},
"picker": {
"trigger": "แก้ไขการ์ด",
"title": "การ์ดแดชบอร์ด",
"done": "เสร็จสิ้น",
"reset": "รีเซ็ตเป็นค่าเริ่มต้น",
"groups": {
"uptime": "Uptime",
"infrastructure": "โครงสร้างพื้นฐาน",
"incidents": "เหตุการณ์",
"notifications": "การแจ้งเตือน",
"maintenance": "การบำรุงรักษา",
"statusPages": "หน้าสถานะ",
"checks": "การตรวจสอบ",
"logs": "ระบบ",
"settings": "การตั้งค่า"
}
},
"empty": {
"title": "ไม่มีการ์ดบนแดชบอร์ดของคุณ",
"description": "เลือกการ์ดที่ต้องการเห็น การเลือกของคุณจะถูกจดจำในเบราว์เซอร์นี้"
},
"reorder": {
"moveUp": "เลื่อนขึ้น",
"moveDown": "เลื่อนลง"
}
},
"notFound": {
"title": "โอ้ไม่! ซูชิของคุณหล่นแล้ว!",
"subtitle": "URL ไม่มีอยู่ หรือคุณไม่มีสิทธิ์เข้าถึง"
},
"account": {
"tabs": {
"profile": "โปรไฟล์",
"password": "รหัสผ่าน",
"team": "ทีม"
},
"form": {
"name": {
"title": "ชื่อ",
"description": "อัปเดตข้อมูลส่วนตัวของคุณ"
},
"photo": {
"title": "รูปโปรไฟล์",
"description": "อัปโหลดรูปโปรไฟล์"
},
"currentPassword": {
"title": "รหัสผ่านปัจจุบัน",
"description": "กรอกรหัสผ่านปัจจุบันเพื่อยืนยันตัวตน",
"option": {
"label": "รหัสผ่านปัจจุบัน",
"placeholder": "กรอกรหัสผ่านปัจจุบัน"
}
},
"newPassword": {
"title": "รหัสผ่านใหม่",
"description": "เลือกรหัสผ่านที่รัดกุมอย่างน้อย 8 ตัวอักษร",
"option": {
"newPassword": {
"label": "รหัสผ่านใหม่",
"placeholder": "กรอกรหัสผ่านใหม่"
},
"confirm": {
"label": "ยืนยันรหัสผ่าน",
"placeholder": "ยืนยันรหัสผ่านใหม่"
}
}
},
"deleteAccount": {
"title": "ลบบัญชี",
"description": "การกระทำนี้เป็นการถาวรและไม่สามารถย้อนกลับได้"
}
},
"team": {
"filter": {
"placeholder": "กรองตามบทบาท",
"all": "ทั้งหมด",
"admin": "ผู้ดูแลระบบ",
"member": "สมาชิก"
},
"table": {
"headers": {
"email": "อีเมล",
"role": "บทบาท",
"created": "สร้างเมื่อ"
}
},
"addMember": {
"title": "ลงทะเบียนสมาชิกทีมใหม่",
"description": "สร้างบัญชีผู้ใช้ใหม่ แชร์ข้อมูลรับรองอย่างปลอดภัยหลังสร้าง"
},
"invite": {
"title": "เชิญสมาชิกทีม",
"description": "ส่งคำเชิญเข้าร่วมทีม",
"email": {
"label": "ที่อยู่อีเมล",
"placeholder": "กรอกที่อยู่อีเมล"
},
"role": {
"label": "บทบาท",
"placeholder": "เลือกบทบาท"
},
"linkLabel": "ลิงก์เชิญ"
},
"fallback": {
"title": "ยังไม่มีสมาชิกทีม",
"description": "เชิญเพื่อนร่วมทีมทางอีเมลหรือเพิ่มพวกเขาโดยตรง เมื่อพวกเขาเข้าร่วม พวกเขาจะปรากฏที่นี่พร้อมบทบาทของพวกเขา"
}
},
"header": {
"title": "บัญชี",
"description": "จัดการโปรไฟล์ รหัสผ่าน ทีม และการตั้งค่าพื้นที่ทำงานของคุณ"
}
},
"auth": {
"brandPanel": {
"eyebrow": "การมอนิเตอร์โครงสร้างพื้นฐานโอเพนซอร์ส",
"tagline": "คอยจับตาดูทุกการเคลื่อนไหวของเซิร์ฟเวอร์ของคุณ",
"description": "ติดตามสถานะ เวลาตอบสนอง และเหตุการณ์ผิดปกติแบบเรียลไทม์ - โฮสต์เองและเป็นของคุณ"
},
"common": {
"passwordRules": {
"length": {
"beginning": "ต้องมีความยาวอย่างน้อย",
"highlighted": "8 ตัวอักษร"
},
"lowercase": {
"beginning": "ต้องมีอย่างน้อย",
"highlighted": "ตัวอักษรเล็ก 1 ตัว"
},
"match": {
"beginning": "รหัสผ่าน",
"highlighted": "ต้องตรงกัน"
},
"number": {
"beginning": "ต้องมีอย่างน้อย",
"highlighted": "ตัวเลข 1 ตัว"
},
"special": {
"beginning": "ต้องมีอย่างน้อย",
"highlighted": "อักขระพิเศษ 1 ตัว"
},
"uppercase": {
"beginning": "ต้องมีอย่างน้อย",
"highlighted": "ตัวอักษรใหญ่ 1 ตัว"
}
},
"form": {
"option": {
"email": {
"label": "อีเมล",
"placeholder": "me@example.com"
},
"password": {
"label": "รหัสผ่าน",
"placeholder": "********"
},
"confirmPassword": {
"label": "ยืนยันรหัสผ่าน"
}
}
}
},
"login": {
"title": "ยินดีต้อนรับกลับสู่ Checkmate!",
"subtitle": "เข้าสู่ระบบเพื่อดำเนินการต่อ",
"submit": "เข้าสู่ระบบ",
"links": {
"forgotPassword": {
"text": "ลืมรหัสผ่าน?",
"linkText": "รีเซ็ตรหัสผ่าน"
},
"register": {
"text": "ยังไม่มีบัญชี?",
"linkText": "ลงทะเบียนที่นี่"
}
}
},
"register": {
"title": "ยินดีต้อนรับกลับสู่ Checkmate!",
"subtitle": "สมัครสมาชิกเพื่อเริ่มต้น",
"submit": "ลงทะเบียน",
"setupNotice": "หน้านี้พร้อมใช้งานเฉพาะระหว่างการตั้งค่าเริ่มต้นเท่านั้น เมื่อลงทะเบียนผู้ดูแลระบบสูงสุดแล้ว สามารถเชิญผู้ใช้เพิ่มเติมได้จากการตั้งค่าทีม"
},
"forgotPassword": {
"title": "ลืมรหัสผ่านใช่ไหม?",
"subtitle": "ไม่ต้องกังวล เราจะส่งคำแนะนำการรีเซ็ตให้คุณ",
"submit": "ขอกู้คืนรหัสผ่าน",
"links": {
"login": {
"text": "กลับไปยัง",
"linkText": "เข้าสู่ระบบ"
}
}
},
"setNewPassword": {
"title": "รีเซ็ตรหัสผ่านของคุณ",
"subtitle": "รหัสผ่านใหม่ต้องแตกต่างจากรหัสผ่านที่เคยใช้ก่อนหน้า"
}
},
"checks": {
"selects": {
"monitor": {
"all": "มอนิเตอร์ทั้งหมด"
},
"status": {
"all": "ทั้งหมด",
"down": "ล่ม",
"up": "ปกติ"
}
},
"table": {
"empty": "ไม่พบการตรวจสอบที่ล้มเหลวในช่วงเวลานี้",
"headers": {
"statusCode": "รหัสสถานะ",
"location": "ตำแหน่ง"
}
},
"fallback": {
"title": "ยังไม่มีการตรวจสอบ",
"description": "เมื่อคุณสร้างตัวตรวจสอบ การตรวจสอบสถานะและเวลาตอบสนองทุกครั้งจะปรากฏที่นี่เป็นการตรวจสอบ"
},
"header": {
"title": "การตรวจสอบ",
"description": "การตรวจสอบทุกครั้งที่ Checkmate ทำกับตัวตรวจสอบของคุณจะปรากฏที่นี่พร้อมรหัสสถานะและเวลาตอบสนอง"
}
},
"common": {
"monitors": {
"actions": {
"configure": "ตั้งค่า",
"delete": "ลบ",
"generateToken": "สร้างโทเค็น",
"details": "รายละเอียด",
"incidents": "เหตุการณ์",
"inviteMember": "เชิญสมาชิก",
"openSite": "เปิดเว็บไซต์",
"pause": "หยุดชั่วคราว",
"resume": "ดำเนินการต่อ",
"selectAll": "เลือกจอภาพทั้งหมด",
"selectMonitor": "เลือก {{name}}",
"bulkSelected_one": "เลือกแล้ว {{count}} จอภาพ",
"bulkSelected_other": "เลือกแล้ว {{count}} จอภาพ"
},
"statBoxes": {
"activeFor": "ทำงานมาแล้ว",
"certificateExpiry": "วันหมดอายุใบรับรอง",
"lastCheck": "ตรวจสอบล่าสุด",
"lastResponseTime": "เวลาตอบสนองล่าสุด",
"serviceIsDown": "บริการขัดข้อง"
},
"status": {
"down": "ล่ม",
"breached": "เกินเกณฑ์",
"initializing": "กำลังเริ่มต้น",
"maintenance": "บำรุงรักษา",
"paused": "หยุดชั่วคราว",
"total": "ทั้งหมด",
"up": "ปกติ"
},
"monitorTypes": {
"optionDocker": "Docker",
"optionGame": "เกม",
"optionHttp": "HTTP(S)",
"optionPing": "Ping",
"optionPort": "พอร์ต",
"optionPagespeed": "PageSpeed",
"optionHardware": "โครงสร้างพื้นฐาน",
"optionGrpc": "gRPC",
"optionWebSocket": "WebSocket",
"optionDns": "DNS"
},
"bulkPause": {
"paused_one": "หยุดจอภาพชั่วคราว {{count}} จอ",
"paused_other": "หยุดจอภาพชั่วคราว {{count}} จอ",
"resumed_one": "กลับมาทำงานต่อ {{count}} จอ",
"resumed_other": "กลับมาทำงานต่อ {{count}} จอ",
"alreadyPaused_one": "จอภาพที่เลือกถูกหยุดชั่วคราวแล้ว",
"alreadyPaused_other": "จอภาพที่เลือกทั้งหมดถูกหยุดชั่วคราวแล้ว",
"alreadyRunning_one": "จอภาพที่เลือกกำลังทำงานอยู่แล้ว",
"alreadyRunning_other": "จอภาพที่เลือกทั้งหมดกำลังทำงานอยู่แล้ว",
"partialFailure": "อัปเดตมอนิเตอร์ {{successCount}} รายการแล้ว แต่ {{failedCount}} รายการไม่สามารถซิงค์กับคิวงานได้"
}
}
},
"createMonitor": {
"form": {
"advanced": {
"description": "ตั้งค่าเพิ่มเติมสำหรับกรณีใช้งานขั้นสูง",
"option": {
"advancedMatching": {
"label": "ใช้การจับคู่ขั้นสูง"
},
"expectedValue": {
"label": "ค่าที่คาดหวัง"
},
"jsonPath": {
"description": "นิพจน์นี้จะถูกประเมินกับข้อมูล JSON ที่ตอบกลับ และผลลัพธ์จะถูกใช้จับคู่กับค่าที่คาดหวัง ดูเอกสาร query language ที่ <jmesLink>jmespath.org</jmesLink>",
"label": "นิพจน์ JSONPath"
},
"matchMethod": {
"label": "วิธีการจับคู่",
"equal": "เท่ากับ",
"include": "รวม",
"regex": "Regex"
}
},
"title": "ตั้งค่าขั้นสูง"
},
"frequency": {
"description": "คุณต้องการตรวจสอบสถานะของมอนิเตอร์นี้บ่อยแค่ไหน?",
"option": {
"frequency": {
"label": "ความถี่การตรวจสอบ",
"value": {
"fifteenMinutes": "15 นาที",
"fifteenSeconds": "15 วินาที",
"fiveMinutes": "5 นาที",
"fourMinutes": "4 นาที",
"oneMinute": "1 นาที",
"tenMinutes": "10 นาที",
"thirtyMinutes": "30 นาที",
"thirtySeconds": "30 วินาที",
"threeMinutes": "3 นาที",
"twoMinutes": "2 นาที"
}
}
},
"title": "ความถี่การตรวจสอบ"
},
"general": {
"option": {
"container": {
"label": "ชื่อ/ID คอนเทนเนอร์",
"placeholder": "my-app หรือ abcd1234"
},
"host": {
"label": "โฮสต์",
"placeholder": "192.168.1.100 หรือ example.com"
},
"name": {
"label": "ชื่อที่แสดง",
"placeholder": "เช่น เว็บไซต์ของฉัน"
},
"secret": {
"label": "รหัสลับสำหรับยืนยันตัวตน",
"placeholder": "กรอกรหัสลับของคุณ"
},
"url": {
"label": "URL",
"placeholder": "https://www.google.com"
},
"game": {
"label": "URL ที่ต้องการมอนิเตอร์",
"placeholder": "localhost"
},
"port": {
"label": "พอร์ตที่ต้องการตรวจสอบ",
"placeholder": "80"
},
"grpcServiceName": {
"label": "ชื่อบริการ",
"placeholder": "เช่น my.service.v1 (เว้นว่างสำหรับสถานะสุขภาพโดยรวม)"
},
"wsUrl": {
"label": "URL ของ WebSocket",
"placeholder": "wss://example.com/socket"
},
"captureUrl": {
"label": "ปลายทาง Capture",
"placeholder": "http://192.168.1.10:5001/api/v1/metrics"
},
"dnsRecordType": {
"label": "ประเภทเรกคอร์ด DNS",
"value": {
"A": "A",
"AAAA": "AAAA",
"CNAME": "CNAME",
"MX": "MX",
"NS": "NS",
"TXT": "TXT"
}
},
"dnsServer": {
"label": "เซิร์ฟเวอร์ DNS",
"placeholder": "8.8.8.8"
},
"strategy": {
"desktop": "เดสก์ท็อป",
"label": "กลยุทธ์",
"mobile": "มือถือ"
}
},
"title": "ตั้งค่าทั่วไป",
"description": {
"http": "กรอก URL หรือ IP ที่ต้องการตรวจสอบ (เช่น https://example.com/ หรือ 192.168.1.100) และตั้งชื่อที่แสดงบนแดชบอร์ด",
"ping": "กรอกที่อยู่ IP หรือชื่อโฮสต์ที่ต้องการ ping (เช่น 192.168.1.100 หรือ example.com) และตั้งชื่อที่ชัดเจนให้แสดงบนแดชบอร์ด",
"port": "กรอก URL หรือ IP ของเซิร์ฟเวอร์ หมายเลขพอร์ต และตั้งชื่อที่ชัดเจนให้แสดงบนแดชบอร์ด",
"docker": "กรอกชื่อหรือ ID ของคอนเทนเนอร์ Docker คุณสามารถใช้ชื่อคอนเทนเนอร์ (เช่น my-app) หรือ ID ของคอนเทนเนอร์ (ID เต็ม 64 ตัวอักษร หรือ ID สั้น)",
"game": "กรอกที่อยู่ IP หรือชื่อโฮสต์และหมายเลขพอร์ตเพื่อทำการ ping (เช่น 192.168.1.100 หรือ example.com) และเลือกประเภทเกม เกมบางเกมต้องเปิดใช้งานการสอบถามเซิร์ฟเวอร์ในไฟล์การตั้งค่า — โปรดดูเอกสารของเซิร์ฟเวอร์เกมของคุณ ดู<gamedigLink>รายการเกมที่รองรับ</gamedigLink>สำหรับรายละเอียดของโปรโตคอล",
"pagespeed": "ติดตามประสิทธิภาพการโหลดหน้า Core Web Vitals และคะแนนการเพิ่มประสิทธิภาพของเว็บไซต์",
"grpc": "กรอกชื่อโฮสต์และพอร์ตของเซิร์ฟเวอร์ gRPC ระบุชื่อบริการสำหรับ health check (ไม่บังคับ) และตั้งชื่อที่แสดง",
"websocket": "กรอก URL ของ WebSocket ที่ต้องการตรวจสอบ (เช่น wss://example.com/socket) และตั้งชื่อที่แสดง",
"hardware": "ตรวจสอบการใช้ CPU หน่วยความจำ ดิสก์ และอุณหภูมิของโครงสร้างพื้นฐานของคุณ URL ของปลายทาง Capture ต้องรวมเส้นทางแบบเต็ม /api/v1/metrics (ตัวอย่าง: http://192.168.1.10:5001/api/v1/metrics) สำหรับรหัสลับสำหรับยืนยันตัวตน ให้วางเฉพาะสตริงโทเค็น — อย่ารวมคำว่า 'Bearer'",
"dns": "ติดตามว่าเซิร์ฟเวอร์ DNS เฉพาะตอบกลับหรือไม่"
}
},
"ignoreTls": {
"description": "กำหนดค่าการตรวจสอบใบรับรอง TLS/SSL สำหรับการเชื่อมต่อ HTTPS",
"option": {
"tls": {
"label": "ข้ามข้อผิดพลาด TLS/SSL"
}
},
"title": "ตั้งค่า TLS/SSL"
},
"incidents": {
"description": "ใช้หน้าต่างเลื่อนเพื่อกำหนดว่ามอนิเตอร์ล่มเมื่อใด สถานะของมอนิเตอร์จะเปลี่ยนเมื่อเปอร์เซ็นต์การตรวจสอบในหน้าต่างเลื่อนตรงตามค่าที่กำหนด",
"option": {
"checks": {
"label": "จำนวนการตรวจสอบในหน้าต่างเลื่อน"
},
"percentage": {
"label": "เปอร์เซ็นต์การตรวจสอบในหน้าต่างเลื่อนที่ล้มเหลว/สำเร็จก่อนเปลี่ยนสถานะมอนิเตอร์?"
}
},
"title": "เหตุการณ์"
},
"notifications": {
"description": "เลือกช่องทางการแจ้งเตือนที่คุณต้องการใช้",
"title": "การแจ้งเตือน"
},
"type": {
"description": "เลือกประเภทการตรวจสอบที่ต้องการ",
"optionDockerDescription": "ใช้ Docker เพื่อตรวจสอบว่าคอนเทนเนอร์กำลังทำงานอยู่",
"optionGameDescription": "ตรวจสอบว่าเซิร์ฟเวอร์เกมเฉพาะออนไลน์อยู่หรือไม่",
"optionGrpcDescription": "ตรวจสอบบริการ gRPC โดยใช้ Health Checking Protocol มาตรฐาน",
"optionWebSocketDescription": "ตรวจสอบ WebSocket endpoint สำหรับสุขภาพการเชื่อมต่อและเวลาตอบสนอง",
"optionHttpDescription": "ใช้ HTTP(S) เพื่อตรวจสอบเว็บไซต์หรือ API endpoint",
"optionPingDescription": "ใช้ ICMP Ping เพื่อตรวจสอบว่าเซิร์ฟเวอร์ออนไลน์อยู่หรือไม่",
"optionPortDescription": "ตรวจสอบว่าพอร์ตเฉพาะบนเซิร์ฟเวอร์เปิดอยู่หรือไม่",
"title": "ประเภท",
"optionDnsDescription": "ติดตามว่าเซิร์ฟเวอร์ DNS เฉพาะตอบกลับหรือไม่"
},
"thresholds": {
"title": "เกณฑ์การแจ้งเตือน",
"description": "กำหนดเกณฑ์ที่ควรทริกเกอร์การแจ้งเตือนสำหรับมอนิเตอร์ฮาร์ดแวร์นี้",
"option": {
"cpuThreshold": {
"label": "เกณฑ์แจ้งเตือน CPU (%)"
},
"memoryThreshold": {
"label": "เกณฑ์แจ้งเตือนหน่วยความจำ (%)"
},
"diskThreshold": {
"label": "เกณฑ์แจ้งเตือนดิสก์ (%)"
},
"tempThreshold": {
"label": "เกณฑ์แจ้งเตือนอุณหภูมิ (°C)"
}
}
},
"geoChecks": {
"title": "การตรวจสอบแบบกระจายทางภูมิศาสตร์",
"description": "เรียกใช้การตรวจสอบจากหลายตำแหน่งทางภูมิศาสตร์เพื่อตรวจสอบความพร้อมใช้งานและประสิทธิภาพทั่วโลก",
"option": {
"enabled": {
"label": "เปิดใช้งานการตรวจสอบแบบกระจายทางภูมิศาสตร์"
},
"locations": {
"label": "ตำแหน่ง",
"placeholder": "เลือกตำแหน่ง",
"options": {
"EU": "ยุโรป",
"NA": "อเมริกาเหนือ",
"AS": "เอเชีย",
"SA": "อเมริกาใต้",
"AF": "แอฟริกา",
"OC": "โอเชียเนีย"
}
},
"interval": {
"label": "ช่วงเวลาตรวจสอบ",
"value": {
"fiveMinutes": "5 นาที",
"tenMinutes": "10 นาที",
"fifteenMinutes": "15 นาที",
"thirtyMinutes": "30 นาที"
}
}
}
},
"url": {
"title": "แสดง IP/URL ของมอนิเตอร์บนหน้าสถานะ",
"description": "แสดง IP หรือ URL ของมอนิเตอร์บนหน้าสถานะสาธารณะ หากปิดใช้งาน จะแสดงเฉพาะชื่อมอนิเตอร์เพื่อปกป้องข้อมูลที่ละเอียดอ่อน",
"option": {
"showURL": {
"label": "แสดง IP/URL บนหน้าสถานะ",
"enabled": "เปิดใช้งาน",
"disabled": "ปิดใช้งาน"
}
}
},
"stats": {
"title": "ประวัติการตรวจสอบ",
"description": "ล้างประวัติการตรวจสอบและสถิติทั้งหมดของทีม การกระทำนี้ไม่สามารถย้อนกลับได้",
"buttonText": "ล้างสถิติทั้งหมด",
"dialog": {
"title": "ล้างประวัติการตรวจสอบทั้งหมด?",
"description": "การดำเนินการนี้จะลบประวัติการตรวจสอบ สถิติ และข้อมูลการตรวจสอบทั้งหมดของทีมอย่างถาวร ไม่สามารถย้อนกลับได้",
"confirm": "ใช่ ล้างสถิติทั้งหมด"
}
}
}
},
"editUser": {
"form": {
"roles": {
"title": "บทบาท",
"description": "กำหนดบทบาทให้กับผู้ใช้ สามารถเลือกได้หลายบทบาท"
}
},
"dialog": {
"removeUser": {
"title": "ลบผู้ใช้",
"content": "คุณแน่ใจหรือไม่ว่าต้องการลบ {{name}} ออกจากทีม? การกระทำนี้ไม่สามารถย้อนกลับได้"
}
}
},
"incidents": {
"fallback": {
"title": "ไม่มีเหตุการณ์ — ระบบทั้งหมดทำงานปกติ",
"description": "เมื่อตัวตรวจสอบล่มหรือฟื้นตัว เหตุการณ์จะปรากฏที่นี่พร้อมเวลา รายละเอียดตัวตรวจสอบ และประวัติการแก้ไข"
},
"dialog": {
"resolveIncident": {
"title": "แก้ไขเหตุการณ์",
"option": {
"comment": {
"label": "ความคิดเห็น (ไม่บังคับ)",
"placeholder": "เพิ่มความคิดเห็นเกี่ยวกับการแก้ไข..."
}
}
},
"details": {
"analysis": "การวิเคราะห์เหตุการณ์",
"comment": "ความคิดเห็น:",
"detailsLabel": "รายละเอียด",
"downtime": "ดาวน์ไทม์:",
"message": "ข้อความ:",
"monitor": "มอนิเตอร์:",
"overview": "ภาพรวม",
"resolutionDetails": "รายละเอียดการแก้ไข",
"resolutionType": "ประเภท:",
"resolutionTypes": {
"automatic": "อัตโนมัติ",
"manual": "ด้วยตนเอง"
},
"resolve": "แก้ไขเหตุการณ์",
"resolvedAt": "แก้ไขเมื่อ:",
"resolvedBy": "แก้ไขโดย:",
"startedAt": "เริ่มเมื่อ:",
"status": "สถานะ:",
"statusCode": "รหัสสถานะ:",
"timeline": "ไทม์ไลน์",
"title": "รายละเอียดเหตุการณ์",
"url": "URL:"
}
},
"filters": {
"allMonitors": "มอนิเตอร์ทั้งหมด",
"monitor": "มอนิเตอร์",
"resolutionType": "ประเภทการแก้ไข",
"resolutionTypes": {
"manual": "ด้วยตนเอง",
"automatic": "อัตโนมัติ",
"all": "ทั้งหมด"
}
},
"summaryCard": {
"activeIncidents": {
"title": "เหตุการณ์ที่ยังดำเนินอยู่",
"active_zero": "ไม่มีเหตุการณ์ที่ยังดำเนินอยู่",
"active_one": "{{count}} เหตุการณ์ที่ยังดำเนินอยู่",
"active_other": "{{count}} เหตุการณ์ที่ยังดำเนินอยู่"
},
"incidentStats": {
"avgResolutionTime": "เวลาแก้ไขเฉลี่ย",
"mostAffectedMonitor": "มอนิเตอร์ที่ได้รับผลกระทบมากที่สุด",
"title": "สถิติเหตุการณ์",
"totalIncidents": "เหตุการณ์ทั้งหมด"
},
"latestIncidents": {
"title": "เหตุการณ์ล่าสุด"
}
},
"table": {
"actions": {
"details": "รายละเอียด",
"goToMonitor": "ไปยังมอนิเตอร์",
"resolveManually": "แก้ไขด้วยตนเอง"
},
"activeIncidents": "เหตุการณ์ที่ยังดำเนินอยู่",
"headers": {
"endTime": "เวลาสิ้นสุด",
"resolutionType": "ประเภทการแก้ไข",
"startTime": "เวลาเริ่มต้น",
"statusCode": "รหัสสถานะ"
},
"resolvedIncidents": "เหตุการณ์ที่แก้ไขแล้ว",
"status": {
"active": "ใช้งานอยู่",
"resolved": "แก้ไขแล้ว"
}
},
"header": {
"title": "เหตุการณ์",
"description": "เมื่อตัวตรวจสอบล่มหรือฟื้นตัว เหตุการณ์จะปรากฏที่นี่พร้อมเวลา รายละเอียดตัวตรวจสอบ และประวัติการแก้ไข"
}
},
"infrastructure": {
"charts": {
"labels": {
"cpu": "การใช้งาน CPU",
"disk": "การใช้งานดิสก์",
"memory": "การใช้งานหน่วยความจำ",
"netBytesRecv": "{{name}} - ไบต์ที่รับ",
"netBytesSent": "{{name}} - ไบต์ที่ส่ง",
"netNoTraffic": "Capture รายงานว่าไม่มีการรับส่งข้อมูลบนอินเทอร์เฟซใดๆ เลย ซึ่งเป็นเรื่องปกติเมื่อ Capture ทำงานอยู่ในคอนเทนเนอร์ที่มองเห็นเพียงอินเทอร์เฟซ loopback เท่านั้น — รัน Capture บนโฮสต์โดยตรงเพื่อดูกิจกรรมเครือข่ายจริง",
"temp": "อุณหภูมิ"
}
},
"gauges": {
"cpu": {
"lowerLabel": "ความถี่สูงสุด",
"title": "การใช้งาน CPU",
"upperLabel": "ความถี่ปัจจ��บัน"
},
"disk": {
"lowerLabel": "ว่าง",
"title": "การใช้งานดิสก์ {{idx}}",
"upperLabel": "ใช้แล้ว"
},
"memory": {
"lowerLabel": "ว่าง",
"title": "การใช้งานหน่วยความจำ",
"upperLabel": "ใช้แล้ว"
}
},
"statBoxes": {
"avgCpuTemperature": "อุณหภูมิเฉลี่ยของซีพียู",
"cpuFrequency": "ความถี่ของ CPU",
"cpuLogical": "ซีพียู (คอร์เสมือน)",
"cpuPhysical": "ซีพียู (คอร์หลัก)",
"disk": "ดิสก์",
"memory": "หน่วยความจำ",
"os": "ระบบปฏิบัติการ"
},
"table": {
"headers": {
"cpu": "CPU",
"disk": "ดิสก์",
"memory": "หน่วยความจำ"
}
},
"tabs": {
"labels": {
"network": "เน็ตเวอร์",
"overview": "ภาพรวม"
}
},
"fallback": {
"actionButton": "สร้างมอนิเตอร์!",
"title": "ยังไม่มีตัวตรวจสอบโครงสร้างพื้นฐาน",
"description": "ติดตามประสิทธิภาพเซิร์ฟเวอร์ ระบุคอขวด และมั่นใจในความน่าเชื่อถือด้วยการตรวจสอบโครงสร้างพื้นฐานแบบเรียลไทม์"
},
"header": {
"title": "ตัวตรวจสอบโครงสร้างพื้นฐาน",
"description": "ติดตามประสิทธิภาพเซิร์ฟเวอร์ ระบุคอขวด และมั่นใจในความน่าเชื่อถือด้วยการตรวจสอบโครงสร้างพื้นฐานแบบเรียลไทม์"
}
},
"logs": {
"fallback": {
"title": "ยังไม่มีบันทึก",
"description": "กิจกรรมเซิร์ฟเวอร์ คำเตือน และข้อผิดพลาดจะปรากฏที่นี่ในขณะที่ Checkmate ทำงาน"
},
"tabs": {
"diagnostics": "วินิจฉัย",
"logs": "Logs เซิร์ฟเวอร์",
"queue": "คิวงาน"
},
"logLevelSelect": {
"label": "ระดับบันทึก"
},
"jobQueue": "คิวงาน",
"jobQueueExplainer": "<highlight>แถวที่ไฮไลต์</highlight> คืองานที่กำลังถูกประมวลผลโดยเวิร์กเกอร์อยู่ในขณะนี้",
"failedJobs": "งานที่ล้มเหลว",
"failedJobsExplainer": "ความล้มเหลวล่าสุดตามมอนิเตอร์ — เวลาที่ล้มเหลวล่าสุด จำนวนครั้งที่ล้มเหลว และเหตุผล",
"noLogs": "ไม่พบบันทึก",
"metrics": {
"jobs": "งาน",
"activeJobs": "งานที่กำลังดำเนินการ",
"failingJobs": "งานที่ล้มเหลว",
"totalRuns": "จำนวนรันทั้งหมด",
"totalFailures": "จำนวนล้มเหลวทั้งหมด"
},
"diagnostics": {
"stats": {
"eventLoopDelay": "ดีเลย์ของ Event loop",
"uptime": "อัปไทม์",
"usedHeapSize": "ขนาด heap ที่ใช้",
"totalHeapSize": "ขนาด heap ทั้งหมด",
"osMemoryLimit": "ขีดจำกัดหน่วยความจำ OS"
},
"gauges": {
"heapAllocation": "การจัดสรร Heap",
"heapUsage": "การใช้งาน Heap",
"heapUtilization": "การใช้ประโยชน์ Heap",
"instantCpuUsage": "การใช้งาน CPU ขณะนี้",
"availableMemoryPercentage": "% ของหน่วยความจำที่มี",
"allocatedPercentage": "% ที่จัดสรร",
"usedSPercentage": "% ของ 1 วินาทีที่ CPU ใช้",
"total": "ทั้งหมด",
"used": "ใช้แล้ว"
},
"sections": {
"runtimeStats": {
"title": "สถิติรันไทม์",
"description": "ภาพรวมของโปรเซส Node.js และเครื่องโฮสต์ อัปเดตทุก 5 วินาที"
},
"memoryCpu": {
"title": "หน่วยความจำและ CPU",
"description": "กระบวนการใช้หน่วยความจำที่จัดสรรและ CPU ของโฮสต์อย่างไร"
}
}
},
"table": {
"headers": {
"timestamp": "เวลา",
"level": "ระดับ",
"service": "บริการ",
"method": "เมธอด",
"monitorId": "รหัสมอนิเตอร์",
"runCount": "จำนวนรัน",
"failCount": "จำนวนล้มเหลว",
"lastFinishedAt": "เสร็จสิ้นล่าสุดเมื่อ",
"lastFailedAt": "ล้มเหลวล่าสุดเมื่อ",
"failReason": "สาเหตุที่ล้มเหลว",
"state": "สถานะ"
}
},
"queueFallback": {
"title": "ไม่มีงานในคิว",
"description": "การตรวจสอบตัวตรวจสอบที่กำหนดเวลาหรือกำลังทำงานจะปรากฏที่นี่ คิวที่ว่างหมายความว่าทุกอย่างเป็นปัจจุบัน"
},
"header": {
"title": "บันทึกและคิว",
"description": "ตรวจสอบบันทึกเซิร์ฟเวอร์ คิวงานตัวตรวจสอบ และการวินิจฉัยรันไทม์ในที่เดียว"
}
},
"maintenanceWindow": {
"fallback": {
"actionButton": "สร้างช่วงเวลาบำรุงรักษา!",
"title": "ไม่มีช่วงเวลาบำรุงรักษาที่กำหนด",
"description": "กำหนดเวลาหยุดทำงานเพื่อระงับการแจ้งเตือน และให้ทีมและผู้ใช้รู้ถึงสิ่งที่จะเกิดขึ้น"
},
"table": {
"headers": {
"nextWindow": "ช่วงเวลาถัดไป",
"repeat": "ทำซ้ำ"
}
},
"form": {
"general": {
"title": "ตั้งค่าทั่วไป",
"description": "ตั้งชื่อและตัวเลือกการทำซ้ำสำหรับช่วงเวลาบำรุงรักษา",
"option": {
"name": {
"label": "ชื่อ",
"placeholder": "เช่น บำรุงรักษาประจำสัปดาห์"
},
"repeat": {
"label": "ทำซ้ำ"
}
}
},
"startDate": {
"title": "วันที่เริ่มต้น",
"description": "เลือกวันที่เริ่มต้นสำหรับช่วงเวลาบำรุงรักษา",
"option": {
"startDate": {
"label": "วันที่เริ่มต้น"
}
}
},
"startTime": {
"title": "เวลาเริ่มต้น",
"description": "ตั้งเวลาเริ่มต้นและระยะเวลาสำหรับช่วงเวลาบำรุงรักษา ค่าทั้งหมดเป็น UTC",
"option": {
"duration": {
"label": "ระยะเวลา"
},
"startTime": {
"label": "เวลาเริ่มต้น"
}
},
"monitors": {
"title": "มอนิเตอร์",
"description": "มอนิเตอร์ที่ช่วงเวลาบำรุงรักษาควรใช้งาน",
"option": {
"addMonitors": {
"label": "เพิ่มมอนิเตอร์"
}
}
}
}
},
"header": {
"title": "ช่วงเวลาบำรุงรักษา",
"description": "กำหนดเวลาหยุดทำงานเพื่อระงับการแจ้งเตือน และให้ทีมและผู้ใช้รู้ถึงสิ่งที่จะเกิดขึ้น"
}
},
"notifications": {
"fallback": {
"actionButton": "สร้างช่องทาง",
"title": "ยังไม่มีช่องทางการแจ้งเตือน",
"description": "เชื่อมต่อ Slack, Discord, อีเมล, webhooks และอื่น ๆ เพื่อให้คนที่ถูกต้องรู้เกี่ยวกับเหตุการณ์ทันทีที่เกิดขึ้น"
},
"form": {
"accessToken": {
"optionAccessToken": "โทเค็นการเข้าถึง",
"placeholder": "syt_YWxleF9ob2xsaWRheQ_VmtScmV0U2VjcmV0S2V5_abc123"
},
"address": {
"description": "ที่อยู่ที่จะส่งการแจ้งเตือน",
"optionAddress": "ที่อยู่",
"placeholderEmail": "example@example.com",
"placeholderWebhook": "https://your-server.com/webhook",
"title": "ที่อยู่"
},
"homeServer": {
"optionHomeServer": "โฮมเซิร์ฟเวอร์",
"placeholder": "example.com"
},
"matrix": {
"description": "กำหนดค่าการเชื่อมต่อ Matrix homeserver สำหรับการแจ้งเตือน",
"title": "ตั้งค่า Matrix"
},
"notificationName": {
"description": "ชื่อที่สื่อความหมายสำหรับช่องทางการแจ้งเตือน",
"optionName": "ชื่อช่องทาง",
"placeholder": "เช่น การแจ้งเตือน Production",
"title": "ชื่อช่องทาง"
},
"pagerDuty": {
"description": "คีย์การรวม PagerDuty สำหรับรับการแจ้งเตือน",
"optionIntegrationKey": "คีย์การรวม",
"placeholder": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
"title": "คีย์การรวม"
},
"roomId": {
"optionRoomId": "รหัสห้อง",
"placeholder": "!abcdefg:matrix.org"
},
"type": {
"description": "เลือกประเภทช่องทางการแจ้งเตือนที่ต้องการสร้าง",
"optionType": "ประเภท",
"title": "ประเภทช่องทาง"
},
"telegram": {
"title": "ตั้งค่า Telegram",
"description": "เพื่อเปิดใช้งานการแจ้งเตือนผ่าน Telegram ให้สร้างบอท Telegram โดยใช้ BotFather ซึ่งเป็นบอททางการสำหรับสร้างและจัดการบอท Telegram จากนั้นนำ API token และ Chat ID มาใส่ที่นี่",
"optionBotToken": "โทเค็นบอท",
"placeholderBotToken": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"optionChatId": "Chat ID",
"placeholderChatId": "-1001234567890"
},
"pushover": {
"title": "การตั้งค่า Pushover",
"description": "ป้อนโทเค็นแอปและคีย์ผู้ใช้ Pushover ของคุณ",
"optionAppToken": "โทเค็นแอป",
"placeholderAppToken": "ป้อนโทเค็นแอป",
"optionUserKey": "คีย์ผู้ใช้",
"placeholderUserKey": "ป้อนคีย์ผู้ใช้"
},
"twilio": {
"title": "การตั้งค่า Twilio",
"description": "ป้อนข้อมูลรับรองบัญชี Twilio เพื่อส่ง SMS",
"optionAccountSid": "SID บัญชี",
"placeholderAccountSid": "ป้อน SID บัญชี",
"optionAuthToken": "โทเค็นการรับรอง",
"placeholderAuthToken": "ป้อนโทเค็นการรับรอง",
"optionFromNumber": "หมายเลขผู้ส่ง",
"placeholderFromNumber": "+1234567890",
"optionToNumber": "หมายเลขผู้รับ",
"placeholderToNumber": "+1234567890"
}
},
"table": {
"headers": {
"destination": "ปลายทาง"
}
},
"header": {
"title": "การแจ้งเตือน",
"description": "เชื่อมต่อ Slack, Discord, อีเมล, webhooks และอื่น ๆ เพื่อให้คนที่ถูกต้องรู้เกี่ยวกับเหตุการณ์ทันทีที่เกิดขึ้น"
}
},
"pageSpeed": {
"charts": {
"common": {
"cls": "Cumulative Layout Shift (CLS)",
"fcp": "First Contentful Paint (FCP)",
"lcp": "Largest Contentful Paint (LCP)",
"si": "Speed Index (SI)",
"tbt": "Total Blocking Time (TBT)"
},
"legend": {
"title": "รายงาน PageSpeed",
"weight": "น้ำหนัก"
},
"pie": {
"title": "รายงานประสิทธิภาพ"
}
},
"table": {
"headers": {
"pageSpeedScore": "คะแนน PageSpeed"
}
},
"fallback": {
"actionButton": "สร้างมอนิเตอร์!",
"title": "ยังไม่มีตัวตรวจสอบ PageSpeed",
"description": "ติดตาม Core Web Vitals และคะแนน Lighthouse เพื่อจับความถดถอยก่อนที่ผู้ใช้จะสังเกตเห็น"
},
"header": {
"title": "ตัวตรวจสอบ PageSpeed",
"description": "ติดตาม Core Web Vitals และคะแนน Lighthouse เพื่อจับความถดถอยก่อนที่ผู้ใช้จะสังเกตเห็น"
},
"strategy": {
"desktop": "เดสก์ท็อป",
"mobile": "มือถือ"
}
},
"settings": {
"form": {
"timezone": {
"title": "เขตเวลาที่แสดง",
"description": "เลือกเขตเวลาที่ใช้แสดงวันที่และเวลาทั่วทั้งแอปพลิเคชัน",
"option": {
"timezone": {
"label": "เขตเวลาที่แสดง"
}
}
},
"ui": {
"title": "รูปลักษณ์",
"description": "สลับระหว่างโหมดสว่างและมืด เปลี่ยนภาษา หรือปรับแต่งประเภทกราฟ",
"option": {
"theme": {
"label": "โหมดธีม",
"light": "สว่าง",
"dark": "มืด"
},
"language": {
"label": "ภาษา"
},
"chartType": {
"label": "ประเภทกราฟ",
"histogram": "ฮิสโตแกรม",
"heatmap": "แผนที่ความร้อน"
}
}
},
"pagespeed": {
"title": "คีย์ API ของ Google PageSpeed",
"description": "กรอกคีย์ API ของ Google PageSpeed เพื่อเปิดใช้งานการตรวจสอบ Google PageSpeed คลิกรีเซ็ตเพื่ออัปเดตคีย์",
"option": {
"apiKey": {
"label": "คีย์ API ของ PageSpeed",
"labelSet": "ตั้งค่าคีย์ API แล้ว คลิกรีเซ็ตเพื่อเปลี่ยน",
"placeholder": "กรอกคีย์ API ของ Google PageSpeed"
}
}
},
"url": {
"title": "แสดง IP/URL ของมอนิเตอร์บนหน้าสถานะ",
"description": "แสดง IP หรือ URL ของมอนิเตอร์บนหน้าสถานะสาธารณะ หากปิดใช้งาน จะแสดงเฉพาะชื่อมอนิเตอร์เพื่อปกป้องข้อมูลที่ละเอียดอ่อน",
"option": {
"showURL": {
"label": "แสดง IP/URL บนหน้าสถานะ",
"enabled": "เปิดใช้งาน",
"disabled": "ปิดใช้งาน"
}
}
},
"stats": {
"title": "ประวัติการตรวจสอบ",
"description": "ล้างประวัติการตรวจสอบและสถิติทั้งหมดของทีม การกระทำนี้ไม่สามารถย้อนกลับได้",
"option": {
"clear": {
"label": "ล้างสถิติทั้งหมด การกระทำนี้ไม่สามารถย้อนกลับได้"
}
},
"dialog": {
"title": "ล้างประวัติการตรวจสอบทั้งหมด?",
"description": "ไม่สามารถย้อนกลับได้"
}
},
"retention": {
"title": "การเก็บรักษาข้อมูลตรวจสอบ",
"description": "กำหนดระยะเวลาเก็บรักษาข้อมูลตรวจสอบก่อนถูกลบอัตโนมัติ",
"option": {
"days": {
"label": "ระยะเวลาเก็บรักษา (วัน)",
"unlimited": "ไม่จำกัด"
}
}
},
"thresholds": {
"title": "เกณฑ์ทั่วไป",
"description": "กำหนดเกณฑ์ CPU หน่วยความจำ ดิสก์ และอุณหภูมิทั่วไปสำหรับการตรวจสอบโครงสร้างพื้นฐาน ใช้กับมอนิเตอร์ฮาร์ดแวร์ทั้งหมด เว้นแต่ถูกแทนที่",
"option": {
"cpu": {
"label": "เกณฑ์ CPU (%)",
"placeholder": "1 - 100"
},
"memory": {
"label": "เกณฑ์หน่วยความจำ (%)",
"placeholder": "1 - 100"
},
"disk": {
"label": "เกณฑ์ดิสก์ (%)",
"placeholder": "1 - 100"
},
"temperature": {
"label": "เกณฑ์อุณหภูมิ (°C)",
"placeholder": "1 - 150"
}
}
},
"email": {
"title": "ตั้งค่าอีเมล",
"description": "กำหนดค่าอีเมลสำหรับระบบ ใช้สำหรับส่งการแจ้งเตือน",
"descriptionTransport": "สร้าง SMTP transport สำหรับ NodeMailer",
"descriptionTransportLink": "ดูข้อกำหนดที่นี่",
"option": {
"host": {
"label": "โฮสต์อีเมล - ชื่อโฮสต์หรือ IP ที่จะเชื่อมต่อ",
"placeholder": "smtp.gmail.com"
},
"port": {
"label": "พอร์ตอีเมล - พอร์ตที่จะเชื่อมต่อ",
"placeholder": "587"
},
"address": {
"label": "ที่อยู่อีเมล - ใช้สำหรับยืนยันตัวตน",
"placeholder": "you@example.com"
},
"user": {
"label": "ผู้ใช้อีเมล - ชื่อผู้ใช้สำหรับยืนยันตัวตน แทนที่อีเมลหากระบุ",
"placeholder": "เว้นว่างหากไม่จำเป็น"
},
"password": {
"label": "รหัสผ่านอีเมล - รหัสผ่านสำหรับยืนยันตัวตน",
"labelSet": "ตั้งค่ารหัสผ่านแล้ว คลิกรีเซ็ตเพื่อเปลี่ยน",
"placeholder": "กรอกรหัสผ่านของคุณ"
},
"tlsServername": {
"label": "ชื่อเซิร์ฟเวอร์ TLS - ชื่อโฮสต์สำหรับตรวจสอบ TLS เมื่อโฮสต์เป็น IP (ไม่บังคับ)",
"placeholder": "example.com"
},
"connectionHost": {
"label": "โฮสต์เชื่อมต่ออีเมล - ชื่อโฮสต์ที่ใช้ในการ HELO/EHLO",
"placeholder": "localhost"
},
"secure": {
"label": "ใช้ SSL (แนะนำ): เข้ารหัสการเชื่อมต่อด้วย SSL/TLS"
},
"pool": {
"label": "เปิดใช้งาน connection pooling: ใช้การเชื่อมต่อที่มีอยู่ซ้ำเพื่อเพิ่มประสิทธิภาพ"
},
"ignoreTLS": {
"label": "ปิดใช้งาน STARTTLS: ไม่ใช้ TLS แม้เซิร์ฟเวอร์จะรองรับ"
},
"requireTLS": {
"label": "บังคับใช้ STARTTLS: ต้องอัปเกรดเป็น TLS ล้มเหลวหากไม่รองรับ"
},
"rejectUnauthorized": {
"label": "ปฏิเสธใบรับรองที่ไม่ถูกต้อง: ปฏิเสธการเชื่อมต่อด้วยใบรับรอง self-signed หรือไม่น่าเชื่อถือ"
},
"displayName": {
"label": "ชื่อผู้ส่ง (ไม่บังคับ) - ชื่อที่เป็นมิตรซึ่งแสดงในช่องจาก",
"placeholder": "การแจ้งเตือน Checkmate"
}
}
},
"demoMonitors": {
"title": "มอนิเตอร์สาธิต",
"description": "เพิ่มมอนิเตอร์ตัวอย่างเพื่อวัตถุประสงค์ในการ���าธิต"
},
"removeMonitors": {
"title": "รีเซ็ตระบบ",
"description": "ลบมอนิเตอร์ทั้งหมดจากระบบของคุณ",
"dialog": {
"title": "ลบมอนิเตอร์ทั้งหมด?",
"description": "การกระทำนี้ไม่สามารถย้อนกลับได้",
"paragraph": "ประวัติการตรวจสอบทั้งหมด เหตุการณ์ ช่วงเวลาบำรุงรักษาที่กำหนดไว้ และหน้าสถานะที่ใช้มอนิเตอร์เหล่านี้จะถูกลบไปด้วย ส่งออกมอนิเตอร์ก่อนหากต้องการเก็บสำเนาข้อมูลสำรองไว้"
}
},
"exportMonitors": {
"title": "ส่งออกมอนิเตอร์"
},
"importExportMonitors": {
"title": "นำเข้า / ส่งออกมอนิเตอร์",
"description": "นำเข้าหรือส่งออกข้อมูลมอนิเตอร์เป็นไฟล์ JSON สำหรับสำรองหรือโอนย้าย"
},
"about": {
"title": "เกี่ยวกับ",
"developedBy": "พัฒนาโดย Bluewave Labs"
},
"validation": {
"errorMessage": "กรุณาแก้ไขข้อผิดพลาดการตรวจสอบต่อไปนี้:"
}
},
"header": {
"title": "การตั้งค่า",
"description": "กำหนดค่า SMTP, การผสานรวม, การเก็บรักษา และพฤติกรรมแอปทั่วโลก"
}
},
"statusPages": {
"deleteSuccess": "ลบหน้าสถานะสำเร็จ",
"fallback": {
"title": "ยังไม่มีหน้าสถานะ",
"actionButton": "สร้างหน้าสถานะ!",
"description": "เผยแพร่หน้าสาธารณะที่แสดง uptime แบบเรียลไทม์และประวัติเหตุการณ์ให้กับลูกค้าและผู้มีส่วนได้ส่วนเสีย"
},
"monitorsList": {
"chartTypeHeatmap": "แผนที่ความร้อน",
"chartTypeHistogram": "ฮิสโตแกรม",
"noData": "ไม่มีข้อมูล",
"infrastructure": {
"title": "โครงสร้างพื้นฐาน",
"cpu": "CPU",
"memory": "RAM",
"memoryText": "หน่วยความจำ",
"disk": "ดิสก์",
"usage": "การใช้งาน",
"used": "ใช้แล้ว",
"total": "ทั้งหมด"
},
"uptime": {
"title": "อัปไทม์",
"responseTime": "เวลาตอบสนอง"
},
"chart": {
"avg": "เฉลี่ย {{value}}",
"downTooltip": "ไม่พร้อมใช้งาน",
"heatmapAria": "แผนที่ความร้อนของเวลาตอบสนอง",
"max": "สูงสุด {{value}}"
},
"status": {
"breached": "เกินขีดจำกัด",
"down": "ไม่พร้อมใช้งาน",
"initializing": "กำลังเริ่มต้น",
"maintenance": "การบำรุงรักษา",
"paused": "หยุดชั่วคราว",
"up": "ใช้งานได้"
}
},
"statusBar": {
"allDown": "ระบบทั้งหมดล่ม",
"allUp": "ระบบทั้งหมดทำงานปกติ",
"degraded": "บางระบบกำลังประสบปัญหา",
"unknown": "ไม่สามารถระบุสถานะระบบได้",
"allBreached": "ทุกระบบเกินขีดจำกัด",
"allMaintenance": "ทุกระบบอยู่ระหว่างการบำรุงรักษา",
"allPaused": "ทุกระบบถูกหยุดชั่วคราว",
"allInitializing": "ทุกระบบกำลังเริ่มต้น",
"breachedAndDown": "บางระบบเกินขีดจำกัดและขัดข้อง",
"breached": "บางระบบเกินขีดจำกัด",
"maintenanceAndDown": "บางระบบขัดข้องระหว่างการบำรุงรักษา",
"maintenance": "บางระบบอยู่ระหว่างการบำรุงรักษา",
"partiallyPaused": "บางระบบถูกหยุดชั่วคราว",
"initializing": "บางระบบกำลังเริ่มต้น",
"noMonitors": "ยังไม่มีการกำหนดค่ามอนิเตอร์",
"monitoringSummary": "กำลังตรวจสอบ {{count}} บริการ · อัปเดตทุก 10 วินาที",
"monitoringSummary_other": "กำลังตรวจสอบ {{count}} บริการ · อัปเดตทุก 10 วินาที"
},
"table": {
"headers": {
"name": "ชื่อหน้าสถานะ",
"url": "URL สาธารณะ"
},
"published": "เผยแพร่แล้ว",
"unpublished": "ยังไม่เผยแพร่"
},
"title": "หน้าสถานะ",
"details": {
"empty": {
"title": "ยังไม่มีข้อมูลที่นี่",
"addMonitor": "เพิ่มมอนิเตอร์เพื่อเริ่มต้น"
}
},
"form": {
"access": {
"title": "การเข้าถึง",
"description": "หากหน้าสถานะพร้อมแล้ว คุณสามารถทำเครื่องหมายว่าเผยแพร่แล้ว",
"option": {
"published": {
"name": "เผยแพร่แล้วและสาธารณะสามารถเห็นได้"
}
}
},
"basicInfo": {
"title": "ข้อมูลพื้นฐาน",
"description": "กำหนดชื่อบริษัทและซับโดเมนที่หน้าสถานะชี้ไป",
"option": {
"name": {
"label": "ชื่อบริษัท",
"placeholder": "Acme Inc."
},
"url": {
"label": "ที่อยู่หน้าสถานะของคุณ",
"placeholder": "my-status-page"
}
}
},
"monitors": {
"title": "มอนิเตอร์",
"description": "เลือกมอนิเตอร์ที่จะแสดงบนหน้าสถานะ",
"noMonitors": "ไม่ได้เลือกมอนิเตอร์",
"option": {
"monitors": {
"label": "เลือกมอนิเตอร์",
"placeholder": "ค้นหาและเลือกมอนิเตอร์..."
}
}
},
"timezone": {
"title": "เขตเวลา",
"description": "เลือกเขตเวลาที่หน้าสถานะจะแสดง",
"option": {
"timezone": {
"label": "เขตเวลา",
"placeholder": "เลือกเขตเวลา..."
}
}
},
"appearance": {
"title": "รูปลักษณ์",
"description": "กำหนดรูปลักษณ์เริ่มต้นของหน้าสถานะสาธารณะ",
"option": {
"logo": {
"label": "โลโก้"
},
"color": {
"label": "สีแบรนด์"
}
}
},
"features": {
"title": "ฟีเจอร์",
"description": "กำหนดค่าข้อมูลที่แสดงบนหน้าสถานะ",
"option": {
"showCharts": {
"label": "แสดงกราฟเวลาตอบสนอง"
},
"showUptimePercentage": {
"label": "แสดงเปอร์เซ็นต์อัปไทม์"
},
"showAdminLoginLink": {
"label": "แสดงลิงก์เข้าสู่ระบบผู้ดูแล"
},
"showInfrastructure": {
"label": "แสดงเมตริกโครงสร้างพื้นฐาน"
}
}
},
"theme": {
"description": "เลือกรูปแบบภาพสำหรับหน้าสถานะสาธารณะของคุณ",
"label": "ธีม",
"options": {
"bold": {
"description": "ตัวอักษรขนาดใหญ่และการเว้นระยะที่มั่นใจ เหมาะสำหรับหน้าที่เน้นแบรนด์",
"name": "ตัวหนา"
},
"editorial": {
"description": "หัวเรื่องแบบเซริฟและตัวคั่นบาง โดดเด่นและสงบ",
"name": "บรรณาธิการ"
},
"modern": {
"description": "ระดับ SaaS พร้อมจุดสถานะที่เต้นและการ์ดที่จางหายอย่างนุ่มนวล",
"name": "ทันสมัย"
},
"refined": {
"description": "สะอาด เป็นมืออาชีพ ใกล้เคียงกับรูปลักษณ์คลาสสิกของ Checkmate",
"name": "ละเอียดอ่อน"
}
},
"title": "ธีมของหน้า"
},
"themeMode": {
"auto": "อัตโนมัติ (ตามอุปกรณ์ของผู้เข้าชม)",
"dark": "มืดเท่านั้น",
"label": "โหมดธีม",
"light": "สว่างเท่านั้น"
}
},
"header": {
"title": "หน้าสถานะ",
"description": "เผยแพร่หน้าสาธารณะที่แสดง uptime แบบเรียลไทม์และประวัติเหตุการณ์ให้กับลูกค้าและผู้มีส่วนได้ส่วนเสีย"
},
"editorial": {
"allUp": "ทุกระบบทำงานเป็นปกติ",
"reportTitle": "รายงานบริการ"
},
"footer": {
"poweredBy": "ขับเคลื่อนโดย"
}
},
"uptime": {
"filters": {
"search": {
"placeholder": "ค้นหามอนิเตอร์..."
}
},
"table": {
"headers": {
"responseTime": "เวลาตอบสนอง"
}
},
"fallback": {
"actionButton": "สร้างมอนิเตอร์!",
"title": "ยังไม่มีตัวตรวจสอบ uptime",
"description": "ติดตาม HTTP endpoints, ping, คอนเทนเนอร์ และพอร์ต — รับการแจ้งเตือนทันทีที่บางอย่างล่ม"
},
"header": {
"title": "ตัวตรวจสอบ uptime",
"description": "ติดตาม HTTP endpoints, ping, คอนเทนเนอร์ และพอร์ต — รับการแจ้งเตือนทันทีที่บางอย่างล่ม"
}
}
}
}