Files
OmniRoute/bin/cli/locales/th.json
Diego Rodrigues de Sa e Souza 9d9284417c fix(cli): translate the CLI for every locale (38 catalogs were nearly empty) (#13892)
sync-ui-keys --catalog=cli + blocking i18n:check-keys:cli gate; 65 CLI catalogs synced (52,000 strings, 0 __MISSING__, all 830 keys, placeholders verified). ⚠️ base-red inherited: #12732
2026-09-16 12:27:59 -03:00

1341 lines
93 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"error": "ข้อผิดพลาด: {message}",
"serverOffline": "เซิร์ฟเวอร์ OmniRoute ออฟไลน์ เริ่มด้วย: omniroute serve",
"authRequired": "ต้องการการยืนยันตัวตน ตั้งค่า OMNIROUTE_API_KEY หรือรัน: omniroute setup",
"rateLimited": "เกินขีดจำกัดคำขอ ลองใหม่หลังจาก {seconds}วินาที",
"timeout": "คำขอหมดเวลาหลังจาก {ms}ms",
"success": "เสร็จสิ้น",
"yes": "ใช่",
"no": "ไม่",
"confirm": "คุณแน่ใจหรือไม่? (ใช่/ไม่)",
"dryRun": "[จำลอง] จะทำ: {action}",
"cancelled": "ยกเลิกแล้ว",
"jsonOpt": "ส่งออกเป็น JSON",
"yesOpt": "ข้ามการยืนยัน"
},
"setup": {
"title": "ตั้งค่า OmniRoute",
"passwordPrompt": "รหัสผ่านผู้ดูแลระบบ",
"providerPrompt": "ผู้ให้บริการเริ่มต้น (เว้นว่างเพื่อข้าม)",
"done": "ตั้งค่าเสร็จสมบูรณ์",
"passwordSet": "กำหนดรหัสผ่านผู้ดูแลระบบแล้ว",
"providerSet": "กำหนดค่าผู้ให้บริการแล้ว: {name}",
"testingProvider": "กำลังทดสอบการเชื่อมต่อกับผู้ให้บริการ: {name}",
"testPassed": "การทดสอบผู้ให้บริการผ่าน",
"testFailed": "การทดสอบผู้ให้บริการล้มเหลว: {error}",
"loginEnabled": "การเข้าสู่ระบบ: เปิดใช้งานแล้ว (อัปเดตรหัสผ่านแล้ว)",
"loginDisabled": "การเข้าสู่ระบบ: ปิดใช้งาน",
"providerInfo": "ผู้ให้บริการ: {info}",
"opencode": "ติดตั้งและกำหนดค่า @omniroute/opencode-plugin ที่รวมมาให้สำหรับ OpenCode"
},
"doctor": {
"title": "OmniRoute Doctor",
"dbOk": "ฐานข้อมูล: ปกติ ({path})",
"dbMissing": "ฐานข้อมูล: ยังไม่ได้เริ่มต้น — เรียกใช้ `omniroute setup`",
"portOk": "พอร์ต {port}: พร้อมใช้งาน",
"portConflict": "พอร์ต {port}: ถูกใช้งานโดยกระบวนการอื่น",
"encryptionOk": "คีย์การเข้ารหัส: กำหนดค่าแล้ว",
"encryptionMissing": "ไม่พบคีย์การเข้ารหัส — เรียกใช้ `omniroute setup`",
"allGood": "การตรวจสอบทั้งหมดผ่านแล้ว",
"warnings": "คำเตือน {count} รายการ — ดูรายละเอียดด้านบน"
},
"providers": {
"title": "ผู้ให้บริการ",
"noProviders": "ยังไม่ได้กำหนดค่าผู้ให้บริการ เรียกใช้: omniroute setup",
"testing": "กำลังทดสอบ {name}...",
"available": "มีผู้ให้บริการพร้อมใช้งาน {count} ราย",
"connected": "เชื่อมต่อแล้ว",
"disconnected": "ตัดการเชื่อมต่อแล้ว",
"validationFailed": "การตรวจสอบความถูกต้องล้มเหลว: {error}",
"metrics": {
"description": "แสดงเมตริกประสิทธิภาพของผู้ให้บริการ (เวลาแฝง อัตราความสำเร็จ ค่าใช้จ่าย)",
"provider": "กรองตาม ID ผู้ให้บริการ",
"connection_id": "กรองตาม ID การเชื่อมต่อ",
"period": "ช่วงเวลา: 1h|6h|24h|7d|30d (ค่าเริ่มต้น: 24h)",
"metric": "เน้นฟิลด์เมตริกที่ระบุ",
"sort": "เรียงลำดับตามฟิลด์ (จากมากไปน้อย)",
"limit": "จำนวนแถวสูงสุด (ค่าเริ่มต้น: 50)",
"watch": "รีเฟรชทุก 5 วินาที (โหมดสด)",
"compare": "ID ผู้ให้บริการที่คั่นด้วยจุลภาคเพื่อเปรียบเทียบแบบเคียงข้างกัน"
},
"metric_single": {
"description": "รับค่าเมตริกเดียวสำหรับการเชื่อมต่อที่ระบุ"
},
"rotate": {
"description": "หมุนเวียนคีย์ API ต้นทางสำหรับการเชื่อมต่อกับผู้ให้บริการ",
"newKeyOpt": "ค่าคีย์ API ใหม่ (ควรหลีกเลี่ยง: แนะนำให้ใช้ --from-env)",
"fromEnvOpt": "อ่านคีย์ใหม่จากตัวแปรสภาพแวดล้อม VAR",
"oauthOpt": "เรียกใช้กระบวนการยืนยันตัวตน OAuth อีกครั้งแทน",
"skipTestOpt": "ข้ามการทดสอบการเชื่อมต่อหลังหมุนเวียนคีย์",
"dryRunOpt": "แสดงสิ่งที่จะเปลี่ยนแปลงโดยไม่เขียนข้อมูล",
"confirmPrompt": "แทนที่คีย์ API สำหรับการเชื่อมต่อ \"{name}\" ({id}) หรือไม่? [y/N]",
"dryRunResult": "[dry-run] จะหมุนเวียนคีย์สำหรับ \"{name}\" ({id}) ไม่มีการเปลี่ยนแปลงใด ๆ",
"oauthHint": "การเชื่อมต่อ OAuth — เรียกใช้: omniroute oauth {provider}",
"envVarEmpty": "ตัวแปรสภาพแวดล้อม {var} ไม่ได้ถูกตั้งค่าหรือว่างเปล่า",
"success": "หมุนเวียนคีย์สำหรับ \"{name}\" แล้ว เรียกใช้ `providers test {id}` เพื่อตรวจสอบ",
"testPassed": "การทดสอบหลังหมุนเวียนคีย์ผ่านแล้ว",
"testFailed": "การทดสอบหลังหมุนเวียนคีย์ล้มเหลว: {error}"
},
"status": {
"description": "แสดงสถานะคีย์สำหรับการเชื่อมต่อผู้ให้บริการทั้งหมด (อายุ วันหมดอายุ ระยะพักใช้งาน)",
"providerOpt": "กรองตามชื่อผู้ให้บริการ",
"header": "ID ผู้ให้บริการ ชื่อ สถานะการหมดอายุ สถานะการทดสอบ พักใช้งานจนถึง",
"noData": "ไม่มีข้อมูลการเชื่อมต่อผู้ให้บริการ",
"requiresServer": "คำสั่ง providers status ต้องให้เซิร์ฟเวอร์ OmniRoute ทำงานอยู่"
}
},
"keys": {
"title": "คีย์ API",
"addDescription": "เพิ่มหรืออัปเดตคีย์ API สำหรับผู้ให้บริการ",
"listDescription": "แสดงคีย์ API ที่กำหนดค่าไว้ทั้งหมด",
"removeDescription": "ลบคีย์ API สำหรับผู้ให้บริการ",
"regenerateDescription": "สร้างคีย์ API ของ OmniRoute ใหม่",
"revokeDescription": "เพิกถอนคีย์ API ของ OmniRoute",
"revealDescription": "แสดงค่าคีย์ API แบบไม่ปกปิด",
"usageDescription": "แสดงการใช้งานล่าสุดของคีย์ API",
"usageLimitOpt": "จำนวนคำขอล่าสุด",
"rotateDescription": "สร้างคีย์ใหม่และทำให้คีย์เก่าใช้ไม่ได้",
"graceOpt": "ระยะผ่อนผัน (ms) ก่อนทำให้คีย์เก่าใช้ไม่ได้",
"stdinOpt": "อ่านคีย์ API จาก stdin แทนอาร์กิวเมนต์",
"added": "เพิ่มคีย์สำหรับ {provider} แล้ว",
"removed": "ลบคีย์แล้ว",
"listed": "{count} คีย์",
"noKeys": "ยังไม่ได้กำหนดค่าคีย์",
"noUsage": "ไม่พบข้อมูลการใช้งาน",
"confirmRemove": "ลบคีย์ {id} หรือไม่?",
"confirmRegenerate": "สร้างคีย์ {id} ใหม่หรือไม่?",
"confirmRevoke": "เพิกถอนคีย์ {id} หรือไม่?",
"confirmRotate": "หมุนเวียนคีย์ {id} หรือไม่? (คีย์เก่าจะใช้ไม่ได้หลังพ้นระยะผ่อนผัน)",
"regenerated": "สร้างใหม่แล้ว คีย์ใหม่: {key}",
"revoked": "เพิกถอนคีย์ {id} แล้ว",
"rotated": "หมุนเวียนคีย์ {id} แล้ว ID คีย์ใหม่: {newId}",
"revealWarning": "⚠ การดำเนินการนี้จะแสดงคีย์แบบเต็มโดยไม่มีการปกปิด โปรดตรวจสอบว่าหน้าจอของคุณเป็นส่วนตัว",
"providerRequired": "จำเป็นต้องระบุผู้ให้บริการ",
"keyRequired": "จำเป็นต้องระบุ API key",
"stdinEmpty": "ไม่ได้ระบุ API key ผ่าน stdin",
"unknownProvider": "ไม่รู้จักผู้ให้บริการ: {provider}",
"policy": {
"title": "นโยบายคีย์",
"showDescription": "แสดงนโยบายอัตรา/ค่าใช้จ่ายสำหรับคีย์",
"setDescription": "ตั้งค่านโยบายอัตรา/ค่าใช้จ่ายสำหรับคีย์",
"rateLimitOpt": "จำนวนคำขอสูงสุดต่อนาที",
"maxCostOpt": "ค่าใช้จ่ายสูงสุดต่อวัน (USD)",
"allowedModelsOpt": "รายการโมเดลที่อนุญาตโดยคั่นด้วยจุลภาค",
"nothingToSet": "ไม่ได้ระบุฟิลด์นโยบาย โปรดใช้ --rate-limit, --max-cost หรือ --allowed-models",
"updated": "อัปเดตนโยบายแล้ว"
},
"expiration": {
"title": "การหมดอายุของคีย์",
"listDescription": "แสดงรายการคีย์ที่ใกล้หมดอายุ",
"daysOpt": "แสดงคีย์ที่จะหมดอายุภายใน N วัน",
"none": "ไม่มีคีย์ที่จะหมดอายุภายใน {days} วัน",
"listTitle": "คีย์ที่จะหมดอายุภายใน {days} วัน:"
}
},
"authExport": {
"description": "ส่งออกข้อมูลประจำตัวของผู้ให้บริการที่ถอดรหัสแล้ว (ใช้ภายในเครื่องเท่านั้น, เอาต์พุตเป็นข้อความธรรมดา)",
"idOpt": "ส่งออกเฉพาะการเชื่อมต่อที่ตรงกับ id/name/provider นี้",
"formatOpt": "รูปแบบเอาต์พุต: json หรือ env",
"outOpt": "เขียนเอาต์พุตลงในไฟล์แทน stdout (เขียนด้วยสิทธิ์ 0600)",
"forceOpt": "ยืนยันว่าคุณเข้าใจว่าการดำเนินการนี้จะพิมพ์/เขียนข้อมูลลับเป็นข้อความธรรมดา",
"warning": "⚠ การดำเนินการนี้จะพิมพ์/เขียน API key และโทเค็น OAuth ที่ถอดรหัสแล้วเป็นข้อความธรรมดา โปรดตรวจสอบว่าหน้าจอ ประวัติ shell และไฟล์เอาต์พุตของคุณเป็นส่วนตัว",
"confirmHeading": "⚠ คำเตือน: การดำเนินการนี้จะส่งออกข้อมูลประจำตัวของผู้ให้บริการที่ถอดรหัสแล้วเป็นข้อความธรรมดา",
"confirmBody": "คำสั่งนี้จะถอดรหัสและพิมพ์/เขียน apiKey, accessToken, refreshToken และ\nidToken สำหรับการเชื่อมต่อที่เลือก โปรดถือว่าเอาต์พุตเป็นข้อมูลลับ",
"confirmFooter": "เพื่อยืนยัน ให้เรียกใช้:\n omniroute auth export --force",
"missingKey": "จำเป็นต้องมี STORAGE_ENCRYPTION_KEY เพื่อส่งออกข้อมูลประจำตัว",
"notFound": "ไม่พบการเชื่อมต่อ: {id}",
"invalidFormat": "รูปแบบไม่ถูกต้อง: {format} โปรดใช้ json หรือ env"
},
"stream": {
"description": "สตรีมการตอบกลับแชตพร้อมโหมดตรวจสอบ SSE",
"file": "อ่านพรอมต์จากไฟล์",
"stdin": "อ่านพรอมต์จาก stdin",
"model": "ID โมเดล (ค่าเริ่มต้น: auto)",
"system": "พรอมต์ระบบ",
"combo": "บังคับใช้คอมโบที่ระบุตามชื่อ",
"max_tokens": "จำนวนโทเค็นสูงสุดในการตอบกลับ",
"responses_api": "ใช้ /v1/responses แทน /v1/chat/completions",
"raw": "พิมพ์บรรทัด SSE ดิบตามที่ได้รับ",
"debug": "พิมพ์ข้อมูลเวลาของแต่ละชิ้นไปยัง stderr",
"save": "บันทึกอีเวนต์ SSE ทั้งหมดลงในไฟล์ .jsonl",
"error": {
"empty_prompt": "ข้อผิดพลาด: ต้องระบุพรอมต์ (อาร์กิวเมนต์แบบระบุตำแหน่ง, --file หรือ --stdin)"
}
},
"usage": {
"description": "การวิเคราะห์การใช้งาน งบประมาณ โควตา และบันทึก",
"analytics": {
"description": "แสดงข้อมูลวิเคราะห์การใช้งานแบบรวม",
"period": "ช่วงเวลา: 1d|7d|30d|90d|ytd|all (ค่าเริ่มต้น: 30d)",
"provider": "กรองตาม ID ผู้ให้บริการ"
},
"budget": {
"description": "จัดการงบประมาณค่าใช้จ่าย",
"set": {
"scope": "ขอบเขตงบประมาณ (ค่าเริ่มต้น: global)",
"period": "รอบงบประมาณ: daily|weekly|monthly (ค่าเริ่มต้น: monthly)"
}
},
"quota": {
"description": "แสดงการใช้โควตาของผู้ให้บริการ",
"provider": "กรองตาม ID ผู้ให้บริการ",
"check": "แสดงว่ามีโควตาสำหรับคำขอใหม่หรือไม่"
},
"logs": {
"description": "แสดงบันทึกการเรียกคำขอ",
"limit": "จำนวนรายการบันทึกที่จะส่งคืน (ค่าเริ่มต้น: 100)",
"search": "คำค้นหาสำหรับกรองบันทึก",
"since": "ส่งคืนบันทึกตั้งแต่เวลาประทับนี้",
"follow": "ติดตามรายการบันทึกใหม่อย่างต่อเนื่อง",
"api_key": "กรองบันทึกตาม API key"
},
"utilization": {
"description": "แสดงเมตริกการใช้งาน API key",
"api_key": "กรองตาม API key"
},
"history": {
"description": "แสดงประวัติคำขอ",
"limit": "จำนวนรายการประวัติ (ค่าเริ่มต้น: 100)"
},
"proxy_logs": {
"description": "แสดงบันทึกคำขอระดับพร็อกซี",
"limit": "จำนวนรายการบันทึกพร็อกซี (ค่าเริ่มต้น: 100)"
}
},
"cost": {
"description": "แสดงรายงานค่าใช้จ่ายพร้อมแจกแจงตามผู้ให้บริการ โมเดล คอมโบ หรือ API key",
"period": "ช่วงเวลา: 1d|7d|30d|90d|ytd|all (ค่าเริ่มต้น: 30d)",
"since": "วันที่เริ่มต้น (รูปแบบ ISO เช่น 2026-01-01) — มีผลแทนที่ --period",
"until": "วันที่สิ้นสุด (รูปแบบ ISO)",
"group_by": "จัดกลุ่มผลลัพธ์ตาม: provider|model|api-key|combo|day (ค่าเริ่มต้น: provider)",
"api_key_filter": "กรองตาม API key ที่ระบุ",
"limit": "จำนวนแถวสูงสุดที่จะแสดง (ค่าเริ่มต้น: 100)"
},
"simulate": {
"description": "การจำลองการกำหนดเส้นทางแบบ Dry-run — แสดงผู้ให้บริการที่จะถูกเลือกโดยไม่เรียกต้นทาง",
"file": "โหลดเนื้อหาคำขอทั้งหมดจากไฟล์ JSON",
"model": "ID โมเดล (ค่าเริ่มต้น: auto)",
"combo": "บังคับใช้คอมโบที่ระบุตามชื่อ",
"reasoning": "ระดับความพยายามในการใช้เหตุผล (low|medium|high)",
"thinking": "งบประมาณโทเค็นสำหรับการคิดแบบขยาย",
"explain": "พิมพ์โครงสร้างทางเลือกสำรองและช่วงค่าใช้จ่ายไปยัง stderr",
"noCombo": "ไม่พบคอมโบที่ตรงกัน กำหนดค่าคอมโบด้วย: omniroute combo create"
},
"chat": {
"description": "ส่งพรอมต์แชตแบบครั้งเดียวไปยัง OmniRoute",
"file": "อ่านพรอมต์จากไฟล์",
"stdin": "อ่านพรอมต์จาก stdin",
"system": "พรอมต์ระบบ",
"model": "รหัสโมเดล (ค่าเริ่มต้น: auto)",
"max_tokens": "จำนวนโทเค็นสูงสุดในการตอบกลับ",
"temperature": "ค่าอุณหภูมิการสุ่มตัวอย่าง (02)",
"top_p": "การสุ่มตัวอย่างแบบนิวเคลียส Top-p",
"reasoning_effort": "ระดับความพยายามในการให้เหตุผล (low|medium|high)",
"thinking_budget": "งบประมาณโทเค็นสำหรับการคิดแบบขยาย",
"combo": "บังคับใช้คอมโบที่ระบุด้วยชื่อ",
"responses_api": "ใช้ /v1/responses แทน /v1/chat/completions",
"stream": "สตรีมคำตอบแบบเพิ่มขึ้นทีละส่วน",
"no_history": "ไม่บันทึกลงใน ~/.omniroute/cli-history.jsonl",
"error": {
"empty_prompt": "ข้อผิดพลาด: ต้องระบุพรอมต์ (อาร์กิวเมนต์ตามตำแหน่ง, --file หรือ --stdin)"
}
},
"serve": {
"description": "เริ่มเซิร์ฟเวอร์ OmniRoute (การดำเนินการเริ่มต้น)",
"starting": "กำลังเริ่มเซิร์ฟเวอร์ OmniRoute บนพอร์ต {port}...",
"ready": "พร้อมใช้งานที่ http://localhost:{port}",
"stopping": "กำลังหยุดเซิร์ฟเวอร์ (PID {pid})...",
"stopped": "หยุดเซิร์ฟเวอร์แล้ว",
"notRunning": "เซิร์ฟเวอร์ไม่ได้ทำงานอยู่",
"port": "พอร์ตสำหรับรับฟัง (ค่าเริ่มต้น: 20128)",
"no_open": "ไม่เปิดเบราว์เซอร์โดยอัตโนมัติ",
"daemon": "เรียกใช้เซิร์ฟเวอร์เป็นดีมอนเบื้องหลัง",
"log": "แสดงบันทึกเซิร์ฟเวอร์ในบรรทัด",
"no_recovery": "ปิดใช้งานการรีสตาร์ตอัตโนมัติเมื่อขัดข้อง (โหมดดีบัก)",
"max_restarts": "จำนวนครั้งสูงสุดที่จะรีสตาร์ตหลังขัดข้องภายใน 30 วินาทีก่อนยกเลิก (ค่าเริ่มต้น: 2)",
"tray": "เริ่มในถาดระบบ (เฉพาะเดสก์ท็อป ต้องเลือกเปิดใช้)",
"no_tray": "ปิดใช้งานไอคอนถาดระบบ",
"ready_timeout": "ระยะหมดเวลาของโพรบตรวจสอบความพร้อมเป็นมิลลิวินาที (รวมถึง OMNIROUTE_READY_TIMEOUT_MS, ค่าเริ่มต้น 60000)",
"tls_cert": "พาธไปยังใบรับรอง TLS (PEM) สำหรับให้บริการ HTTPS (รวมถึง OMNIROUTE_TLS_CERT)",
"tls_key": "พาธไปยังคีย์ส่วนตัว TLS (PEM) สำหรับให้บริการ HTTPS (รวมถึง OMNIROUTE_TLS_KEY)"
},
"backup": {
"title": "สำรองข้อมูล",
"description": "สร้างข้อมูลสำรองของข้อมูล OmniRoute",
"creating": "กำลังสร้างข้อมูลสำรอง...",
"done": "บันทึกข้อมูลสำรองไปยัง {path} แล้ว",
"noFiles": "ไม่มีไฟล์ให้สำรองข้อมูล (ยังไม่ได้เริ่มต้นฐานข้อมูล)",
"failed": "การสำรองข้อมูลล้มเหลว: {error}",
"restoring": "กำลังกู้คืนจาก {path}...",
"restored": "กู้คืนเสร็จสมบูรณ์",
"restoreDescription": "กู้คืนจากข้อมูลสำรอง",
"listTitle": "ข้อมูลสำรองที่มีอยู่",
"noBackups": "ไม่พบข้อมูลสำรอง",
"notFound": "ไม่พบข้อมูลสำรอง: {name}",
"confirmRestore": "เขียนทับข้อมูลปัจจุบันด้วยข้อมูลสำรองจาก {ts} หรือไม่?",
"createDescription": "สร้างข้อมูลสำรองของ OmniRoute",
"nameOpt": "ชื่อข้อมูลสำรองแบบกำหนดเอง",
"cloudOpt": "อัปโหลดข้อมูลสำรองไปยังพื้นที่จัดเก็บบนคลาวด์",
"encryptOpt": "เข้ารหัสข้อมูลสำรองด้วย AES-256-GCM",
"keyFileOpt": "พาธไปยังไฟล์ที่มีวลีรหัสผ่านสำหรับการเข้ารหัส",
"excludeOpt": "ไม่รวมไฟล์ที่ตรงกับรูปแบบ (ระบุซ้ำได้)",
"retentionOpt": "เก็บเฉพาะข้อมูลสำรอง N รายการล่าสุด",
"passphrasePrompt": "วลีรหัสผ่านสำหรับการเข้ารหัส:",
"noPassphrase": "ต้องระบุวลีรหัสผ่านสำหรับข้อมูลสำรองที่เข้ารหัส",
"cloudFailed": "คำเตือน: การอัปโหลดไปยังคลาวด์ล้มเหลว บันทึกข้อมูลสำรองไว้ในเครื่องแล้ว",
"cloudUploaded": "อัปโหลดข้อมูลสำรองไปยังคลาวด์แล้ว: {url}",
"auto": {
"title": "กำหนดการสำรองข้อมูล",
"enableDescription": "เปิดใช้งานการสำรองข้อมูลอัตโนมัติตามกำหนดเวลา",
"disableDescription": "ปิดใช้งานการสำรองข้อมูลอัตโนมัติตามกำหนดเวลา",
"statusDescription": "แสดงสถานะปัจจุบันของกำหนดการสำรองข้อมูล",
"cronOpt": "นิพจน์ Cron สำหรับกำหนดการ (ค่าเริ่มต้น: ทุกวันเวลา 03:00 น.)",
"enabled": "เปิดใช้งานการสำรองข้อมูลอัตโนมัติแล้ว (cron: {cron})",
"hint": "omniroute serve จะอ่านกำหนดการเมื่อเริ่มทำงาน",
"disabled": "ปิดใช้งานการสำรองข้อมูลอัตโนมัติแล้ว",
"notConfigured": "ยังไม่ได้กำหนดค่ากำหนดการสำรองข้อมูล"
}
},
"health": {
"description": "ตรวจสอบสถานะความพร้อมใช้งานของเซิร์ฟเวอร์และสถานะของคอมโพเนนต์",
"noServer": "เซิร์ฟเวอร์ไม่ได้ทำงาน เริ่มด้วย: omniroute serve",
"title": "ความพร้อมใช้งาน",
"status": "สถานะ: {status}",
"uptime": "ระยะเวลาทำงาน: {uptime}",
"requests": "คำขอ (24 ชม.): {count}",
"cost": "ค่าใช้จ่าย (24 ชม.): ${cost}"
},
"quota": {
"description": "แสดงการใช้โควตาของผู้ให้บริการ",
"noServer": "เซิร์ฟเวอร์ไม่ได้ทำงาน เริ่มด้วย: omniroute serve",
"noData": "ไม่มีข้อมูลโควตา"
},
"cache": {
"description": "จัดการแคชการตอบกลับ",
"noServer": "เซิร์ฟเวอร์ไม่ได้ทำงาน เริ่มด้วย: omniroute serve",
"cleared": "ล้างแคชแล้ว",
"clearFailed": "ล้างแคชไม่สำเร็จ"
},
"redis": {
"description": "เปิดใช้คอนเทนเนอร์ Redis ในเครื่องด้วยการคลิกเดียว (Podman หรือ Docker) สำหรับการแคชและการติดตามโควตาของ OmniRoute"
},
"test": {
"description": "ทดสอบการเชื่อมต่อกับผู้ให้บริการ",
"noServer": "เซิร์ฟเวอร์ไม่ได้ทำงาน เริ่มต้นด้วย: omniroute serve",
"testing": "กำลังทดสอบ {provider} / {model}...",
"passed": "เชื่อมต่อสำเร็จ!",
"failed": "การเชื่อมต่อล้มเหลว: {error}",
"allProvidersOpt": "ทดสอบผู้ให้บริการที่กำหนดค่าไว้ทั้งหมด",
"latencyOpt": "แสดงค่าความหน่วง (เฉลี่ย/ต่ำสุด/สูงสุด หน่วย ms)",
"repeatOpt": "ทดสอบซ้ำ N ครั้งและรวมผลลัพธ์",
"compareOpt": "โมเดลที่ต้องการเปรียบเทียบ โดยคั่นด้วยจุลภาค (เช่น gpt-4o,claude-3-5-sonnet)",
"saveOpt": "บันทึกผลลัพธ์ลงในไฟล์ JSON",
"saved": "บันทึกผลลัพธ์ไปยัง {path} แล้ว",
"compareTitle": "การเปรียบเทียบโมเดล",
"compareMinTwo": "ต้องมีอย่างน้อยสองโมเดลสำหรับ --compare (คั่นด้วยจุลภาค)",
"noProviders": "ยังไม่ได้กำหนดค่าผู้ให้บริการ เพิ่มได้ด้วย: omniroute keys add"
},
"update": {
"checking": "กำลังตรวจสอบการอัปเดต...",
"upToDate": "เป็นเวอร์ชันล่าสุดแล้ว ({version})",
"available": "มีการอัปเดต: {current} → {latest}",
"installing": "กำลังติดตั้ง {latest}...",
"done": "อัปเดตเป็น {latest} แล้ว โปรดรีสตาร์ตเซิร์ฟเวอร์เพื่อให้การเปลี่ยนแปลงมีผล"
},
"mcp": {
"title": "เซิร์ฟเวอร์ MCP",
"running": "เซิร์ฟเวอร์ MCP กำลังทำงาน ({transport})",
"stopped": "เซิร์ฟเวอร์ MCP หยุดทำงานแล้ว",
"restarted": "รีสตาร์ตเซิร์ฟเวอร์ MCP แล้ว",
"stoppedHint": "เรียกใช้ `omniroute mcp enable` เพื่อเปิดใช้งาน",
"enabled": "เปิดใช้งานเซิร์ฟเวอร์ MCP แล้ว",
"disabled": "ปิดใช้งานเซิร์ฟเวอร์ MCP แล้ว",
"enable": {
"description": "เปิดใช้งานเซิร์ฟเวอร์ MCP",
"transport": "การรับส่งข้อมูลที่จะใช้: stdio|sse|streamable-http"
},
"disable": {
"description": "ปิดใช้งานเซิร์ฟเวอร์ MCP"
},
"call": {
"description": "เรียกใช้เครื่องมือ MCP โดยตรง",
"args": "ออบเจ็กต์อาร์กิวเมนต์ JSON (แบบอินไลน์)",
"args_file": "พาธไปยังไฟล์อาร์กิวเมนต์ JSON",
"stream": "ใช้เอนด์พอยต์แบบสตรีมมิง (/api/mcp/stream)",
"scope": "ขอบเขตที่จำเป็น (ระบุซ้ำได้ เช่น read:health)"
},
"scopes": {
"description": "แสดงรายการขอบเขต MCP ที่ใช้ได้",
"tool": "แสดงขอบเขตที่เครื่องมือเฉพาะต้องใช้"
},
"tools": {
"description": "ตรวจสอบเครื่องมือ MCP",
"list": {
"description": "แสดงรายการเครื่องมือ MCP ทั้งหมด",
"scope": "กรองตามขอบเขต"
},
"info": {
"description": "แสดงข้อมูลเมตาสำหรับเครื่องมือ MCP"
},
"schema": {
"description": "แสดงสคีมา JSON ของอินพุต/เอาต์พุตสำหรับเครื่องมือ MCP",
"io": "ประเภทสคีมา: input|output (ค่าเริ่มต้น: input)"
}
},
"audit": {
"description": "บันทึกการตรวจสอบ MCP (นามแฝงของ audit --source mcp)"
}
},
"a2a": {
"skills": {
"description": "แสดงรายการทักษะ A2A ที่มีจากการ์ดเอเจนต์"
},
"invoke": {
"description": "เรียกใช้ทักษะ A2A และส่งคืน ID งาน",
"input": "ออบเจ็กต์อินพุต JSON",
"input_file": "พาธไปยังไฟล์อินพุต JSON",
"wait": "รอให้งานเสร็จสิ้นก่อนส่งคืน",
"timeout": "ระยะหมดเวลาสำหรับรอให้งานเสร็จสิ้น หน่วยเป็น ms (ค่าเริ่มต้น: 60000)"
},
"tasks": {
"description": "จัดการงาน A2A",
"list": {
"status": "กรองตามสถานะ",
"skill": "กรองตาม ID ทักษะ"
},
"watch": {
"description": "ตรวจสอบสถานะงานเป็นระยะจนกว่าจะเสร็จสิ้น"
},
"stream": {
"description": "สตรีมเหตุการณ์การดำเนินงานผ่าน SSE"
},
"logs": {
"description": "แสดงข้อความและอาร์ติแฟกต์ของงาน"
}
}
},
"policy": {
"description": "จัดการนโยบายการอนุญาตของ OmniRoute",
"list": {
"description": "แสดงรายการนโยบาย",
"kind": "กรองตามประเภท (allow|deny|rate-limit|cost-cap)",
"scope": "กรองตามขอบเขต (global|api-key|provider)"
},
"get": {
"description": "ดูรายละเอียดนโยบายตาม ID"
},
"create": {
"description": "สร้างนโยบายจากไฟล์ JSON",
"file": "พาธไปยังไฟล์ JSON ของนโยบาย"
},
"update": {
"description": "อัปเดตนโยบายจากไฟล์ JSON",
"file": "พาธไปยังไฟล์ JSON ของนโยบาย"
},
"delete": {
"description": "ลบนโยบายตาม ID",
"yes": "ข้ามข้อความแจ้งให้ยืนยัน"
},
"evaluate": {
"description": "ประเมินนโยบายแบบทดลอง (รหัสออก 0=อนุญาต, 4=ปฏิเสธ)",
"api_key": "คีย์ API ที่จะประเมิน",
"action": "การดำเนินการที่จะตรวจสอบ (เช่น chat, embed, admin)",
"resource": "พาธหรือตัวระบุทรัพยากร",
"context": "บริบทเพิ่มเติมในรูปแบบออบเจ็กต์ JSON"
},
"export": {
"description": "ส่งออกนโยบายทั้งหมดไปยังไฟล์ JSON"
},
"import": {
"description": "นำเข้านโยบายจากไฟล์ JSON",
"overwrite": "เขียนทับนโยบายที่มี ID เดียวกัน"
}
},
"compression": {
"description": "กำหนดค่าและตรวจสอบไปป์ไลน์การบีบอัดของ OmniRoute",
"status": {
"description": "แสดงสถานะและการตั้งค่าการบีบอัดปัจจุบัน"
},
"configure": {
"description": "กำหนดค่าการบีบอัด",
"engine": "เอนจินการบีบอัด (caveman|rtk|hybrid|none)",
"caveman_agg": "ระดับความเข้มของ Caveman 0.01.0",
"rtk_budget": "งบประมาณโทเค็น RTK",
"language_pack": "แพ็กภาษาที่จะเปิดใช้งาน"
},
"engine": {
"description": "รับหรือตั้งค่าเอนจินการบีบอัดที่ใช้งานอยู่"
},
"combos": {
"description": "จัดการสถิติคอมโบการบีบอัด"
},
"rules": {
"description": "จัดการกฎการบีบอัด",
"add": {
"pattern": "รูปแบบสำหรับจับคู่ (regex หรือ field:pattern)",
"action": "การดำเนินการ: drop|shrink|replace"
}
},
"language_packs": {
"description": "แสดงรายการแพ็กภาษาสำหรับการบีบอัดที่พร้อมใช้งาน"
},
"preview": {
"description": "ดูตัวอย่างผลของการบีบอัดที่มีต่อคำขอ",
"file": "พาธไปยังไฟล์ JSON ของคำขอ"
}
},
"tunnel": {
"title": "ทันเนล",
"listDescription": "แสดงรายการทันเนลที่ใช้งานอยู่",
"createDescription": "สร้างทันเนล",
"created": "สร้างทันเนลแล้ว: {url}",
"stopped": "หยุดทันเนลแล้ว",
"confirmStop": "หยุดทันเนล {id} หรือไม่",
"stopDescription": "หยุดทันเนล",
"statusDescription": "แสดงสถานะโดยละเอียดของทันเนล",
"logsDescription": "แสดงบันทึกของทันเนล",
"infoDescription": "แสดงรายละเอียดการกำหนดค่าของทันเนล",
"rotateDescription": "สร้าง URL ทันเนลใหม่",
"tailOpt": "จำนวนบรรทัดของบันทึกที่จะแสดง",
"typeRequired": "ต้องระบุประเภททันเนล",
"noLogs": "ไม่มีบันทึกที่พร้อมใช้งาน",
"notAvailable": "ไม่มีข้อมูลทันเนล",
"noTunnels": "ไม่มีทันเนลที่ใช้งานอยู่",
"infoTitle": "ข้อมูลทันเนล: {type}",
"rotated": "เปลี่ยน URL ทันเนลแล้ว: {url}",
"confirmRotate": "เปลี่ยน URL ของทันเนล {type} หรือไม่ (ระบบจะสร้าง URL ใหม่)"
},
"stop": {
"description": "หยุดเซิร์ฟเวอร์ OmniRoute",
"stopping": "กำลังหยุดเซิร์ฟเวอร์ (PID {pid})...",
"stopped": "หยุดเซิร์ฟเวอร์แล้ว",
"notRunning": "ไม่มีเซิร์ฟเวอร์ที่กำลังทำงานอยู่",
"portFallback": "ไม่พบไฟล์ PID กำลังพยายามหยุดตามพอร์ต..."
},
"restart": {
"description": "รีสตาร์ตเซิร์ฟเวอร์ OmniRoute",
"restarting": "กำลังรีสตาร์ตเซิร์ฟเวอร์ OmniRoute..."
},
"dashboard": {
"description": "เปิดแดชบอร์ด OmniRoute ในเบราว์เซอร์",
"opening": "กำลังเปิดแดชบอร์ดที่ {url}",
"urlOnly": "แสดง URL ของแดชบอร์ดโดยไม่เปิดเบราว์เซอร์",
"tui": "เปิดแดชบอร์ด TUI แบบโต้ตอบ (UI เทอร์มินัล 7 แท็บ)"
},
"models": {
"description": "แสดงรายการโมเดลที่พร้อมใช้งาน (ต้องเปิดเซิร์ฟเวอร์)",
"search": "กรองโมเดลตาม id, ชื่อ, provider หรือคำอธิบาย",
"noServer": "เซิร์ฟเวอร์ไม่ได้ทำงาน เริ่มด้วย: omniroute serve",
"noModels": "ไม่พบโมเดล"
},
"audit": {
"description": "เข้าถึงบันทึกการตรวจสอบการปฏิบัติตามข้อกำหนดและ MCP",
"source": "แหล่งที่มาของบันทึก: all|compliance|mcp (ค่าเริ่มต้น: all)",
"since": "แสดงรายการตั้งแต่เวลาประทับนี้ (ISO 8601)",
"until": "แสดงรายการจนถึงเวลาประทับนี้ (ISO 8601)",
"tail": {
"description": "แสดงรายการบันทึกการตรวจสอบล่าสุด",
"follow": "ติดตามรายการใหม่อย่างต่อเนื่อง (ตรวจสอบทุก 2 วินาที)",
"limit": "จำนวนรายการสูงสุดที่จะแสดง (ค่าเริ่มต้น: 100)"
},
"search": {
"description": "ค้นหารายการบันทึกการตรวจสอบด้วยคำสำคัญ",
"limit": "จำนวนผลลัพธ์สูงสุด (ค่าเริ่มต้น: 200)",
"actor": "กรองตาม ID ของผู้ดำเนินการ",
"action": "กรองตามชื่อการดำเนินการ"
},
"export": {
"description": "ส่งออกบันทึกการตรวจสอบไปยังไฟล์",
"format": "รูปแบบเอาต์พุต: jsonl|csv (ค่าเริ่มต้น: jsonl)"
},
"stats": {
"description": "แสดงสถิติของบันทึกการตรวจสอบ",
"period": "ช่วงเวลา: 1d|7d|30d (ค่าเริ่มต้น: 7d)"
},
"get": {
"description": "รับรายการบันทึกการตรวจสอบหนึ่งรายการตาม ID"
}
},
"skills": {
"description": "จัดการทักษะของ OmniRoute (sandbox, builtin, custom, hybrid, skillssh)",
"list": {
"description": "แสดงรายการทักษะที่ติดตั้งแล้ว",
"type": "กรองตามประเภท (sandbox|custom|builtin|hybrid|skillssh)",
"enabled": "แสดงเฉพาะทักษะที่เปิดใช้งาน",
"disabled": "แสดงเฉพาะทักษะที่ปิดใช้งาน",
"api_key": "กรองตามคีย์ API"
},
"get": {
"description": "ดูรายละเอียดของทักษะตาม ID"
},
"install": {
"description": "ติดตั้งทักษะจากไฟล์หรือ URL",
"from_file": "พาธไปยังไฟล์คำจำกัดความทักษะ JSON",
"from_url": "URL ของคำจำกัดความทักษะระยะไกล",
"type": "ประเภททักษะ (sandbox|custom|hybrid)",
"enable": "เปิดใช้งานทักษะหลังติดตั้ง"
},
"enable": {
"description": "เปิดใช้งานทักษะตาม ID"
},
"disable": {
"description": "ปิดใช้งานทักษะตาม ID",
"yes": "ข้ามข้อความแจ้งยืนยัน"
},
"delete": {
"description": "ลบทักษะตาม ID",
"yes": "ข้ามข้อความแจ้งยืนยัน"
},
"execute": {
"description": "เรียกใช้ทักษะตาม ID",
"input": "ออบเจ็กต์อินพุต JSON",
"input_file": "พาธไปยังไฟล์อินพุต JSON",
"timeout": "ระยะหมดเวลาการดำเนินการเป็นมิลลิวินาที (ค่าเริ่มต้น: 30000)"
},
"executions": {
"description": "แสดงประวัติการเรียกใช้ทักษะ",
"skill": "กรองตาม ID ทักษะ",
"limit": "จำนวนผลลัพธ์สูงสุด (ค่าเริ่มต้น: 50)",
"status": "กรองตามสถานะ (running|completed|failed)"
},
"skillssh": {
"description": "จัดการทักษะที่ติดตั้งผ่าน SSH"
},
"marketplace": {
"description": "เรียกดูและติดตั้งทักษะจากมาร์เก็ตเพลส"
},
"mp": {
"search": {
"description": "ค้นหาแพ็กเกจในมาร์เก็ตเพลส",
"category": "กรองตามหมวดหมู่",
"tag": "กรองตามแท็ก",
"limit": "จำนวนผลลัพธ์สูงสุด (ค่าเริ่มต้น: 30)",
"sort": "เรียงตาม: downloads|rating|recent"
},
"info": {
"description": "แสดงรายละเอียดแพ็กเกจและ readme"
},
"install": {
"description": "ติดตั้งแพ็กเกจจากมาร์เก็ตเพลส",
"version": "เวอร์ชันแพ็กเกจ (ค่าเริ่มต้น: latest)",
"enable": "เปิดใช้งานหลังการติดตั้ง",
"yes": "ข้ามข้อความแจ้งยืนยัน"
},
"categories": {
"description": "แสดงรายการหมวดหมู่ในมาร์เก็ตเพลส"
},
"featured": {
"description": "แสดงแพ็กเกจแนะนำในมาร์เก็ตเพลส"
}
}
},
"memory": {
"description": "จัดการหน่วยความจำการสนทนาของ OmniRoute (FTS5 + vector)",
"search": {
"description": "ค้นหารายการหน่วยความจำด้วยคำค้นหาเชิงความหมาย",
"type": "กรองตามประเภทหน่วยความจำ (user|feedback|project|reference)",
"limit": "จำนวนผลลัพธ์สูงสุด (ค่าเริ่มต้น: 20)",
"api_key": "กรองตามคีย์ API",
"token_budget": "จำกัดจำนวนโทเค็นทั้งหมดในผลลัพธ์"
},
"add": {
"description": "เพิ่มรายการหน่วยความจำใหม่",
"content": "เนื้อหาข้อความในหน่วยความจำ",
"file": "อ่านเนื้อหาจากไฟล์",
"type": "ประเภทหน่วยความจำ (ค่าเริ่มต้น: user)",
"metadata": "ออบเจ็กต์ข้อมูลเมตา JSON",
"api_key": "เชื่อมโยงกับคีย์ API"
},
"clear": {
"description": "ลบรายการหน่วยความจำที่ตรงกับตัวกรอง",
"type": "กรองตามประเภท",
"older": "ลบรายการที่เก่ากว่าระยะเวลาที่กำหนด (30d, 6m, 1y)",
"api_key": "กรองตามคีย์ API",
"yes": "ข้ามข้อความแจ้งยืนยัน"
},
"list": {
"description": "แสดงรายการหน่วยความจำโดยไม่มีการจัดอันดับการค้นหา",
"type": "กรองตามประเภท",
"limit": "จำนวนผลลัพธ์สูงสุด (ค่าเริ่มต้น: 100)",
"api_key": "กรองตามคีย์ API"
},
"get": {
"description": "รับรายการหน่วยความจำหนึ่งรายการตาม ID"
},
"delete": {
"description": "ลบรายการหน่วยความจำตาม ID",
"yes": "ข้ามข้อความแจ้งให้ยืนยัน"
},
"health": {
"description": "แสดงสถานะของระบบย่อยหน่วยความจำ (FTS5 + Qdrant)"
}
},
"oauth": {
"description": "จัดการการเชื่อมต่อผู้ให้บริการ OAuth",
"providers": {
"description": "แสดงรายการผู้ให้บริการที่รองรับ OAuth และประเภทโฟลว์"
},
"start": {
"description": "เริ่มโฟลว์การอนุญาต OAuth สำหรับผู้ให้บริการ",
"provider": "รหัสผู้ให้บริการ (gemini, copilot, cursor, …)",
"no_browser": "แสดงเฉพาะ URL — ไม่ต้องเปิดเบราว์เซอร์",
"import_system": "นำเข้าข้อมูลรับรองโดยอัตโนมัติจากการกำหนดค่าระบบภายในเครื่อง",
"social": "ผู้ให้บริการการเข้าสู่ระบบผ่านโซเชียล (google|github) — จำเป็นสำหรับ kiro",
"timeout": "ระยะหมดเวลารอการอนุญาตเป็นมิลลิวินาที (ค่าเริ่มต้น: 300000)"
},
"status": {
"description": "แสดงรายการการเชื่อมต่อ OAuth ที่ใช้งานอยู่",
"provider": "กรองตามรหัสผู้ให้บริการ"
},
"revoke": {
"description": "เพิกถอนการเชื่อมต่อ OAuth",
"provider": "รหัสผู้ให้บริการที่จะเพิกถอน",
"connection_id": "เพิกถอนการเชื่อมต่อที่ระบุตาม ID",
"yes": "ข้ามข้อความแจ้งให้ยืนยัน"
}
},
"cloud": {
"description": "จัดการงานเอเจนต์ AI บนคลาวด์ (codex, devin, jules)",
"agents": {
"description": "แสดงรายการเอเจนต์บนคลาวด์ที่พร้อมใช้งาน"
},
"agent": {
"description": "จัดการงานเอเจนต์ {agent} บนคลาวด์",
"auth": {
"description": "อนุญาต {agent} ผ่าน OAuth"
}
},
"task": {
"description": "จัดการงานเอเจนต์บนคลาวด์",
"create": {
"description": "สร้างงานเอเจนต์ใหม่",
"title": "ชื่องาน (ค่าเริ่มต้นคือ 80 อักขระแรกของพรอมต์)",
"prompt": "ข้อความพรอมต์ของงาน",
"prompt_file": "อ่านพรอมต์จากไฟล์",
"repo": "URL ของรีพอซิทอรีที่จะโคลนสำหรับงาน",
"branch": "ชื่อแบรนช์ที่จะใช้",
"metadata": "ออบเจ็กต์ข้อมูลเมตา JSON"
},
"list": {
"description": "แสดงรายการงานของเอเจนต์",
"status": "กรองตามสถานะ (running|completed|failed|cancelled)",
"limit": "จำนวนผลลัพธ์สูงสุด (ค่าเริ่มต้น: 50)"
},
"get": {
"description": "ดูรายละเอียดงานตาม ID"
},
"status": {
"description": "แสดงสถานะงาน (running|completed|failed|cancelled)"
},
"cancel": {
"description": "ยกเลิกงานที่กำลังทำงานอยู่",
"yes": "ข้ามข้อความแจ้งให้ยืนยัน"
},
"approve": {
"description": "อนุมัติแผนของเอเจนต์เพื่อเริ่มดำเนินการ"
},
"message": {
"description": "ส่งข้อความไปยังงานที่กำลังทำงานอยู่"
}
},
"sources": {
"description": "แสดงรายการไฟล์ต้นฉบับที่สร้างโดยงาน"
}
},
"eval": {
"description": "จัดการชุดการประเมินและการเรียกใช้",
"suites": {
"description": "จัดการชุดการประเมิน",
"list": {
"description": "แสดงรายการชุดการประเมิน"
},
"get": {
"description": "ดูรายละเอียดชุดการประเมินตาม ID"
},
"create": {
"description": "สร้างชุดการประเมินจากไฟล์ JSON",
"file": "พาธไปยังไฟล์ JSON ที่กำหนดชุดการประเมิน"
}
},
"run": {
"description": "เริ่มการรันการประเมินสำหรับชุดการประเมิน",
"model": "ID โมเดลที่จะประเมิน (ค่าเริ่มต้น: auto)",
"combo": "บังคับใช้คอมโบที่ระบุตามชื่อ",
"concurrency": "จำนวนตัวอย่างที่ทำงานพร้อมกัน (ค่าเริ่มต้น: 4)",
"tag": "ติดแท็กการรันนี้เพื่อกรองในภายหลัง",
"watch": "ติดตามความคืบหน้าของการรันจนเสร็จสิ้น"
},
"list": {
"description": "แสดงรายการการรันการประเมิน",
"suite": "กรองตาม ID ชุดการประเมิน",
"status": "กรองตามสถานะ",
"since": "แสดงการรันนับตั้งแต่การประทับเวลานี้",
"limit": "จำนวนผลลัพธ์สูงสุด (ค่าเริ่มต้น: 50)"
},
"get": {
"description": "ดูรายละเอียดการรันการประเมินตาม ID"
},
"results": {
"description": "แสดงผลลัพธ์ของตัวอย่างสำหรับการรันการประเมิน",
"failed": "แสดงเฉพาะตัวอย่างที่ล้มเหลว"
},
"cancel": {
"description": "ยกเลิกการรันการประเมินที่กำลังดำเนินอยู่",
"yes": "ข้ามข้อความแจ้งยืนยัน"
},
"scorecard": {
"description": "แสดงตารางคะแนนสำหรับการรันการประเมินที่เสร็จสมบูรณ์"
}
},
"webhooks": {
"description": "จัดการเว็บฮุกของ OmniRoute",
"events": {
"description": "แสดงรายการประเภทเหตุการณ์เว็บฮุกทั้งหมดที่พร้อมใช้งาน"
},
"list": {
"description": "แสดงรายการเว็บฮุกที่กำหนดค่าไว้"
},
"get": {
"description": "ดูรายละเอียดเว็บฮุกตาม ID"
},
"add": {
"description": "ลงทะเบียนเว็บฮุกใหม่",
"url": "URL ปลายทาง",
"events": "รายการประเภทเหตุการณ์ที่คั่นด้วยจุลภาค",
"secret": "ข้อมูลลับสำหรับการลงนาม HMAC",
"header": "ส่วนหัวเพิ่มเติมในรูปแบบ key=value (ระบุซ้ำได้)",
"no_enabled": "สร้างเว็บฮุกในสถานะปิดใช้งาน"
},
"update": {
"description": "อัปเดตเว็บฮุกที่มีอยู่",
"enabled": "ตั้งค่าสถานะการเปิดใช้งาน (true|false)"
},
"remove": {
"description": "ลบเว็บฮุก",
"yes": "ข้ามข้อความแจ้งยืนยัน"
},
"test": {
"description": "ส่งเหตุการณ์ทดสอบไปยังเว็บฮุก",
"event": "ประเภทเหตุการณ์ที่จะจำลอง (ค่าเริ่มต้น: request.completed)"
}
},
"program": {
"description": "OmniRoute — AI Router อัจฉริยะพร้อม Auto Fallback",
"version": "แสดงเวอร์ชันและออก",
"output": "รูปแบบเอาต์พุต (table, json, jsonl, csv)",
"quiet": "ซ่อนเอาต์พุตที่ไม่จำเป็น",
"no_color": "ปิดใช้งานเอาต์พุตสี",
"timeout": "หมดเวลา HTTP request ในมิลลิวินาที",
"api_key": "API Key สำหรับ OmniRoute server",
"base_url": "Base URL ของ OmniRoute server",
"context": "บริบท/โปรไฟล์ของเซิร์ฟเวอร์สำหรับคำสั่งนี้",
"lang": "ตั้งค่าภาษาแสดงผล CLI (แทนที่ OMNIROUTE_LANG)"
},
"files": {
"description": "จัดการไฟล์ (อัปโหลด แสดงรายการ ดู ดาวน์โหลด ลบ)",
"list": {
"purpose": "กรองตามวัตถุประสงค์",
"limit": "จำนวนผลลัพธ์สูงสุด"
},
"get": {
"description": "รับข้อมูลเมตาของไฟล์"
},
"upload": {
"description": "อัปโหลดไฟล์",
"purpose": "วัตถุประสงค์ของไฟล์ (batch, assistants, fine-tune)"
},
"content": {
"description": "ดาวน์โหลดเนื้อหาไฟล์",
"out": "บันทึกไปยังพาธ (ค่าเริ่มต้น: stdout)"
},
"delete": {
"yes": "ข้ามการยืนยัน"
}
},
"batches": {
"description": "จัดการงานแบตช์ที่เข้ากันได้กับ OpenAI",
"list": {
"status": "กรองตามสถานะ",
"limit": "จำนวนผลลัพธ์สูงสุด"
},
"create": {
"description": "สร้างงานแบตช์",
"inputFile": "ID ไฟล์อินพุต",
"endpoint": "เอนด์พอยต์เป้าหมาย",
"window": "กรอบเวลาการดำเนินการให้เสร็จสิ้น",
"metadata": "เพิ่มข้อมูลเมตา key=value"
},
"submit": {
"description": "อัปโหลดไฟล์ JSONL และสร้างงานแบตช์",
"jsonl": "พาธไปยังไฟล์ JSONL",
"endpoint": "เอนด์พอยต์เป้าหมาย",
"wait": "รอจนกว่าจะเสร็จสิ้น"
},
"cancel": {
"yes": "ข้ามการยืนยัน"
},
"wait": {
"timeout": "ระยะหมดเวลาเป็น ms"
},
"output": {
"out": "บันทึกเอาต์พุตไปยังพาธ"
},
"errors": {
"out": "บันทึกข้อผิดพลาดไปยังพาธ"
}
},
"translator": {
"description": "แปลเนื้อหาคำขอระหว่างรูปแบบ LLM",
"detect": {
"description": "ตรวจหารูปแบบเนื้อหา"
},
"translate": {
"description": "แปลงเนื้อหาจากรูปแบบหนึ่งเป็นอีกรูปแบบหนึ่ง"
},
"send": {
"description": "แปลและส่งต่อไปยังต้นทาง"
},
"stream": {
"description": "แปลเนื้อหาคำขอแบบสตรีม"
},
"from": "รูปแบบต้นทาง (openai|anthropic|gemini|cohere)",
"to": "รูปแบบเป้าหมาย (openai|anthropic|gemini|cohere)",
"file": "พาธไปยังไฟล์ JSON เนื้อหาคำขอ",
"out": "บันทึกเอาต์พุตลงในไฟล์",
"model": "แทนที่โมเดล",
"history": {
"limit": "จำนวนผลลัพธ์สูงสุด"
}
},
"pricing": {
"description": "จัดการข้อมูลราคาสำหรับโมเดล",
"sync": {
"description": "ซิงค์ราคาจากแหล่งต้นทาง",
"provider": "กรองตามผู้ให้บริการ",
"force": "บังคับให้ซิงค์ใหม่"
},
"list": {
"provider": "กรองตามผู้ให้บริการ",
"model": "กรองตามโมเดล",
"limit": "จำนวนผลลัพธ์สูงสุด"
},
"defaults": {
"description": "จัดการราคาเริ่มต้น",
"input": "ต้นทุนอินพุตต่อ 1 ล้านโทเค็น (USD)",
"output": "ต้นทุนเอาต์พุตต่อ 1 ล้านโทเค็น (USD)",
"cacheRead": "ต้นทุนการอ่านแคชต่อ 1 ล้านโทเค็น (USD)",
"cacheWrite": "ต้นทุนการเขียนแคชต่อ 1 ล้านโทเค็น (USD)"
},
"diff": {
"description": "แสดงความแตกต่างจากราคาต้นทาง",
"model": "กรองตามโมเดล"
}
},
"radar": {
"description": "ตรวจสอบและซิงค์ฟีดแค็ตตาล็อก Radar ภายในเครื่อง",
"status": "แสดงการตั้งค่า Radar ภายในเครื่องและสถานะแคชของฟีด",
"sync": "ซิงค์แค็ตตาล็อก การแนะนำ ข้อเสนอ และ Intel ผ่านเซิร์ฟเวอร์ภายในเครื่อง"
},
"resilience": {
"description": "ตรวจสอบและจัดการกลไกความยืดหยุ่น",
"status": {
"provider": "กรองตามผู้ให้บริการ"
},
"breakers": {
"provider": "กรองตามผู้ให้บริการ"
},
"cooldowns": {
"provider": "กรองตามผู้ให้บริการ",
"connectionId": "กรองตาม ID การเชื่อมต่อ"
},
"lockouts": {
"provider": "กรองตามผู้ให้บริการ",
"model": "กรองตามโมเดล"
},
"reset": {
"description": "รีเซ็ตสถานะเบรกเกอร์/ช่วงพัก",
"provider": "ผู้ให้บริการที่จะรีเซ็ต",
"connectionId": "ID การเชื่อมต่อที่จะรีเซ็ต",
"model": "โมเดลที่จะยกเลิกการล็อก",
"allCooldowns": "รีเซ็ตช่วงพักทั้งหมดสำหรับผู้ให้บริการ",
"yes": "ข้ามการยืนยัน"
},
"profile": {
"description": "จัดการโปรไฟล์ความยืดหยุ่น",
"name": "ชื่อโปรไฟล์"
},
"config": {
"description": "จัดการการกำหนดค่าความยืดหยุ่น",
"threshold": "เกณฑ์จำนวนครั้งที่ล้มเหลว",
"resetTimeout": "ระยะหมดเวลาก่อนรีเซ็ต หน่วย ms",
"baseCooldown": "ช่วงพักพื้นฐาน หน่วย ms"
}
},
"nodes": {
"description": "จัดการโหนดของผู้ให้บริการ (เอนด์พอยต์)",
"list": {
"provider": "กรองตามผู้ให้บริการ",
"enabled": "แสดงเฉพาะโหนดที่เปิดใช้งาน"
},
"add": {
"provider": "ชื่อผู้ให้บริการ",
"baseUrl": "URL ฐานสำหรับโหนด",
"name": "ชื่อโหนด",
"weight": "ค่าน้ำหนักการกระจายโหลด",
"region": "แท็กภูมิภาค",
"authHeader": "ส่วนหัวการยืนยันตัวตนแบบกำหนดเอง (key=value)"
},
"update": {
"baseUrl": "URL ฐานใหม่",
"name": "ชื่อใหม่",
"weight": "น้ำหนักใหม่",
"region": "ภูมิภาคใหม่",
"enabled": "เปิดหรือปิดใช้งาน (true|false)"
},
"remove": {
"yes": "ข้ามการยืนยัน"
},
"validate": {
"baseUrl": "URL ที่จะตรวจสอบ",
"provider": "ผู้ให้บริการที่ใช้ตรวจสอบเปรียบเทียบ"
},
"test": {
"description": "ส่งคำขอทดสอบไปยังโหนด"
},
"metrics": {
"description": "แสดงเมตริกของโหนด",
"period": "ช่วงเวลา (เช่น 24h, 7d)"
}
},
"context": {
"description": "กำหนดค่าไปป์ไลน์วิศวกรรมบริบท (Caveman, RTK)",
"analytics": {
"period": "ช่วงเวลา (เช่น 7d, 30d)"
},
"caveman": {
"description": "จัดการตัวบีบอัดบริบท Caveman",
"config": {
"description": "แสดงหรืออัปเดตการกำหนดค่า Caveman",
"aggressiveness": "ระดับความเข้ม 0.01.0",
"maxShrinkPct": "เปอร์เซ็นต์การย่อสูงสุด",
"preserveTags": "แท็กที่ต้องเก็บไว้ โดยคั่นด้วยเครื่องหมายจุลภาค"
}
},
"rtk": {
"description": "จัดการเครื่องมือเพิ่มประสิทธิภาพบริบท RTK",
"config": {
"description": "แสดงหรืออัปเดตการกำหนดค่า RTK",
"tokenBudget": "งบประมาณโทเค็นสำหรับ RTK",
"reservePct": "เปอร์เซ็นต์สำรอง"
},
"filters": {
"description": "จัดการตัวกรอง RTK",
"pattern": "รูปแบบตัวกรอง (regex)",
"priority": "ลำดับความสำคัญของตัวกรอง (ค่าเริ่มต้น: 100)",
"action": "การดำเนินการของตัวกรอง: drop|shrink|replace",
"yes": "ข้ามการยืนยัน"
},
"test": {
"file": "พาธไปยังไฟล์ JSON ของคำขอ"
}
},
"combos": {
"description": "การจัดการชุดคำสั่งผสมที่คำนึงถึงบริบท"
}
},
"sessions": {
"description": "ตรวจสอบและจัดการเซสชันที่ใช้งานอยู่",
"list": {
"user": "กรองตามผู้ใช้",
"kind": "กรองตามประเภท (dashboard|api-key|mcp|a2a)",
"active": "แสดงเฉพาะเซสชันที่ใช้งานอยู่",
"limit": "จำนวนผลลัพธ์สูงสุด (ค่าเริ่มต้น: 100)"
},
"expire": {
"yes": "ข้ามการยืนยัน"
},
"expireAll": {
"user": "ผู้ใช้ที่ต้องการให้เซสชันหมดอายุ",
"yes": "ข้ามการยืนยัน"
}
},
"tags": {
"description": "จัดการแท็กทรัพยากร",
"add": {
"color": "สีแท็ก (เลขฐานสิบหกหรือชื่อสี)",
"description": "คำอธิบายแท็ก"
},
"remove": {
"yes": "ข้ามการยืนยัน"
},
"assign": {
"tag": "ชื่อแท็ก",
"to": "ทรัพยากรเป้าหมายในรูปแบบ type:id (เช่น provider:openai)"
},
"unassign": {
"tag": "ชื่อแท็ก",
"from": "ทรัพยากรต้นทางในรูปแบบ type:id"
}
},
"openapi": {
"description": "เข้าถึงและทดสอบข้อกำหนด OpenAPI ของ OmniRoute",
"dump": {
"description": "ส่งออกข้อกำหนด OpenAPI ไปยัง stdout หรือไฟล์",
"format": "รูปแบบเอาต์พุต: yaml|json (ค่าเริ่มต้น: yaml)",
"out": "บันทึกไปยังพาธไฟล์"
},
"validate": {
"description": "ตรวจสอบความถูกต้องของข้อกำหนด OpenAPI"
},
"try": {
"description": "ทดสอบ API endpoint ผ่านข้อกำหนด",
"method": "เมธอด HTTP (ค่าเริ่มต้น: GET)",
"body": "พาธไปยังไฟล์ JSON สำหรับ request body",
"query": "พารามิเตอร์คิวรีในรูปแบบ key=value (ระบุซ้ำได้)",
"header": "ส่วนหัวในรูปแบบ key=value (ระบุซ้ำได้)"
},
"endpoints": {
"description": "แสดง API endpoint ทั้งหมด",
"search": "กรองตามพาธหรือสรุป"
},
"paths": {
"description": "แสดงพาธ API ทั้งหมด"
}
},
"combo": {
"title": "คอมโบ",
"switched": "คอมโบที่ใช้งานอยู่: {name}",
"created": "สร้างคอมโบแล้ว: {name}",
"deleted": "ลบคอมโบแล้ว: {name}",
"noCombos": "ยังไม่ได้กำหนดค่าคอมโบ",
"confirmDelete": "ลบคอมโบ {name} หรือไม่?",
"suggest": {
"description": "แนะนำคอมโบที่ดีที่สุดสำหรับงานโดยใช้การให้คะแนนด้วย AI",
"task": "คำอธิบายงาน",
"maxCost": "ค่าใช้จ่ายสูงสุดต่อคำขอในหน่วย USD",
"maxLatencyMs": "เวลาแฝงสูงสุดในหน่วยมิลลิวินาที",
"weights": "ค่าน้ำหนักการให้คะแนนแบบ JSON เช่น {\"latency\":0.7,\"cost\":0.3}",
"top": "จำนวนตัวเลือกอันดับสูงสุดที่จะแสดง (ค่าเริ่มต้น: 5)",
"explain": "พิมพ์เหตุผลไปยัง stderr",
"switch": "เปิดใช้งานคอมโบอันดับสูงสุด"
}
},
"oneproxy": {
"description": "จัดการพูลอัปสตรีมของ OneProxy",
"stats": {
"provider": "กรองตามผู้ให้บริการ",
"period": "ช่วงเวลา (ค่าเริ่มต้น: 24h)"
},
"fetch": {
"description": "ดึงพร็อกซีจากพูล",
"count": "จำนวนพร็อกซีที่จะดึง (ค่าเริ่มต้น: 1)",
"type": "ประเภทพร็อกซี: http|socks5 (ค่าเริ่มต้น: http)"
},
"rotate": {
"description": "บังคับหมุนเวียนพร็อกซี",
"provider": "ผู้ให้บริการที่จะหมุนเวียน",
"connectionId": "ID การเชื่อมต่อเฉพาะที่จะหมุนเวียน"
},
"config": {
"description": "แสดงหรืออัปเดตการกำหนดค่า OneProxy",
"enabled": "เปิดใช้งานพูลพร็อกซี (true|false)",
"poolSize": "ขนาดพูล",
"providerSource": "URL สำหรับผู้ให้บริการพร็อกซี",
"rotationPolicy": "นโยบายการหมุนเวียน: sticky|per-request|periodic"
},
"pool": {
"description": "แสดงรายการพูลพร็อกซีปัจจุบันพร้อมเมตริก"
}
},
"open": {
"description": "เปิดหน้าแดชบอร์ด OmniRoute ที่ระบุในเบราว์เซอร์",
"url": "แสดงเฉพาะ URL โดยไม่เปิดเบราว์เซอร์"
},
"telemetry": {
"description": "เข้าถึงข้อมูลเทเลเมทรีแบบรวม",
"summary": {
"description": "แสดงสรุปเทเลเมทรีแบบรวม",
"period": "ช่วงเวลา: 24h|7d|30d (ค่าเริ่มต้น: 24h)",
"compareTo": "เปรียบเทียบกับช่วงเวลาก่อนหน้า"
},
"export": {
"description": "ส่งออกเหตุการณ์เทเลเมทรีเป็น JSONL",
"out": "พาธไฟล์เอาต์พุต (ค่าเริ่มต้น: telemetry.jsonl)",
"period": "ช่วงเวลาสำหรับการส่งออก (ค่าเริ่มต้น: 7d)"
}
},
"sync": {
"description": "ซิงค์การกำหนดค่าระหว่างอินสแตนซ์ OmniRoute",
"push": {
"description": "พุชการกำหนดค่าไปยังระบบคลาวด์หรืออินสแตนซ์ระยะไกล",
"target": "เป้าหมาย (cloud หรือ context:name)",
"bundle": "ส่วนของบันเดิลที่จะซิงค์",
"dryRun": "แสดงตัวอย่างโดยไม่ใช้การเปลี่ยนแปลง"
},
"pull": {
"description": "ดึงการกำหนดค่าจากระบบคลาวด์หรืออินสแตนซ์ระยะไกล",
"source": "แหล่งที่มา (cloud หรือ context:name)",
"merge": "ผสานกับการกำหนดค่าที่มีอยู่",
"replace": "แทนที่การกำหนดค่าที่มีอยู่",
"dryRun": "แสดงตัวอย่างโดยไม่ใช้การเปลี่ยนแปลง"
},
"diff": {
"source": "คอนเท็กซ์ต้นทาง",
"target": "คอนเท็กซ์ปลายทาง"
},
"bundle": {
"description": "ส่งออกการกำหนดค่าเป็นไฟล์บันเดิล",
"include": "ส่วนที่จะรวม (คั่นด้วยจุลภาค)"
},
"import": {
"description": "นำเข้าไฟล์บันเดิล",
"dryRun": "ตรวจสอบความถูกต้องโดยไม่ใช้การเปลี่ยนแปลง"
},
"initialize": {
"fromCloud": "เริ่มต้นจากข้อมูลสำรองบนคลาวด์"
},
"tokens": {
"description": "จัดการโทเค็นการซิงค์",
"create": {
"name": "ชื่อโทเค็น",
"scope": "ขอบเขตโทเค็น",
"ttl": "TTL ของโทเค็น (เช่น 30d)"
},
"revoke": {
"yes": "ข้ามการยืนยัน"
}
},
"resolve": {
"description": "แก้ไขข้อขัดแย้งในการซิงค์แบบโต้ตอบ"
}
},
"config": {
"contexts": {
"description": "จัดการคอนเท็กซ์/โปรไฟล์ของเซิร์ฟเวอร์ (เพิ่ม, ใช้งาน, แสดงรายการ, แสดงรายละเอียด, ลบ, เปลี่ยนชื่อ, ส่งออก, นำเข้า)"
},
"lang": {
"description": "จัดการภาษาที่แสดงผลของ CLI",
"getDescription": "แสดงรหัสภาษาที่ใช้งานอยู่ในปัจจุบัน",
"setDescription": "ตั้งค่าภาษาที่ใช้แสดงผลและบันทึกลงใน config",
"listDescription": "แสดงรายการภาษาที่ใช้ได้ทั้งหมด",
"listTitle": "ภาษาที่ใช้ได้",
"current": "ภาษา: {code} ({name})",
"saved": "ตั้งค่าภาษาเป็น {code} ({name}) แล้ว",
"noCode": "ต้องระบุรหัสภาษา เรียกใช้ 'omniroute config lang list' เพื่อดูรหัสที่ใช้ได้",
"unknown": "ไม่รู้จักรหัสภาษา: {code} เรียกใช้ 'omniroute config lang list' เพื่อดูรหัสที่ใช้ได้",
"alreadySet": "ตั้งค่าภาษาเป็น {code} อยู่แล้ว",
"envHint": "เคล็ดลับ: คุณสามารถตั้งค่า OMNIROUTE_LANG={code} ในสภาพแวดล้อมของคุณได้เช่นกัน"
}
},
"completion": {
"description": "สร้างหรือติดตั้งสคริปต์เติมคำสั่งอัตโนมัติสำหรับเชลล์",
"zsh": "แสดงสคริปต์เติมคำสั่งอัตโนมัติสำหรับ zsh",
"bash": "แสดงสคริปต์เติมคำสั่งอัตโนมัติสำหรับ bash",
"fish": "แสดงสคริปต์เติมคำสั่งอัตโนมัติสำหรับ fish",
"install": "ติดตั้งสคริปต์เติมคำสั่งอัตโนมัติแบบส่วนกลางสำหรับเชลล์ที่ตรวจพบ",
"refresh": "รีเฟรชแคชของคอมโบ/ผู้ให้บริการ/โมเดล"
},
"logs": {
"description": "สตรีมหรือส่งออกบันทึกคำขอ",
"follow": "สตรีมบันทึกแบบเรียลไทม์",
"filter": "กรองตามระดับ (error,warn,info) — คั่นด้วยเครื่องหมายจุลภาค",
"lines": "จำนวนบรรทัดที่จะดึงข้อมูล",
"timeout": "ระยะหมดเวลาการเชื่อมต่อ หน่วยเป็น ms",
"baseUrl": "URL ฐานของ OmniRoute API",
"requestId": "กรองตาม ID คำขอ",
"apiKey": "กรองตามคีย์ API",
"combo": "กรองตามชื่อคอมโบ",
"status": "กรองตามรหัสสถานะ HTTP",
"durationMin": "ระยะเวลาขั้นต่ำของคำขอ หน่วยเป็น ms",
"durationMax": "ระยะเวลาสูงสุดของคำขอ หน่วยเป็น ms",
"export": "บันทึกล็อกลงในไฟล์ (json/jsonl/csv)",
"exported": "บันทึกล็อกไปยัง {path} แล้ว",
"stopped": "หยุดสตรีมล็อกแล้ว",
"streamError": "เกิดข้อผิดพลาดในการสตรีมล็อก: {message}"
},
"tray": {
"description": "ควบคุมไอคอนในถาดระบบ",
"show": "แสดงไอคอนในถาดระบบ (หากเซิร์ฟเวอร์กำลังทำงานด้วย --tray)",
"hide": "ซ่อนไอคอนในถาดระบบ",
"quit": "ออกจาก OmniRoute ผ่านถาดระบบ"
},
"autostart": {
"description": "จัดการการเริ่ม OmniRoute อัตโนมัติเมื่อบูต (Linux: บริการผู้ใช้ systemd)",
"enable": "เปิดใช้การเริ่มอัตโนมัติเมื่อบูต",
"disable": "ปิดใช้การเริ่มอัตโนมัติเมื่อบูต",
"toggle": "สลับสถานะการเริ่มอัตโนมัติเมื่อบูต",
"status": "แสดงสถานะการเริ่มอัตโนมัติ"
},
"runtime": {
"description": "จัดการการพึ่งพารันไทม์แบบเนทีฟ",
"check": "ตรวจสอบสถานะของการพึ่งพาแบบเนทีฟในไดเรกทอรีรันไทม์",
"repair": "ติดตั้งการพึ่งพาแบบเนทีฟอีกครั้งในไดเรกทอรีรันไทม์",
"repair_force": "บังคับติดตั้งใหม่แม้ว่ายังใช้งานได้",
"clean": "ลบไดเรกทอรีรันไทม์ (เพิ่มพื้นที่ว่างในดิสก์)",
"clean_yes": "ข้ามการยืนยัน"
},
"repl": {
"description": "REPL แบบโต้ตอบหลายรอบกับ LLM",
"model": "โมเดลที่จะใช้ (ค่าเริ่มต้น: อัตโนมัติ)",
"combo": "ชื่อคอมโบที่จะใช้",
"system": "พรอมต์ระบบ",
"resume": "ดำเนินเซสชันที่บันทึกไว้ต่อตามชื่อ"
},
"plugin": {
"description": "จัดการปลั๊กอิน CLI (omniroute-cmd-*)",
"list": "แสดงรายการปลั๊กอินที่ติดตั้งแล้ว",
"install": "ติดตั้งปลั๊กอินจาก npm หรือพาธภายในเครื่อง",
"remove": "ลบปลั๊กอินที่ติดตั้งแล้ว",
"info": "แสดงรายละเอียดของปลั๊กอินที่ติดตั้งแล้ว",
"search": "ค้นหาปลั๊กอินที่พร้อมใช้งานในรีจิสทรี npm",
"update": "อัปเดตปลั๊กอินที่ติดตั้งแล้ว",
"scaffold": "สร้างโครงเริ่มต้นสำหรับปลั๊กอินใหม่"
},
"launch": {
"description": "เปิด Claude Code ที่เชื่อมต่อกับ OmniRoute (ภายในเครื่องหรือระยะไกล พร้อม --profile)",
"token": "โทเค็นที่ไคลเอนต์ Claude ควรส่ง (ANTHROPIC_AUTH_TOKEN)",
"notRunning": "ไม่สามารถเข้าถึง OmniRoute ที่ {port} ได้ เริ่มต้นด้วย 'omniroute serve'",
"notFound": "ไม่พบ CLI 'claude' ใน PATH"
},
"run": {
"description": "เปิดเป้าหมาย CLI ที่รองรับผ่าน OmniRoute"
},
"setupClaude": {
"description": "สร้างโปรไฟล์ Claude Code ใน ~/.claude/profiles จากแค็ตตาล็อกโมเดล OmniRoute"
},
"connect": {
"description": "เชื่อมต่อกับเซิร์ฟเวอร์ OmniRoute ระยะไกลและเข้าสู่โหมดระยะไกล"
},
"tokens": {
"description": "จัดการโทเค็นการเข้าถึง CLI แบบกำหนดขอบเขต (โหมดระยะไกล)"
},
"configure": {
"description": "เลือกผู้ให้บริการ+โมเดลจากเซิร์ฟเวอร์ที่ใช้งานอยู่และกำหนดค่า CLI ภายในเครื่องที่รองรับ"
},
"launchCodex": {
"description": "เปิด Codex CLI ที่เชื่อมต่อกับ OmniRoute (ภายในเครื่องหรือ VPS ระยะไกล)"
},
"setupCodex": {
"description": "สร้างไฟล์โปรไฟล์ใน ~/.codex จากแค็ตตาล็อกโมเดลแบบสดของ OmniRoute"
},
"packs": {
"description": "จัดการแพ็กรันไทม์เสริม (ML / ระบบอัตโนมัติของเบราว์เซอร์)",
"listDescription": "แสดงรายการแพ็กเสริมและสถานะการติดตั้ง",
"installDescription": "ติดตั้งแพ็กเสริมลงใน DATA_DIR",
"verifyDescription": "ตรวจสอบแพ็กที่ติดตั้งแล้วเทียบกับดัชนีเช็กซัมที่ให้มา",
"removeDescription": "ลบแพ็กเสริมที่ติดตั้งแล้ว",
"sourceOpt": "ไดเรกทอรีที่เก็บเพย์โหลดของแพ็กและดัชนีแพ็ก",
"warnNoIndex": "ไม่พบ optional-packs.index.json — ไม่สามารถติดตั้ง/ตรวจสอบได้ในเช็กเอาต์นี้ (บันเดิลเดสก์ท็อปมีไฟล์นี้ให้)",
"errUnknown": "แพ็กที่ไม่รู้จัก: {name}",
"errNoIndex": "ไม่พบดัชนีแพ็ก โปรดส่ง --source <dir> ที่เก็บเพย์โหลดของแพ็ก (บันเดิลเดสก์ท็อปมีไฟล์นี้อยู่ถัดจากแอป)",
"installed": "ติดตั้งและตรวจสอบแพ็ก \"{name}\" ที่ {dir} แล้ว",
"restartHint": "รีสตาร์ทเซิร์ฟเวอร์ OmniRoute (หรือแอปเดสก์ท็อป) เพื่อให้รันไทม์ตรวจพบแพ็ก",
"removed": "นำแพ็ก \"{name}\" ออกแล้ว",
"notInstalled": "ยังไม่ได้ติดตั้งแพ็ก \"{name}\"",
"verifyOk": "ตรวจสอบแพ็กที่ติดตั้งทั้งหมดเรียบร้อยแล้ว",
"verifyFailed": "แพ็ก {count} รายการไม่ผ่านการตรวจสอบ",
"noneInstalled": "ไม่มีแพ็กเสริมที่ติดตั้งไว้"
}
}