{
  "common": {
    "save": "บันทึก",
    "cancel": "ยกเลิก",
    "delete": "ลบ",
    "loading": "กำลังโหลด...",
    "error": "เกิดข้อผิดพลาด",
    "success": "ความสำเร็จ",
    "confirm": "คุณแน่ใจเหรอ?",
    "refresh": "รีเฟรช",
    "close": "ปิด",
    "add": "เพิ่ม",
    "edit": "แก้ไข",
    "search": "ค้นหา",
    "back": "กลับ",
    "next": "ถัดไป",
    "submit": "ส่ง",
    "reset": "รีเซ็ต",
    "copy": "คัดลอก",
    "copied": "คัดลอก!",
    "enabled": "เปิดใช้งานแล้ว",
    "disabled": "ปิดการใช้งาน",
    "active": "ใช้งานอยู่",
    "inactive": "ไม่ได้ใช้งาน",
    "noData": "ไม่มีข้อมูล",
    "configure": "กำหนดค่า",
    "manage": "จัดการ",
    "name": "ชื่อ",
    "actions": "การดำเนินการ",
    "status": "สถานะ",
    "type": "ประเภท",
    "model": "รุ่น",
    "models": "โมเดล",
    "provider": "ผู้ให้บริการ",
    "account": "บัญชี",
    "time": "เวลา",
    "details": "รายละเอียด",
    "created": "สร้างแล้ว",
    "lastUsed": "ใช้ล่าสุด",
    "loadMore": "โหลดเพิ่มเติม",
    "noResults": "ไม่พบผลลัพธ์",
    "reloadPage": "โหลดหน้าซ้ำ",
    "connected": "เชื่อมต่อแล้ว",
    "disconnected": "ตัดการเชื่อมต่อแล้ว",
    "notConfigured": "ไม่ได้กำหนดค่า",
    "testConnection": "ทดสอบการเชื่อมต่อ",
    "enable": "เปิดใช้งาน",
    "disable": "ปิดการใช้งาน",
    "columns": "คอลัมน์",
    "newest": "ใหม่ล่าสุด",
    "oldest": "เก่าแก่ที่สุด",
    "all": "ทั้งหมด",
    "none": "ไม่มี",
    "yes": "ใช่",
    "no": "ไม่",
    "warning": "คำเตือน",
    "note": "หมายเหตุ",
    "free": "ฟรี",
    "skipToContent": "ข้ามไปที่เนื้อหา"
  },
  "sidebar": {
    "home": "บ้าน",
    "dashboard": "แดชบอร์ด",
    "providers": "ผู้ให้บริการ",
    "combos": "คอมโบ",
    "usage": "การใช้งาน",
    "analytics": "การวิเคราะห์",
    "costs": "ค่าใช้จ่าย",
    "health": "สุขภาพ",
    "limits": "ขีดจำกัดและโควต้า",
    "cliTools": "เครื่องมือ CLI",
    "media": "สื่อ",
    "settings": "การตั้งค่า",
    "translator": "นักแปล",
    "docs": "เอกสาร",
    "issues": "ประเด็นต่างๆ",
    "apiManager": "ผู้จัดการ API",
    "logs": "บันทึก",
    "auditLog": "บันทึกการตรวจสอบ",
    "shutdown": "ปิดเครื่อง",
    "restart": "รีสตาร์ท",
    "shutdownConfirm": "ปิด OmniRoute หรือไม่?",
    "restartConfirm": "รีสตาร์ท OmniRoute หรือไม่",
    "version": "v{version}",
    "debug": "ดีบัก",
    "system": "ระบบ",
    "help": "ช่วยด้วย",
    "serverDisconnected": "เซิร์ฟเวอร์ถูกตัดการเชื่อมต่อ",
    "serverDisconnectedMsg": "พร็อกซีเซิร์ฟเวอร์ถูกหยุดหรือกำลังรีสตาร์ท",
    "expandSidebar": "ขยายแถบด้านข้าง",
    "collapseSidebar": "ยุบแถบด้านข้าง",
    "themes": "ธีมส์",
    "presetColors": "สียอดนิยม",
    "createTheme": "สร้างธีม",
    "chooseColor": "เลือกหนึ่งสี",
    "themeCoral": "ปะการัง",
    "themeBlue": "สีฟ้า",
    "themeRed": "สีแดง",
    "themeGreen": "สีเขียว",
    "themeViolet": "Violet",
    "themeOrange": "Orange",
    "themeCyan": "Cyan",
    "endpoints": "จุดปลายทาง",
    "playground": "Playground",
    "agents": "เอเจนต์",
    "cliToolsShort": "เครื่องมือ"
  },
  "themesPage": {
    "title": "ธีมส์",
    "description": "Choose a preset theme or create your own with a single color",
    "presetColors": "สียอดนิยม",
    "customTheme": "Custom theme",
    "customThemeDesc": "Click create theme and pick one color",
    "createTheme": "สร้างธีม",
    "activePreset": "Active theme"
  },
  "header": {
    "logout": "ออกจากระบบ",
    "language": "ภาษา",
    "providers": "ผู้ให้บริการ",
    "providerDescription": "จัดการการเชื่อมต่อผู้ให้บริการ AI ของคุณ",
    "combos": "คอมโบ",
    "comboDescription": "คอมโบโมเดลพร้อมทางเลือกสำรอง",
    "usage": "การใช้งานและการวิเคราะห์",
    "usageDescription": "ตรวจสอบการใช้งาน API การใช้โทเค็น และบันทึกคำขอของคุณ",
    "analytics": "การวิเคราะห์",
    "analyticsDescription": "แผนภูมิ แนวโน้ม และข้อมูลเชิงลึกในการประเมิน",
    "cliTools": "เครื่องมือ CLI",
    "cliToolsDescription": "กำหนดค่าเครื่องมือ CLI",
    "home": "บ้าน",
    "homeDescription": "ยินดีต้อนรับสู่ OmniRoute",
    "endpoint": "Endpoints",
    "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
    "settings": "การตั้งค่า",
    "settingsDescription": "จัดการการตั้งค่าของคุณ",
    "openaiCompatible": "รองรับ OpenAI",
    "anthropicCompatible": "เข้ากันได้กับมานุษยวิทยา",
    "media": "Media",
    "mediaDescription": "Generate images, videos, and music",
    "themes": "ธีมส์",
    "themesDescription": "Choose a color theme for the whole dashboard panel",
    "mcp": "MCP",
    "mcpDescription": "Model Context Protocol server management and tools",
    "a2a": "A2A",
    "a2aDescription": "Agent-to-Agent protocol tasks and observability"
  },
  "home": {
    "quickStart": "เริ่มต้นอย่างรวดเร็ว",
    "quickStartDesc": "เริ่มต้นใช้งานใน 4 ขั้นตอน เชื่อมต่อผู้ให้บริการ โมเดลเส้นทาง ตรวจสอบทุกอย่าง",
    "fullDocs": "เอกสารฉบับเต็ม",
    "step1Title": "1. สร้างคีย์ API",
    "step1Desc": "ไปที่ <endpoint>Endpoint</endpoint> -> คีย์ที่ลงทะเบียน สร้างหนึ่งคีย์ต่อสภาพแวดล้อม",
    "step2Title": "2. เชื่อมต่อผู้ให้บริการ",
    "step2Desc": "เพิ่มบัญชีใน <providers>Providers</providers> รองรับ OAuth, คีย์ API และระดับฟรี",
    "step3Title": "3. ชี้แนะลูกค้าของคุณ",
    "step3Desc": "ตั้งค่า URL พื้นฐานเป็น {url} ใน IDE หรือไคลเอ็นต์ API ของคุณ",
    "step4Title": "4. ตรวจสอบและเพิ่มประสิทธิภาพ",
    "step4Desc": "ติดตามโทเค็น ต้นทุน และข้อผิดพลาดใน <logs>บันทึกคำขอ</logs> และ <analytics>Analytics</analytics>",
    "providersOverview": "ภาพรวมผู้ให้บริการ",
    "configuredOf": "{configured} กำหนดค่าจากผู้ให้บริการที่พร้อมใช้งาน {total}",
    "noModelsAvailable": "ไม่มีรุ่นสำหรับผู้ให้บริการรายนี้",
    "configureFirst": "กำหนดค่าการเชื่อมต่อก่อนใน {providers}",
    "configureProvider": "กำหนดค่าผู้ให้บริการ",
    "modelAvailable": "{count} มีโมเดลให้เลือก",
    "modelsAvailable": "{count} มีรุ่นให้เลือก",
    "connectionsActive": "{count} การเชื่อมต่อทำงานอยู่",
    "connectionsActivePlural": "{count} การเชื่อมต่อทำงานอยู่",
    "copyModelName": "คัดลอกชื่อรุ่น",
    "documentation": "เอกสารประกอบ",
    "healthMonitor": "การตรวจสุขภาพ",
    "reportIssue": "รายงานปัญหา",
    "activeError": "{active} ใช้งานอยู่ · ข้อผิดพลาด {errors}",
    "oauthLabel": "OAuth",
    "apiKeyLabel": "คีย์ API",
    "requestsShort": "{count} ความต้องการ",
    "providerModelsTitle": "{provider} - โมเดล",
    "copiedModel": "คัดลอก: {model}",
    "aliasLabel": "นามแฝง"
  },
  "analytics": {
    "title": "การวิเคราะห์",
    "overviewDescription": "ตรวจสอบรูปแบบการใช้งาน API การใช้โทเค็น ต้นทุน และแนวโน้มกิจกรรมของผู้ให้บริการและโมเดลทั้งหมด",
    "evalsDescription": "เรียกใช้ชุดการประเมินผลเพื่อทดสอบและตรวจสอบความถูกต้องของตำแหน่งข้อมูล LLM ของคุณ เปรียบเทียบคุณภาพของโมเดล ตรวจจับการถดถอย และเวลาแฝงของเกณฑ์มาตรฐาน",
    "overview": "ภาพรวม",
    "evals": "เอวาลส์"
  },
  "apiManager": {
    "title": "คีย์ API",
    "createKey": "สร้างคีย์ API",
    "key": "คีย์",
    "revokeKey": "เพิกถอนคีย์",
    "revokeConfirm": "คุณแน่ใจหรือไม่ว่าต้องการเพิกถอนคีย์ API นี้",
    "noKeys": "ยังไม่มีคีย์ API",
    "noKeysDesc": "สร้างคีย์ API แรกของคุณเพื่อตรวจสอบสิทธิ์คำขอไปยังตำแหน่งข้อมูลของคุณ",
    "keyLabel": "ป้ายกำกับที่สำคัญ",
    "permissions": "สิทธิ์",
    "expiresAt": "หมดอายุ",
    "never": "ไม่เคย",
    "revoke": "เพิกถอน",
    "showKey": "แสดงคีย์",
    "hideKey": "ซ่อนคีย์",
    "copyKey": "คัดลอกคีย์ API",
    "allModels": "ทุกรุ่น",
    "selectedModels": "รุ่นที่เลือก",
    "readOnly": "อ่านอย่างเดียว",
    "fullAccess": "การเข้าถึงแบบเต็ม",
    "keyManagement": "การจัดการคีย์ API",
    "keyManagementDesc": "สร้างและจัดการคีย์ API สำหรับการตรวจสอบคำขอไปยังปลายทางของคุณ",
    "totalKeys": "คีย์ทั้งหมด",
    "restricted": "ถูกจำกัด",
    "totalRequests": "คำขอทั้งหมด",
    "modelsAvailable": "รุ่นที่มีจำหน่าย",
    "registeredKeys": "คีย์ที่ลงทะเบียน",
    "keysRegistered": "ลงทะเบียน {count} คีย์แล้ว",
    "keyRegistered": "ลงทะเบียนคีย์ {count} แล้ว",
    "keysSecurityNote": "แต่ละคีย์จะแยกการติดตามการใช้งานและสามารถเพิกถอนได้โดยอิสระ คีย์จะถูกปกปิดหลังจากสร้างเพื่อความปลอดภัย",
    "createFirstKey": "สร้างคีย์แรกของคุณ",
    "name": "ชื่อ",
    "usage": "การใช้งาน",
    "created": "สร้างแล้ว",
    "actions": "การดำเนินการ",
    "reqs": "ความต้องการ",
    "neverUsed": "ไม่เคยใช้",
    "deleteConfirm": "ลบคีย์ API นี้ใช่ไหม",
    "usageTips": "เคล็ดลับการใช้งาน",
    "tipAuth": "ใช้คีย์ API ในส่วนหัวการอนุญาตเป็น Bearer YOUR_KEY",
    "tipSecure": "ในระหว่างการสร้างคีย์จะแสดงเพียงครั้งเดียว — เก็บไว้อย่างปลอดภัย",
    "tipSeparate": "สร้างคีย์แยกต่างหากสำหรับไคลเอนต์หรือสภาพแวดล้อมที่แตกต่างกัน",
    "tipRestrict": "จำกัดคีย์ไว้ที่รุ่นเฉพาะเพื่อความปลอดภัยและการควบคุมต้นทุนที่ดีขึ้น",
    "keyName": "ชื่อคีย์",
    "keyNamePlaceholder": "เช่น คีย์การผลิต คีย์การพัฒนา",
    "keyNameDesc": "เลือกชื่อที่สื่อความหมายเพื่อระบุวัตถุประสงค์ของคีย์นี้",
    "keyCreated": "สร้างคีย์ API แล้ว",
    "keyCreatedSuccess": "สร้างคีย์สำเร็จแล้ว!",
    "keyCreatedNote": "คัดลอกและจัดเก็บคีย์นี้ทันที ซึ่งจะไม่แสดงอีก",
    "done": "เสร็จแล้ว",
    "savePermissions": "บันทึกสิทธิ์",
    "allowAll": "อนุญาตทั้งหมด",
    "restrict": "จำกัด",
    "allowAllInfo": "กุญแจนี้เข้าได้ทุกรุ่น",
    "restrictInfo": "คีย์นี้สามารถเข้าถึงโมเดล {selected} จาก {total}",
    "selected": "{count} เลือกแล้ว",
    "all": "ทั้งหมด",
    "clear": "ชัดเจน",
    "searchModels": "ค้นหารุ่นตามชื่อหรือผู้ให้บริการ...",
    "noModelsFound": "ไม่พบรุ่น",
    "keyNameRequired": "ต้องระบุชื่อคีย์",
    "keyNameTooLong": "ชื่อคีย์ต้องมีอักขระ {max} ตัวหรือน้อยกว่า",
    "keyNameInvalid": "ชื่อคีย์มีได้เฉพาะตัวอักษร ตัวเลข ช่องว่าง ขีดกลาง และขีดล่างเท่านั้น",
    "invalidKeyName": "ชื่อคีย์ไม่ถูกต้อง",
    "failedCreateKey": "ไม่สามารถสร้างคีย์ได้",
    "failedCreateKeyRetry": "ไม่สามารถสร้างคีย์ได้ โปรดลองอีกครั้ง",
    "invalidKeyId": "รหัสคีย์ไม่ถูกต้อง",
    "failedDeleteKey": "ลบคีย์ไม่สำเร็จ",
    "failedDeleteKeyRetry": "ลบคีย์ไม่สำเร็จ โปรดลองอีกครั้ง",
    "invalidModelsSelection": "การเลือกรุ่นไม่ถูกต้อง",
    "cannotSelectMoreThanModels": "ไม่สามารถเลือกมากกว่า {max} รุ่น",
    "failedUpdatePermissions": "ไม่สามารถอัปเดตการอนุญาต",
    "failedUpdatePermissionsRetry": "ไม่สามารถอัปเดตการอนุญาต โปรดลองอีกครั้ง",
    "unknownProvider": "ไม่ทราบ",
    "copyMaskedKey": "คัดลอกคีย์ที่ปกปิด",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "lastUsedOn": "ล่าสุด: {date}",
    "editPermissions": "แก้ไขสิทธิ์",
    "deleteKey": "ลบคีย์",
    "model": "{count} โมเดล",
    "models": "{count} โมเดล",
    "permissionsTitle": "สิทธิ์: {name}",
    "allowAllDesc": "กุญแจนี้เข้าได้ทุกรุ่น",
    "restrictDesc": "คีย์นี้สามารถเข้าถึงโมเดล {selectedCount} จาก {totalModels}",
    "selectedCount": "{count} เลือกแล้ว"
  },
  "auditLog": {
    "title": "บันทึกการตรวจสอบ",
    "searchPlaceholder": "การดำเนินการค้นหา...",
    "action": "การดำเนินการ",
    "actor": "นักแสดง",
    "target": "เป้าหมาย",
    "ipAddress": "ที่อยู่ IP",
    "timestamp": "การประทับเวลา",
    "noEntries": "ไม่พบรายการตรวจสอบ",
    "filterByAction": "กรองตามการกระทำ...",
    "filterByActor": "กรองตามนักแสดง...",
    "filterEntriesAria": "กรองรายการบันทึกการตรวจสอบ",
    "filterByActionTypeAria": "กรองตามประเภทการกระทำ",
    "filterByActorAria": "กรองตามนักแสดง",
    "refreshAuditLogAria": "รีเฟรชบันทึกการตรวจสอบ",
    "tableAria": "รายการบันทึกการตรวจสอบ",
    "failedFetchAuditLog": "ดึงข้อมูลบันทึกการตรวจสอบไม่สำเร็จ",
    "notAvailable": "—",
    "description": "การดำเนินการด้านการดูแลระบบและเหตุการณ์ด้านความปลอดภัย",
    "showing": "กำลังแสดงรายการ {count} (ออฟเซ็ต {offset})",
    "previous": "ก่อนหน้า"
  },
  "media": {
    "title": "สนามทดลองสื่อ",
    "subtitle": "สร้างภาพ วิดีโอ และเพลง",
    "model": "Model",
    "prompt": "Prompt",
    "generate": "สร้าง",
    "generating": "Generating...",
    "loadingModels": "Loading available models...",
    "noModels": "No models available. Configure providers with media capabilities first.",
    "error": "Generation Failed",
    "result": "Result",
    "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
    "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
    "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI."
  },
  "cliTools": {
    "title": "เครื่องมือ CLI",
    "noActiveProviders": "ไม่มีผู้ให้บริการที่ใช้งานอยู่",
    "noActiveProvidersDesc": "โปรดเพิ่มและเชื่อมต่อผู้ให้บริการก่อนเพื่อกำหนดค่าเครื่องมือ CLI",
    "mapModels": "โมเดลแผนที่",
    "testConnection": "ทดสอบการเชื่อมต่อ",
    "connectionStatus": "สถานะการเชื่อมต่อ",
    "configureEndpoint": "กำหนดค่าจุดสิ้นสุด",
    "instructions": "คำแนะนำ",
    "modelMapping": "การทำแผนที่โมเดล",
    "baseUrl": "URL ฐาน",
    "apiKey": "คีย์ API",
    "configured": "กำหนดค่าแล้ว",
    "notConfigured": "ไม่ได้กำหนดค่า",
    "notInstalled": "ไม่ได้ติดตั้ง",
    "custom": "กำหนดเอง",
    "unknown": "ไม่ทราบ",
    "lastSavedAt": "บันทึกล่าสุด: {date}",
    "never": "ไม่เคย",
    "justNow": "แค่ตอนนี้",
    "minutesAgoShort": "{count}นาทีที่แล้ว",
    "hoursAgoShort": "{count}ชม. ที่แล้ว",
    "daysAgoShort": "{count}d ที่แล้ว",
    "monthsAgoShort": "{count}เดือนที่แล้ว",
    "yearsAgoShort": "{count}ปีที่แล้ว",
    "runtimeCheckFailed": "การตรวจสอบรันไทม์ล้มเหลว",
    "yourApiKeyPlaceholder": "รหัส API ของคุณ",
    "modelPlaceholder": "ผู้ให้บริการ/รหัสรุ่น",
    "configurationSaved": "บันทึกการกำหนดค่าเรียบร้อยแล้ว",
    "failedToSave": "บันทึกการกำหนดค่าไม่สำเร็จ",
    "noApiKeysCreateOne": "ไม่มีคีย์ API - สร้างคีย์ในหน้าคีย์",
    "defaultOmnirouteKey": "sk_omniroute (ค่าเริ่มต้น)",
    "selectModel": "เลือกรุ่น",
    "selectModelForAlias": "เลือกรุ่นสำหรับ {alias}",
    "selectModelForTool": "เลือกรุ่นสำหรับ {tool}",
    "select": "เลือก",
    "clear": "ชัดเจน",
    "comingSoon": "เร็วๆ นี้",
    "checkingRuntime": "กำลังตรวจสอบสถานะรันไทม์...",
    "guideOnlyIntegration": "การบูรณาการเฉพาะคำแนะนำ (ไม่ต้องใช้รันไทม์ในเครื่อง)",
    "cliRuntimeDetected": "ตรวจพบรันไทม์ CLI และพร้อมใช้งาน",
    "cliFoundNotRunnable": "พบ CLI แต่ไม่สามารถรันได้{reason}",
    "cliRuntimeNotDetected": "ตรวจไม่พบรันไทม์ของ CLI",
    "binary": "ไบนารี่",
    "configPath": "เส้นทางการกำหนดค่า",
    "configPathShort": "การกำหนดค่า",
    "failedCheckRuntimeStatus": "ไม่สามารถตรวจสอบสถานะรันไทม์ได้",
    "copy": "คัดลอก",
    "copied": "คัดลอกแล้ว",
    "copyConfig": "คัดลอกการกำหนดค่า",
    "saveConfig": "บันทึกการกำหนดค่า",
    "selectionSaved": "บันทึกการเลือกแล้ว",
    "guide": "คู่มือ",
    "detected": "ตรวจพบ",
    "notReady": "ไม่พร้อม",
    "active": "ใช้งานอยู่",
    "inactive": "ไม่ได้ใช้งาน",
    "startMitm": "เริ่ม MITM",
    "stopMitm": "หยุด MITM",
    "mitmStarted": "MITM เริ่มต้นได้สำเร็จ!",
    "mitmStopped": "MITM หยุดสำเร็จแล้ว!",
    "failedStart": "ไม่สามารถเริ่ม MITM",
    "failedStop": "ไม่สามารถหยุด MITM",
    "saveMappings": "บันทึกการแมป",
    "mappingsSaved": "บันทึกการแมปแล้ว!",
    "failedSaveMappings": "ไม่สามารถบันทึกการแมป",
    "howItWorks": "มันทำงานอย่างไร:",
    "antigravityHowWorksDesc": "Antigravity ส่งคำขอไปยังปลายทางของ Google MITM สกัดกั้นและเปลี่ยนเส้นทางไปยัง OmniRoute",
    "antigravityStep1": "1. เริ่ม MITM เพื่อกำหนดเส้นทางคำขอผ่าน OmniRoute",
    "antigravityStep2Prefix": "2. เพิ่ม",
    "antigravityStep2Suffix": "ไปยังไฟล์โฮสต์ของคุณเป็น 127.0.0.1",
    "antigravityStep3": "3. เปิด Antigravity และคำขอจะถูกส่งผ่านพรอกซี",
    "sudoPasswordRequiredTitle": "ต้องใช้รหัสผ่าน Sudo",
    "sudoPasswordHint": "ต้องใช้รหัสผ่านผู้ดูแลระบบเพื่อแก้ไขไฟล์โฮสต์และการตั้งค่าพร็อกซีระบบ",
    "enterSudoPassword": "ป้อนรหัสผ่าน sudo",
    "sudoPasswordRequiredError": "ต้องใช้รหัสผ่าน Sudo",
    "cancel": "ยกเลิก",
    "confirm": "ยืนยัน",
    "settingsApplied": "ใช้การตั้งค่าเรียบร้อยแล้ว!",
    "failedApplySettings": "ล้มเหลวในการใช้การตั้งค่า",
    "settingsReset": "รีเซ็ตการตั้งค่าเรียบร้อยแล้ว!",
    "failedResetSettings": "ไม่สามารถรีเซ็ตการตั้งค่าได้",
    "backupRestored": "กู้คืนข้อมูลสำรองแล้ว!",
    "failedRestore": "ไม่สามารถกู้คืนได้",
    "checkingCli": "กำลังตรวจสอบ {tool} CLI...",
    "cliNotRunnable": "{tool} ติดตั้ง CLI แล้ว แต่ไม่สามารถรันได้",
    "cliNotInstalled": "{tool} ไม่ได้ติดตั้ง CLI",
    "cliNotDetected": "{tool} ตรวจไม่พบ CLI",
    "cliDetectedReady": "{tool} CLI ตรวจพบและพร้อมใช้งาน",
    "cliFoundFailedHealthcheck": "{tool} พบ CLI แต่การตรวจสอบสุขภาพรันไทม์ล้มเหลว{reason}",
    "installCliPrompt": "โปรดติดตั้ง {tool} CLI เพื่อใช้คุณลักษณะนี้",
    "installCodexPrompt": "โปรดติดตั้ง Codex CLI เพื่อใช้คุณสมบัติการใช้งานอัตโนมัติ",
    "hide": "ซ่อน",
    "howToInstall": "วิธีการติดตั้ง",
    "installationGuide": "คู่มือการติดตั้ง",
    "platforms": "macOS / ลินุกซ์ / วินโดวส์:",
    "afterInstallationRun": "หลังการติดตั้งให้รัน",
    "toVerify": "เพื่อตรวจสอบ",
    "current": "ปัจจุบัน",
    "baseUrlPlaceholder": "https://.../v1",
    "resetToDefault": "รีเซ็ตเป็นค่าเริ่มต้น",
    "providerModelPlaceholder": "ผู้ให้บริการ/รหัสรุ่น",
    "apply": "สมัคร",
    "reset": "รีเซ็ต",
    "manualConfig": "การกำหนดค่าด้วยตนเอง",
    "backups": "การสำรองข้อมูล",
    "configBackups": "กำหนดค่าการสำรองข้อมูล",
    "noBackupsYet": "ยังไม่มีการสำรองข้อมูล การสำรองข้อมูลจะถูกสร้างขึ้นโดยอัตโนมัติก่อนนำไปใช้หรือรีเซ็ตแต่ละครั้ง",
    "restore": "คืนค่า",
    "backupRestoredReloading": "กู้คืนข้อมูลสำรองแล้ว! กำลังโหลดสถานะ...",
    "failedRestoreBackup": "ไม่สามารถกู้คืนข้อมูลสำรองได้",
    "applied": "สมัครแล้ว!",
    "failed": "ล้มเหลว",
    "resetDone": "รีเซ็ต!",
    "omnirouteConfiguredOpenAiCompatible": "OmniRoute ได้รับการกำหนดค่าให้เป็นผู้ให้บริการที่รองรับ OpenAI",
    "provider": "ผู้ให้บริการ",
    "model": "รุ่น",
    "providers": "ผู้ให้บริการ",
    "auth": "การรับรองความถูกต้อง",
    "noApiKeysAvailable": "ไม่มีคีย์ API ที่พร้อมใช้งาน",
    "usingDefaultOmniroute": "ใช้ค่าเริ่มต้น: sk_omniroute",
    "updateConfig": "อัปเดตการกำหนดค่า",
    "applyConfig": "ใช้การกำหนดค่า",
    "noBackupsAvailable": "ไม่มีการสำรองข้อมูล",
    "profileSaved": "บันทึกโปรไฟล์ \"{name}\" แล้ว!",
    "failedSaveProfile": "ไม่สามารถบันทึกโปรไฟล์ได้",
    "profileActivated": "เปิดใช้งานโปรไฟล์แล้ว!",
    "failedActivateProfile": "ไม่สามารถเปิดใช้งานโปรไฟล์ได้",
    "profiles": "โปรไฟล์",
    "savedProfiles": "โปรไฟล์ที่บันทึกไว้",
    "noProfilesYet": "ยังไม่มีการบันทึกโปรไฟล์ บันทึกการกำหนดค่าปัจจุบันเป็นโปรไฟล์ด้านล่าง",
    "activate": "เปิดใช้งาน",
    "deleteProfile": "ลบโปรไฟล์",
    "profileNamePlaceholder": "ชื่อโปรไฟล์ (เช่น บัญชีส่วนตัว)",
    "saveCurrent": "บันทึกปัจจุบัน",
    "codexAuthNotePrefix": "การใช้โคเด็กซ์",
    "codexAuthNoteMiddle": "ด้วย",
    "codexAuthNoteSuffix": "คลิก \"ใช้\" เพื่อกำหนดค่าอัตโนมัติ",
    "claudeManualConfiguration": "Claude CLI - การกำหนดค่าด้วยตนเอง",
    "codexManualConfiguration": "Codex CLI - การกำหนดค่าด้วยตนเอง",
    "droidManualConfiguration": "Factory Droid - การกำหนดค่าด้วยตนเอง",
    "openClawManualConfiguration": "Open Claw - การกำหนดค่าด้วยตนเอง",
    "clineManualConfiguration": "การกำหนดค่าด้วยตนเองของไคลน์",
    "kiloManualConfiguration": "การกำหนดค่าด้วยตนเองของรหัสกิโล",
    "toolDescriptions": {
      "antigravity": "Google ต้านแรงโน้มถ่วง IDE พร้อม MITM",
      "claude": "รหัสมานุษยวิทยา Claude CLI",
      "codex": "OpenAI Codex CLI",
      "droid": "ผู้ช่วย AI จากโรงงาน Droid",
      "openclaw": "เปิดผู้ช่วย AI ของ Claw",
      "cline": "Cline AI ผู้ช่วยเข้ารหัส CLI",
      "kilo": "กิโลโค้ด AI Assistant CLI",
      "cursor": "ตัวแก้ไขรหัสเคอร์เซอร์ AI",
      "continue": "ดำเนินการต่อผู้ช่วย AI",
      "opencode": "OpenCode AI coding agent (Terminal)",
      "kiro": "Amazon Kiro — AI-powered IDE"
    },
    "guides": {
      "cursor": {
        "notes": {
          "0": "ต้องใช้บัญชี Cursor Pro เพื่อใช้คุณสมบัตินี้",
          "1": "เคอร์เซอร์กำหนดเส้นทางคำขอผ่านเซิร์ฟเวอร์ของตัวเอง ดังนั้นจึงไม่รองรับจุดสิ้นสุดในเครื่อง โปรดเปิดใช้งาน Cloud Endpoint ในการตั้งค่า"
        },
        "steps": {
          "1": {
            "title": "เปิดการตั้งค่า",
            "desc": "ไปที่การตั้งค่า -> โมเดล"
          },
          "2": {
            "title": "เปิดใช้งาน OpenAI API",
            "desc": "เปิดใช้งานตัวเลือก \"คีย์ OpenAI API\""
          },
          "3": {
            "title": "URL ฐาน"
          },
          "4": {
            "title": "คีย์ API"
          },
          "5": {
            "title": "เพิ่มโมเดลที่กำหนดเอง",
            "desc": "คลิก \"ดูโมเดลทั้งหมด\" -> \"เพิ่มโมเดลที่กำหนดเอง\""
          },
          "6": {
            "title": "เลือกรุ่น"
          }
        }
      },
      "continue": {
        "steps": {
          "1": {
            "title": "เปิดการกำหนดค่า",
            "desc": "เปิดไฟล์การกำหนดค่าดำเนินการต่อ"
          },
          "2": {
            "title": "คีย์ API"
          },
          "3": {
            "title": "เลือกรุ่น"
          },
          "4": {
            "title": "เพิ่มการกำหนดค่าโมเดล",
            "desc": "เพิ่มการกำหนดค่าต่อไปนี้ให้กับอาร์เรย์โมเดลของคุณ:"
          }
        }
      },
      "opencode": {
        "steps": {
          "1": {
            "title": "Install OpenCode",
            "desc": "Install via npm: npm install -g opencode-ai"
          },
          "2": {
            "title": "API Key"
          },
          "3": {
            "title": "Set Base URL",
            "desc": "opencode config set baseUrl {{baseUrl}}"
          },
          "4": {
            "title": "Select Model"
          }
        }
      },
      "kiro": {
        "steps": {
          "1": {
            "title": "Open Kiro Settings",
            "desc": "Go to Settings → AI Provider"
          },
          "2": {
            "title": "Base URL",
            "desc": "Paste your OmniRoute endpoint URL"
          },
          "3": {
            "title": "API Key"
          },
          "4": {
            "title": "Select Model"
          }
        }
      }
    }
  },
  "combos": {
    "title": "คอมโบ",
    "description": "สร้างโมเดลคอมโบด้วยการกำหนดเส้นทางแบบถ่วงน้ำหนักและการสนับสนุนทางเลือก",
    "createCombo": "สร้างคอมโบ",
    "editCombo": "แก้ไขคอมโบ",
    "deleteCombo": "ลบคอมโบ",
    "noModels": "ไม่มีรุ่น",
    "noModelsYet": "ยังไม่มีโมเดลเพิ่ม",
    "addModel": "เพิ่มรุ่น",
    "addModelToCombo": "เพิ่มโมเดลลงในคอมโบ",
    "routingStrategy": "กลยุทธ์การกำหนดเส้นทาง",
    "maxRetries": "ลองใหม่สูงสุด",
    "timeout": "หมดเวลา (มิลลิวินาที)",
    "healthcheck": "ตรวจสุขภาพ",
    "priority": "ลำดับความสำคัญ",
    "fallback": "ทางเลือกสำรอง",
    "roundRobin": "ตัวกลม โรบิน",
    "random": "สุ่ม",
    "leastLatency": "เวลาแฝงน้อยที่สุด",
    "comboName": "ชื่อคอมโบ",
    "comboNamePlaceholder": "คำสั่งผสมของฉัน",
    "deleteConfirm": "ลบคอมโบนี้ใช่ไหม",
    "noCombosYet": "ยังไม่มีคอมโบ",
    "comboCreated": "สร้างคอมโบสำเร็จแล้ว",
    "comboUpdated": "อัปเดตคอมโบเรียบร้อยแล้ว",
    "comboDeleted": "ลบคอมโบแล้ว",
    "failedCreate": "ไม่สามารถสร้างคอมโบได้",
    "failedUpdate": "ไม่สามารถอัปเดตคอมโบได้",
    "errorCreating": "เกิดข้อผิดพลาดในการสร้างคอมโบ",
    "errorUpdating": "เกิดข้อผิดพลาดในการอัปเดตคอมโบ",
    "errorDeleting": "เกิดข้อผิดพลาดในการลบคำสั่งผสม",
    "testFailed": "คำขอทดสอบล้มเหลว",
    "failedToggle": "ไม่สามารถสลับคำสั่งผสมได้",
    "testResults": "ผลการทดสอบ — {name}",
    "resolvedBy": "แก้ไขโดย:",
    "more": "+{count} เพิ่มเติม",
    "reqs": "ความต้องการ",
    "success": "ความสำเร็จ",
    "proxyConfigured": "กำหนดค่าพร็อกซีแล้ว",
    "copyComboName": "คัดลอกชื่อคำสั่งผสม",
    "enableCombo": "เปิดใช้งานคอมโบ",
    "disableCombo": "ปิดการใช้งานคอมโบ",
    "testCombo": "ทดสอบคอมโบ",
    "duplicate": "ทำซ้ำ",
    "proxyConfig": "การกำหนดค่าพร็อกซี",
    "nameRequired": "ต้องระบุชื่อ",
    "nameInvalid": "เฉพาะตัวอักษร ตัวเลข -, _, / และ ได้รับอนุญาต",
    "nameHint": "ตัวอักษร ตัวเลข -, _, / และ ได้รับอนุญาต",
    "priorityDesc": "ทางเลือกสำรองตามลำดับ: ลองใช้โมเดล 1 ก่อน จากนั้นจึงใช้ 2 เป็นต้น",
    "weightedDesc": "กระจายการรับส่งข้อมูลตามเปอร์เซ็นต์น้ำหนักพร้อมทางเลือกสำรอง",
    "roundRobinDesc": "การกระจายแบบวงกลม: แต่ละคำขอจะส่งไปยังโมเดลถัดไปที่หมุนเวียนกัน",
    "randomDesc": "การเลือกแบบสุ่มแบบสม่ำเสมอ จากนั้นจึงย้อนกลับไปยังโมเดลที่เหลือ",
    "leastUsedDesc": "เลือกโมเดลที่มีคำขอน้อยที่สุด โดยจะปรับสมดุลการโหลดเมื่อเวลาผ่านไป",
    "costOptimizedDesc": "กำหนดเส้นทางไปยังรุ่นที่ถูกที่สุดก่อนตามราคา",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
    "models": "โมเดล",
    "autoBalance": "ปรับสมดุลอัตโนมัติ",
    "advancedSettings": "การตั้งค่าขั้นสูง",
    "retryDelay": "ความล่าช้าในการลองอีกครั้ง (มิลลิวินาที)",
    "concurrencyPerModel": "เห็นพ้องต้องกัน / รุ่น",
    "queueTimeout": "คิวหมดเวลา (มิลลิวินาที)",
    "advancedHint": "เว้นว่างไว้เพื่อใช้ค่าเริ่มต้นสากล เหล่านี้จะแทนที่การตั้งค่าต่อผู้ให้บริการ",
    "moveUp": "เลื่อนขึ้น",
    "moveDown": "เลื่อนลง",
    "removeModel": "ลบ",
    "saving": "กำลังบันทึก...",
    "weighted": "ถ่วงน้ำหนัก",
    "leastUsed": "ใช้น้อยที่สุด",
    "costOpt": "ต้นทุน-การเลือก",
    "strategyGuideTitle": "How to use this strategy",
    "strategyGuideWhen": "When to use",
    "strategyGuideAvoid": "Avoid when",
    "strategyGuideExample": "Example",
    "strategyGuide": {
      "priority": {
        "when": "You have one preferred model and only want fallback on failure.",
        "avoid": "You need request distribution across models.",
        "example": "Primary coding model with cheaper backup for outages."
      },
      "weighted": {
        "when": "You need controlled traffic split across models.",
        "avoid": "You cannot maintain accurate weights over time.",
        "example": "80% stable model + 20% canary model rollout."
      },
      "round-robin": {
        "when": "You want predictable and even distribution.",
        "avoid": "Models differ too much in latency or cost.",
        "example": "Same model on multiple accounts to spread throughput."
      },
      "random": {
        "when": "You want simple distribution with minimal setup.",
        "avoid": "You need strict traffic guarantees.",
        "example": "Quick prototyping with equivalent models."
      },
      "least-used": {
        "when": "You want adaptive balancing based on live demand.",
        "avoid": "Traffic is too low to benefit from usage balancing.",
        "example": "Mixed workloads where one model often gets overloaded."
      },
      "cost-optimized": {
        "when": "Cost reduction is your top priority.",
        "avoid": "Pricing data is missing or outdated.",
        "example": "Background or batch jobs where lower cost is preferred."
      }
    },
    "advancedHelp": {
      "maxRetries": "How many retries are attempted before failing a request.",
      "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
      "timeout": "Maximum request duration before aborting.",
      "healthcheck": "Skips unhealthy models/providers from routing decisions.",
      "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
      "queueTimeout": "How long a request can wait in queue before timing out."
    },
    "templatesTitle": "Quick templates",
    "templatesDescription": "Apply a starting profile, then adjust models and config.",
    "templateApply": "Apply template",
    "templateHighAvailability": "High availability",
    "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
    "templateCostSaver": "Cost saver",
    "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
    "templateBalanced": "Balanced load",
    "templateBalancedDesc": "Least-used routing to spread demand over time.",
    "usageGuideHide": "Hide",
    "usageGuideDontShowAgain": "Don't show again",
    "usageGuideShow": "Show guide",
    "quickTestTitle": "Combo ready to validate",
    "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
    "testNow": "Test now",
    "pricingCoverage": "Pricing coverage",
    "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
    "pricingAvailable": "Pricing available",
    "pricingMissing": "No pricing",
    "pricingAvailableShort": "priced",
    "pricingMissingShort": "no-price",
    "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
    "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
    "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
    "readinessTitle": "พร้อมที่จะบันทึกแล้วหรือยัง?",
    "readinessDescription": "ตรวจสอบรายการตรวจสอบก่อนที่จะสร้างหรืออัปเดตคำสั่งผสมนี้",
    "readinessCheckName": "ชื่อคำสั่งผสมถูกต้อง",
    "readinessCheckModels": "เลือกอย่างน้อยหนึ่งรุ่น",
    "readinessCheckWeights": "ยอดรวมถ่วงน้ำหนักคือ 100%",
    "readinessCheckWeightsOptional": "ไม่จำเป็นต้องมีกฎน้ำหนัก",
    "readinessCheckPricing": "มีข้อมูลราคาอยู่",
    "readinessCheckPricingOptional": "ไม่จำเป็นต้องมีกฎการกำหนดราคา",
    "saveBlockedTitle": "บันทึกจะถูกบล็อกจนกว่ารายการต่อไปนี้จะได้รับการแก้ไข:",
    "saveBlockName": "กำหนดชื่อคอมโบ",
    "saveBlockModels": "เพิ่มอย่างน้อยหนึ่งรุ่น",
    "saveBlockWeighted": "ตั้งค่าน้ำหนักเป็น 100% (ปัจจุบัน: {total}%)",
    "saveBlockPricing": "เพิ่มราคาสำหรับรุ่นอย่างน้อยหนึ่งรุ่นหรือเลือกกลยุทธ์อื่น",
    "recommendationsLabel": "Recommended setup",
    "applyRecommendations": "Apply recommendations",
    "recommendationsUpdated": "Recommendations updated for {strategy}.",
    "recommendationsApplied": "Recommendations applied to this combo.",
    "strategyRecommendations": {
      "priority": {
        "title": "Fail-safe baseline",
        "description": "Use one primary model and keep fallback chain short and reliable.",
        "tip1": "Put your most reliable model first.",
        "tip2": "Keep 1-2 backup models with similar quality.",
        "tip3": "Use safe retries to absorb transient provider failures."
      },
      "weighted": {
        "title": "Controlled traffic split",
        "description": "Great for canary rollouts and gradual migration between models.",
        "tip1": "Start with conservative split like 90/10.",
        "tip2": "Keep the total at 100% and auto-balance after changes.",
        "tip3": "Monitor success and latency before increasing canary weight."
      },
      "round-robin": {
        "title": "Predictable load sharing",
        "description": "Best when models are equivalent and you need smooth distribution.",
        "tip1": "Use at least 2 models.",
        "tip2": "Set concurrency limits to avoid burst overload.",
        "tip3": "Use queue timeout to fail fast under saturation."
      },
      "random": {
        "title": "Quick spread with low setup",
        "description": "Use when you need simple distribution without strict guarantees.",
        "tip1": "Use models with similar latency profiles.",
        "tip2": "Keep retries enabled to absorb random misses.",
        "tip3": "Prefer this for experimentation, not strict SLAs."
      },
      "least-used": {
        "title": "Adaptive balancing",
        "description": "Routes to less-used models to reduce hotspots over time.",
        "tip1": "Works better under continuous traffic.",
        "tip2": "Combine with health checks for safer balancing.",
        "tip3": "Track per-model usage to validate distribution gains."
      },
      "cost-optimized": {
        "title": "Budget-first routing",
        "description": "Routes to lower-cost models when pricing metadata is available.",
        "tip1": "Ensure pricing coverage for all selected models.",
        "tip2": "Keep a quality fallback for hard prompts.",
        "tip3": "Use for batch/background jobs where cost is the main KPI."
      }
    },
    "templateFreeStack": "Free Stack ($0)",
    "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), iFlow (5 models), Qwen (4 models), Gemini CLI. Zero cost, never stops coding."
  },
  "costs": {
    "title": "ค่าใช้จ่าย",
    "budget": "งบประมาณ",
    "totalCost": "ต้นทุนรวม",
    "breakdown": "การแจกแจงต้นทุน",
    "noData": "ไม่มีข้อมูลค่าใช้จ่าย",
    "byModel": "โดยรุ่น",
    "byProvider": "โดยผู้ให้บริการ"
  },
  "endpoint": {
    "title": "จุดสิ้นสุด API",
    "available": "จุดสิ้นสุดที่มีอยู่",
    "cloudProxy": "พร็อกซีคลาวด์",
    "disableConfirm": "คุณแน่ใจหรือไม่ว่าต้องการปิดใช้งานพร็อกซีระบบคลาวด์",
    "baseUrl": "URL ฐาน",
    "apiKeyLabel": "คีย์ API",
    "registeredKeys": "คีย์ที่ลงทะเบียน",
    "chatCompletions": "เสร็จสิ้นการแชท",
    "responses": "คำตอบ",
    "listModels": "รายการโมเดล",
    "usingCloudProxy": "การใช้พร็อกซีคลาวด์",
    "usingLocalServer": "การใช้เซิร์ฟเวอร์ท้องถิ่น",
    "machineId": "หมายเลขเครื่อง: {id}...",
    "disableCloud": "ปิดการใช้งานคลาวด์",
    "enableCloud": "เปิดใช้งานคลาวด์",
    "modelsAcrossEndpoints": "{models} โมเดลข้ามจุดสิ้นสุด {endpoints}",
    "chatDesc": "การแชทแบบสตรีมมิงและไม่สตรีมกับผู้ให้บริการทั้งหมด",
    "embeddings": "การฝัง",
    "embeddingsDesc": "การฝังข้อความสำหรับการค้นหาและไปป์ไลน์ RAG",
    "imageGeneration": "การสร้างภาพ",
    "imageDesc": "สร้างภาพจากข้อความแจ้ง",
    "rerank": "จัดอันดับใหม่",
    "rerankDesc": "จัดอันดับเอกสารใหม่ตามความเกี่ยวข้องกับแบบสอบถาม",
    "audioTranscription": "การถอดเสียง",
    "audioTranscriptionDesc": "ถอดเสียงไฟล์เสียงเป็นข้อความ (กระซิบ)",
    "textToSpeech": "ข้อความเป็นคำพูด",
    "textToSpeechDesc": "แปลงข้อความเป็นคำพูดที่ฟังดูเป็นธรรมชาติ",
    "moderations": "การกลั่นกรอง",
    "moderationsDesc": "การกลั่นกรองเนื้อหาและการจำแนกความปลอดภัย",
    "responsesDesc": "OpenAI Responses API สำหรับ Codex และเวิร์กโฟลว์เอเจนต์ขั้นสูง",
    "listModelsDesc": "แสดงรายการโมเดลที่ใช้ได้ทั้งหมดจากผู้ให้บริการที่เชื่อมต่อ",
    "settingsApiDesc": "อ่านและแก้ไขการกำหนดค่า OmniRoute ผ่าน API",
    "settingsApi": "Settings API",
    "categoryCore": "API หลัก",
    "categoryMedia": "สื่อและมัลติโมดอล",
    "categoryUtility": "ยูทิลิตี้และการจัดการ",
    "enableCloudTitle": "เปิดใช้งานพร็อกซีคลาวด์",
    "whatYouGet": "สิ่งที่คุณจะได้รับ",
    "cloudBenefitAccess": "เข้าถึง API ของคุณได้จากทุกที่ในโลก",
    "cloudBenefitShare": "แบ่งปันตำแหน่งข้อมูลกับทีมของคุณได้อย่างง่ายดาย",
    "cloudBenefitPorts": "ไม่จำเป็นต้องเปิดพอร์ตหรือกำหนดค่าไฟร์วอลล์",
    "cloudBenefitEdge": "เครือข่าย Edge ระดับโลกที่รวดเร็ว",
    "cloudSessionNote": "คลาวด์จะเก็บเซสชันการตรวจสอบสิทธิ์ของคุณไว้เป็นเวลา 1 วัน หากไม่ได้ใช้ก็จะถูกลบโดยอัตโนมัติ",
    "cloudUnstableNote": "ขณะนี้ระบบคลาวด์ไม่เสถียรด้วย Claude Code OAuth ในบางกรณี",
    "cloudConnected": "เชื่อมต่อพร็อกซีคลาวด์แล้ว!",
    "connectingToCloud": "กำลังเชื่อมต่อกับคลาวด์...",
    "verifyingConnection": "กำลังยืนยันการเชื่อมต่อ...",
    "connecting": "กำลังเชื่อมต่อ...",
    "verifying": "กำลังยืนยัน...",
    "connected": "เชื่อมต่อแล้ว!",
    "disableCloudTitle": "ปิดการใช้งานพร็อกซีคลาวด์",
    "disableWarning": "เซสชันการตรวจสอบสิทธิ์ทั้งหมดจะถูกลบออกจากระบบคลาวด์",
    "syncingData": "กำลังซิงค์ข้อมูลล่าสุด...",
    "disablingCloud": "กำลังปิดใช้งานระบบคลาวด์...",
    "syncing": "กำลังซิงค์...",
    "disabling": "กำลังปิดการใช้งาน...",
    "cloudConnectedVerified": "เชื่อมต่อและยืนยัน Cloud Proxy แล้ว!",
    "connectedVerificationPending": "เชื่อมต่อแล้ว — อยู่ระหว่างการยืนยัน",
    "connectedVerificationPendingWithError": "เชื่อมต่อแล้ว — รอการยืนยัน: {error}",
    "cloudDisabledSuccess": "ปิดการใช้งานคลาวด์เรียบร้อยแล้ว",
    "syncedSuccess": "ซิงค์เรียบร้อยแล้ว",
    "failedDisable": "ไม่สามารถปิดการใช้งานระบบคลาวด์",
    "failedEnable": "ไม่สามารถเปิดใช้งานระบบคลาวด์",
    "cloudRequestTimeout": "หมดเวลาคำขอคลาวด์",
    "cloudRequestFailed": "คำขอคลาวด์ล้มเหลว",
    "cloudWorkerUnreachable": "ไม่สามารถเข้าถึงผู้ปฏิบัติงานบนคลาวด์ ตรวจสอบให้แน่ใจว่าบริการคลาวด์กำลังทำงานอยู่ (npm run dev in /cloud)",
    "connectionFailed": "การเชื่อมต่อล้มเหลว",
    "syncFailed": "ไม่สามารถซิงค์ข้อมูลบนคลาวด์",
    "providerModelsTitle": "{provider} — โมเดล",
    "noModelsForProvider": "ไม่มีรุ่นสำหรับผู้ให้บริการรายนี้",
    "chat": "แชท",
    "embedding": "การฝัง",
    "image": "รูปภาพ",
    "custom": "กำหนดเอง",
    "modelsCount": "{count, plural, one {# model} other {# models}}",
    "sectionTitle": "Integration Surface",
    "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
    "tabApis": "OpenAI-compatible APIs",
    "tabProtocols": "Protocols",
    "tabsAria": "Endpoint sections",
    "protocolsTitle": "Protocols",
    "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
    "mcpCardTitle": "MCP Server",
    "mcpCardDescription": "Model Context Protocol over stdio",
    "a2aCardTitle": "A2A Server",
    "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
    "protocolToolsLabel": "Tools",
    "protocolTasksLabel": "Tasks",
    "protocolActiveStreamsLabel": "Active streams",
    "protocolLastActivity": "Last activity",
    "quickStart": "Quick Start",
    "openMcpDashboard": "Open MCP management",
    "openA2aDashboard": "Open A2A management",
    "mcpQuickStartTitle": "MCP Quick Start",
    "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
    "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
    "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
    "a2aQuickStartTitle": "A2A Quick Start",
    "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
    "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
    "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
    "completionsLegacy": "Completions (Legacy)",
    "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format"
  },
  "mcpDashboard": {
    "loading": "Loading MCP dashboard...",
    "activate": "activate",
    "deactivate": "deactivate",
    "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
    "switchComboFailed": "Failed to switch combo state.",
    "switchComboSuccess": "Combo \"{combo}\" updated.",
    "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
    "applyProfileFailed": "Failed to apply resilience profile.",
    "applyProfileSuccess": "Profile \"{profile}\" applied.",
    "confirmResetBreakers": "Reset all circuit breakers?",
    "resetBreakersFailed": "Failed to reset circuit breakers.",
    "resetBreakersSuccess": "Circuit breakers reset.",
    "processStatus": "Process status",
    "online": "Online",
    "offline": "Offline",
    "pid": "PID",
    "sessionUptime": "Session uptime",
    "lastHeartbeat": "Last heartbeat",
    "activity24h": "Activity (24h)",
    "totalCalls": "Total calls",
    "successRate": "Success rate",
    "avgLatency": "Avg latency",
    "topTools": "Top tools",
    "noToolCalls24h": "No tool calls in the last 24 hours.",
    "runtimeDetails": "Runtime details",
    "transport": "Transport",
    "scopesEnforced": "Scopes enforced",
    "yes": "yes",
    "no": "no",
    "lastCall": "Last call",
    "heartbeatPath": "Heartbeat path",
    "operationalControls": "Operational controls",
    "switchCombo": "Switch combo",
    "inactive": "inactive",
    "active": "active",
    "activateCombo": "Activate combo",
    "deactivateCombo": "Deactivate combo",
    "applyResilienceProfile": "Apply resilience profile",
    "profileAggressive": "aggressive",
    "profileBalanced": "balanced",
    "profileConservative": "conservative",
    "applyProfile": "Apply profile",
    "resetCircuitBreakers": "Reset circuit breakers",
    "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
    "resetAllBreakers": "Reset all breakers",
    "toolsAndScopes": "Tools and scopes",
    "tableTool": "Tool",
    "tableScopes": "Scopes",
    "tablePhase": "Phase",
    "tableAudit": "Audit",
    "auditLog": "Audit log",
    "auditSummary": "Calls: {total} | page {page} of {totalPages}",
    "allTools": "All tools",
    "allResults": "All results",
    "success": "Success",
    "failure": "Failure",
    "apiKeyIdPlaceholder": "apiKeyId",
    "loadingAuditEntries": "Loading audit entries...",
    "noAuditEntriesForFilters": "No audit entries found for current filters.",
    "tableTimestamp": "Timestamp",
    "tableDuration": "Duration",
    "tableResult": "ผลลัพธ์",
    "tableApiKey": "คีย์เอพีไอ",
    "failed": "ล้มเหลว",
    "previous": "ก่อนหน้า",
    "next": "ต่อไป"
  },
  "a2aDashboard": {
    "loading": "กำลังโหลดแดชบอร์ด A2A...",
    "confirmCancelTask": "ยกเลิกงาน {taskId}?",
    "cancelTaskFailed": "ยกเลิกงานไม่สำเร็จ",
    "cancelTaskSuccess": "งาน {taskId} ถูกยกเลิก",
    "smokeSendFailed": "message/send smoke test failed.",
    "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
    "smokeSendSuccess": "message/send ok.",
    "smokeStreamFailed": "message/stream smoke test failed.",
    "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
    "smokeStreamNoTaskId": "message/stream finished without task id.",
    "health": "Health",
    "ok": "ok",
    "totalTasks": "Total tasks",
    "activeStreams": "Active streams",
    "lastTask": "Last task",
    "taskStateOverview": "Task state overview",
    "state": {
      "submitted": "submitted",
      "working": "working",
      "completed": "completed",
      "failed": "ล้มเหลว",
      "cancelled": "cancelled"
    },
    "agentCard": "Agent card",
    "version": "Version",
    "url": "URL",
    "capabilities": "Capabilities",
    "agentCardNotAvailable": "Agent card not available.",
    "quickValidation": "Quick validation",
    "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
    "runMessageSend": "Run message/send",
    "runMessageStream": "Run message/stream",
    "taskManagement": "Task management",
    "taskSummary": "{total} tasks | page {page} of {totalPages}",
    "allStates": "all",
    "allSkills": "all skills",
    "loadingTasks": "Loading tasks...",
    "noTasksForFilters": "No tasks found for current filters.",
    "tableTask": "Task",
    "tableSkill": "Skill",
    "tableState": "State",
    "tableUpdated": "Updated",
    "tableActions": "Actions",
    "view": "View",
    "cancel": "Cancel",
    "previous": "ก่อนหน้า",
    "next": "ต่อไป",
    "taskDetail": "Task detail",
    "close": "Close",
    "metadata": "Metadata",
    "events": "Events",
    "artifacts": "Artifacts"
  },
  "health": {
    "title": "สุขภาพของระบบ",
    "description": "การตรวจสอบอินสแตนซ์ OmniRoute ของคุณแบบเรียลไทม์",
    "healthy": "ดีต่อสุขภาพ",
    "degraded": "เสื่อมโทรม",
    "down": "ลง",
    "uptime": "เวลาทำงาน",
    "memory": "หน่วยความจำ",
    "memoryRss": "หน่วยความจำ (RSS)",
    "heap": "กอง",
    "cpu": "ซีพียู",
    "database": "ฐานข้อมูล",
    "version": "เวอร์ชัน",
    "lastCheck": "ตรวจสอบครั้งสุดท้าย",
    "providerHealth": "สุขภาพของผู้ให้บริการ",
    "systemMetrics": "ตัวชี้วัดของระบบ",
    "tokenHealth": "โทเค็นสุขภาพ",
    "refreshAll": "รีเฟรชทั้งหมด",
    "checkNow": "ตรวจสอบตอนนี้",
    "loadingHealth": "กำลังโหลดข้อมูลสุขภาพ...",
    "failedToLoad": "ไม่สามารถโหลดข้อมูลสุขภาพ: {error}",
    "retry": "ลองอีกครั้ง",
    "allOperational": "ใช้งานได้ทุกระบบ",
    "issuesDetected": "ตรวจพบปัญหาของระบบ",
    "updatedAt": "อัปเดต {time}",
    "latency": "เวลาแฝง",
    "latencyP50": "หน้า 50",
    "latencyP95": "หน้า 95",
    "latencyP99": "หน้า 99",
    "millisecondsShort": "{value}ms",
    "notAvailable": "—",
    "totalRequests": "คำขอทั้งหมด",
    "noDataYet": "ยังไม่มีข้อมูล",
    "promptCache": "แคชพร้อมท์",
    "entries": "รายการ",
    "hitRate": "อัตราการเข้าชม",
    "hitsMisses": "ฮิต / พลาด",
    "signatureCache": "แคชลายเซ็น",
    "signatureDefaults": "ค่าเริ่มต้น",
    "signatureTool": "เครื่องมือ",
    "signatureFamily": "ครอบครัว",
    "signatureSession": "เซสชัน",
    "recovering": "กำลังฟื้นตัว",
    "noCBData": "ไม่มีข้อมูลเซอร์กิตเบรกเกอร์ ทำการร้องขอบางอย่างก่อน",
    "providerHealthStatusAria": "สถานะสุขภาพของผู้ให้บริการ",
    "issuesLabel": "ตรวจพบปัญหา",
    "operational": "การดำเนินงาน",
    "providers": "ผู้ให้บริการ",
    "healthyCount": "{count} สุขภาพแข็งแรง",
    "nodeVersion": "โหนด {version}",
    "failures": "{count} ล้มเหลว",
    "failuresPlural": "{count} ล้มเหลว",
    "lastFailure": "สุดท้าย",
    "rateLimitStatus": "สถานะการจำกัดอัตรา",
    "activeLimiters": "{count} ตัวจำกัดที่ใช้งานอยู่",
    "activeLimitersPlural": "{count} ตัวจำกัดที่ใช้งานอยู่",
    "queued": "เข้าคิว",
    "queuedCount": "{count} เข้าคิวแล้ว",
    "running": "วิ่ง",
    "runningCount": "{count} กำลังวิ่งอยู่",
    "ok": "ตกลง",
    "activeLockouts": "การล็อกที่ใช้งานอยู่",
    "resetConfirm": "รีเซ็ตเซอร์กิตเบรกเกอร์ทั้งหมดเป็นสถานะปกติหรือไม่ การดำเนินการนี้จะล้างจำนวนความล้มเหลวทั้งหมดและกู้คืนผู้ให้บริการทั้งหมดกลับสู่สถานะการปฏิบัติงาน",
    "resetAllTitle": "รีเซ็ตเบรกเกอร์วงจรทั้งหมดให้อยู่ในสถานะปกติ",
    "resetting": "กำลังรีเซ็ต...",
    "resetAll": "รีเซ็ตทั้งหมด",
    "until": "จนถึง {time}"
  },
  "limits": {
    "title": "ขีดจำกัดและโควต้า",
    "rateLimit": "ขีดจำกัดอัตรา",
    "remaining": "ที่เหลืออยู่",
    "requestsPerMinute": "คำขอ/นาที",
    "tokensPerMinute": "โทเค็น/นาที",
    "dailyLimit": "ขีดจำกัดรายวัน"
  },
  "logs": {
    "title": "บันทึก",
    "requestLogs": "ขอบันทึก",
    "proxyLogs": "บันทึกพร็อกซี",
    "auditLog": "บันทึกการตรวจสอบ",
    "console": "คอนโซล",
    "auditLogDesc": "การดำเนินการด้านการดูแลระบบและเหตุการณ์ด้านความปลอดภัย",
    "loading": "กำลังโหลด...",
    "refresh": "รีเฟรช",
    "filterByAction": "กรองตามการกระทำ...",
    "filterByActor": "กรองตามนักแสดง...",
    "filterEntriesAria": "กรองรายการบันทึกการตรวจสอบ",
    "filterByActionTypeAria": "กรองตามประเภทการกระทำ",
    "filterByActorAria": "กรองตามนักแสดง",
    "refreshAuditLogAria": "รีเฟรชบันทึกการตรวจสอบ",
    "tableAria": "รายการบันทึกการตรวจสอบ",
    "failedFetchAuditLog": "ดึงข้อมูลบันทึกการตรวจสอบไม่สำเร็จ",
    "showing": "กำลังแสดงรายการ {count} (ออฟเซ็ต {offset})",
    "search": "ค้นหา",
    "timestamp": "การประทับเวลา",
    "action": "การดำเนินการ",
    "actor": "นักแสดง",
    "target": "เป้าหมาย",
    "details": "รายละเอียด",
    "ipAddress": "ที่อยู่ IP",
    "notAvailable": "—",
    "noEntries": "ไม่พบรายการบันทึกการตรวจสอบ",
    "previous": "ก่อนหน้า",
    "next": "ถัดไป"
  },
  "onboarding": {
    "welcome": "ยินดีต้อนรับ",
    "security": "ความปลอดภัย",
    "test": "ทดสอบ",
    "ready": "พร้อม!",
    "setPassword": "ตั้งรหัสผ่าน",
    "addProvider": "เพิ่มผู้ให้บริการรายแรกของคุณ",
    "getStarted": "เริ่มต้นเลย",
    "skip": "ข้าม",
    "skipWizard": "ข้ามวิซาร์ดไปเลย",
    "skipPassword": "ข้ามการตั้งค่ารหัสผ่าน",
    "skipAndContinue": "ข้ามและดำเนินการต่อ",
    "passwordLabel": "รหัสผ่าน",
    "confirmPassword": "ยืนยันรหัสผ่าน",
    "enterPassword": "ใส่รหัสผ่าน",
    "confirmPasswordPlaceholder": "ยืนยันรหัสผ่าน",
    "passwordsMismatch": "รหัสผ่านไม่ตรงกัน",
    "setupComplete": "ตั้งค่าเสร็จสมบูรณ์!",
    "goToDashboard": "ไปที่แดชบอร์ด →",
    "welcomeDesc": "OmniRoute คือพร็อกซี AI API ในพื้นที่ของคุณ โดยกำหนดเส้นทางคำขอไปยังผู้ให้บริการ AI หลายรายด้วยการปรับสมดุลโหลด การเฟลโอเวอร์ และการติดตามการใช้งาน",
    "multiProvider": "ผู้ให้บริการหลายราย",
    "usageTracking": "การติดตามการใช้งาน",
    "apiKeyMgmt": "การจัดการคีย์ API",
    "securityDesc": "ตั้งรหัสผ่านเพื่อปกป้องแดชบอร์ดของคุณ หรือข้ามไปก่อน",
    "providerDesc": "เชื่อมต่อผู้ให้บริการ AI รายแรกของคุณ คุณสามารถเพิ่มมากขึ้นในภายหลัง",
    "apiKeyRequired": "คีย์ API (จำเป็น)",
    "customUrlOptional": "URL ที่กำหนดเอง (ไม่บังคับ)",
    "testDesc": "มาตรวจสอบการเชื่อมต่อผู้ให้บริการของคุณใช้งานได้",
    "runTest": "เรียกใช้การทดสอบการเชื่อมต่อ",
    "testingConnection": "กำลังทดสอบการเชื่อมต่อ...",
    "connectionSuccessful": "การเชื่อมต่อสำเร็จ! ผู้ให้บริการของคุณพร้อมแล้ว",
    "noProviderFound": "ไม่พบผู้ให้บริการ คุณสามารถเพิ่มได้จากแดชบอร์ดในภายหลัง",
    "testFailed": "การทดสอบล้มเหลว แต่คุณสามารถกำหนดค่าได้ในภายหลัง",
    "couldNotTest": "ไม่สามารถทดสอบได้ในขณะนี้ คุณสามารถทดสอบได้จากแดชบอร์ด",
    "doneDesc": "คุณพร้อมแล้ว! อินสแตนซ์ OmniRoute ของคุณได้รับการกำหนดค่าและพร้อมที่จะส่งคำขอ AI ของพร็อกซี",
    "yourEndpoint": "ปลายทางของคุณ:",
    "continue": "ดำเนินการต่อ",
    "retry": "ลองอีกครั้ง",
    "failedSetPassword": "ไม่สามารถตั้งรหัสผ่านได้ ลองอีกครั้ง",
    "failedAddProvider": "ไม่สามารถเพิ่มผู้ให้บริการ ลองอีกครั้ง",
    "connectionError": "ข้อผิดพลาดในการเชื่อมต่อ โปรดลองอีกครั้ง",
    "provider": "ผู้ให้บริการ"
  },
  "providers": {
    "title": "ผู้ให้บริการ",
    "addProvider": "เพิ่มผู้ให้บริการ",
    "editProvider": "แก้ไขผู้ให้บริการ",
    "deleteProvider": "ลบผู้ให้บริการ",
    "noProviders": "ไม่มีการกำหนดค่าผู้ให้บริการ",
    "modelAvailability": "ความพร้อมของรุ่น",
    "accounts": "บัญชี",
    "newAccount": "บัญชีใหม่",
    "deleteConfirm": "คุณแน่ใจหรือไม่ว่าต้องการลบผู้ให้บริการรายนี้",
    "testing": "กำลังทดสอบ...",
    "testConnection": "ทดสอบการเชื่อมต่อ",
    "testSuccess": "การเชื่อมต่อสำเร็จ",
    "testFailed": "การเชื่อมต่อล้มเหลว",
    "available": "มีจำหน่าย",
    "cooldown": "คูลดาวน์",
    "unavailable": "ไม่พร้อมใช้งาน",
    "unknown": "ไม่ทราบ",
    "oauthLabel": "OAuth",
    "compatibleLabel": "เข้ากันได้",
    "chat": "แชท",
    "responses": "คำตอบ",
    "messages": "ข้อความ",
    "oauthProviders": "ผู้ให้บริการ OAuth",
    "freeProviders": "ผู้ให้บริการฟรี",
    "apiKeyProviders": "ผู้ให้บริการคีย์ API",
    "compatibleProviders": "ผู้ให้บริการที่เข้ากันได้กับคีย์ API",
    "testAll": "ทดสอบทั้งหมด",
    "testAllOAuth": "ทดสอบการเชื่อมต่อ OAuth ทั้งหมด",
    "testAllFree": "ทดสอบการเชื่อมต่อฟรีทั้งหมด",
    "testAllApiKey": "ทดสอบการเชื่อมต่อคีย์ API ทั้งหมด",
    "testAllCompatible": "ทดสอบการเชื่อมต่อที่เข้ากันได้ทั้งหมด",
    "connected": "{count} เชื่อมต่อแล้ว",
    "errorCount": "{count} ข้อผิดพลาด ({code})",
    "errorCountNoCode": "{count} เกิดข้อผิดพลาด",
    "noConnections": "ไม่มีการเชื่อมต่อ",
    "disabled": "ปิดการใช้งาน",
    "enableProvider": "เปิดใช้งานผู้ให้บริการ",
    "disableProvider": "ปิดการใช้งานผู้ให้บริการ",
    "testResults": "ผลการทดสอบ",
    "noCompatibleYet": "ยังไม่มีการเพิ่มผู้ให้บริการที่เข้ากันได้",
    "compatibleHint": "ใช้ปุ่มด้านบนเพื่อเพิ่มตำแหน่งข้อมูลที่รองรับ OpenAI หรือ Anthropic",
    "addOpenAICompatible": "เพิ่มการรองรับ OpenAI",
    "addAnthropicCompatible": "เพิ่มความเข้ากันได้ทางมานุษยวิทยา",
    "addNewProvider": "เพิ่มผู้ให้บริการใหม่",
    "backToProviders": "กลับไปที่ผู้ให้บริการ",
    "configureNewProvider": "กำหนดค่าผู้ให้บริการ AI ใหม่เพื่อใช้กับแอปพลิเคชันของคุณ",
    "providerLabel": "ผู้ให้บริการ",
    "selectProvider": "เลือกผู้ให้บริการ",
    "selectedProvider": "ผู้ให้บริการที่เลือก",
    "authMethod": "วิธีการรับรองความถูกต้อง",
    "apiKeyLabel": "คีย์ API",
    "apiKeyRequired": "จำเป็นต้องมีคีย์ API",
    "selectProviderRequired": "โปรดเลือกผู้ให้บริการ",
    "enterApiKey": "ป้อนคีย์ API ของคุณ",
    "apiKeySecure": "รหัส API ของคุณจะถูกเข้ารหัสและเก็บไว้อย่างปลอดภัย",
    "oauth2Connect": "เชื่อมต่อกับ OAuth2",
    "oauth2Label": "OAuth2",
    "oauth2Desc": "เชื่อมต่อบัญชีของคุณโดยใช้การตรวจสอบสิทธิ์ OAuth2",
    "displayName": "ชื่อที่แสดง",
    "displayNamePlaceholder": "เช่น Production API, Dev Environment",
    "displayNameHint": "ไม่จำเป็น ชื่อที่จำง่ายเพื่อระบุการกำหนดค่านี้",
    "active": "ใช้งานอยู่",
    "activeDescription": "เปิดใช้งานผู้ให้บริการรายนี้เพื่อใช้ในแอปพลิเคชันของคุณ",
    "cancel": "ยกเลิก",
    "createProvider": "สร้างผู้ให้บริการ",
    "failedCreate": "ไม่สามารถสร้างผู้ให้บริการได้",
    "errorOccurred": "เกิดข้อผิดพลาด โปรดลองอีกครั้ง",
    "modelStatus": "สถานะโมเดล",
    "allModelsOperational": "ใช้งานได้ทุกรุ่น",
    "modelsWithIssues": "{count} โมเดลที่มีปัญหา",
    "allModelsNormal": "ทุกรุ่นตอบสนองได้ปกติ",
    "cooldownCleared": "ล้างคูลดาวน์แล้วสำหรับ {model}",
    "failedClearCooldown": "ไม่สามารถล้างคูลดาวน์ได้",
    "loadingAvailability": "กำลังโหลดรุ่นที่มีจำหน่าย...",
    "clearCooldown": "ชัดเจน",
    "clearing": "กำลังล้างข้อมูล...",
    "until": "จนถึง {time}",
    "providerTestFailed": "การทดสอบผู้ให้บริการล้มเหลว",
    "modeTest": "{mode} ทดสอบ",
    "passedCount": "{count} ผ่านไป",
    "failedCount": "{count} ล้มเหลว",
    "testedCount": "{count} ทดสอบแล้ว",
    "millisecondsAbbr": "{value}ms",
    "okShort": "ตกลง",
    "errorShort": "ข้อผิดพลาด",
    "noActiveConnectionsInGroup": "ไม่พบการเชื่อมต่อที่ใช้งานอยู่สำหรับกลุ่มนี้",
    "allTestsPassed": "ผ่านการทดสอบ {total} ทั้งหมด",
    "testSummary": "{passed}/{total} ผ่านไป {failed} ล้มเหลว",
    "nameLabel": "ชื่อ",
    "prefixLabel": "คำนำหน้า",
    "baseUrlLabel": "URL ฐาน",
    "apiTypeLabel": "ประเภทเอพีไอ",
    "prefixHint": "จำเป็น คำนำหน้าเฉพาะสำหรับชื่อรุ่น",
    "nameHint": "จำเป็น ป้ายกำกับที่เป็นมิตรสำหรับโหนดนี้",
    "baseUrlHint": "จำเป็น  URL ฐาน API ของผู้ให้บริการ",
    "anthropicPrefixPlaceholder": "ac-ผลิตภัณฑ์",
    "openaiPrefixPlaceholder": "oc-ผลิตภัณฑ์",
    "anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
    "openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
    "validateConnection": "ตรวจสอบการเชื่อมต่อ",
    "validating": "กำลังตรวจสอบ...",
    "connectionValid": "การเชื่อมต่อถูกต้อง!",
    "connectionFailed": "การเชื่อมต่อล้มเหลว ตรวจสอบ URL และรหัส",
    "testKeyLabel": "ทดสอบคีย์ API",
    "testKeyPlaceholder": "sk-... (สำหรับการตรวจสอบเท่านั้น)",
    "providerNotFound": "ไม่พบผู้ให้บริการ",
    "deleteConnectionConfirm": "ลบการเชื่อมต่อนี้ใช่ไหม",
    "failedSetAlias": "ไม่สามารถตั้งชื่อแทนได้",
    "failedSaveConnection": "ไม่สามารถบันทึกการเชื่อมต่อ",
    "failedSaveConnectionRetry": "ไม่สามารถบันทึกการเชื่อมต่อ โปรดลองอีกครั้ง",
    "failedRetestConnection": "ล้มเหลวในการทดสอบการเชื่อมต่ออีกครั้ง",
    "deleteCompatibleNodeConfirm": "ลบโหนดที่เข้ากันได้ {type} นี้หรือไม่",
    "anthropicCompatibleDetails": "รายละเอียดที่เข้ากันได้กับมานุษยวิทยา",
    "openaiCompatibleDetails": "รายละเอียดที่เข้ากันได้กับ OpenAI",
    "messagesApi": "API ข้อความ",
    "responsesApi": "API การตอบสนอง",
    "chatCompletions": "เสร็จสิ้นการแชท",
    "importingModels": "กำลังนำเข้า...",
    "importFromModels": "นำเข้าจาก /models",
    "addConnectionToImport": "เพิ่มการเชื่อมต่อเพื่อเปิดใช้งานการนำเข้า",
    "noModelsConfigured": "ไม่มีโมเดลที่กำหนดค่าไว้",
    "connectionCount": "{count} การเชื่อมต่อ",
    "fetchingModels": "กำลังเรียกรุ่นที่มีจำหน่าย...",
    "failedFetchModels": "ดึงข้อมูลโมเดลไม่สำเร็จ",
    "noModelsFound": "ไม่พบรุ่น",
    "importFailed": "การนำเข้าล้มเหลว",
    "noNewModelsAdded": "ไม่มีการเพิ่มโมเดลใหม่",
    "adding": "กำลังเพิ่ม...",
    "importingModelsTitle": "การนำเข้าโมเดล",
    "copyModel": "คัดลอกโมเดล",
    "removeModel": "ลบโมเดล",
    "rateLimitProtected": "ได้รับการคุ้มครอง",
    "rateLimitUnprotected": "ไม่มีการป้องกัน",
    "enableRateLimitProtection": "คลิกเพื่อเปิดใช้งานการป้องกันขีดจำกัดอัตรา",
    "disableRateLimitProtection": "คลิกเพื่อปิดใช้งานการป้องกันขีดจำกัดอัตรา",
    "productionKey": "รหัสการผลิต",
    "enterNewApiKey": "ป้อนคีย์ API ใหม่",
    "optional": "ไม่จำเป็น",
    "anthropicCompatibleName": "เข้ากันได้กับมานุษยวิทยา",
    "openaiCompatibleName": "รองรับ OpenAI",
    "failedImportModels": "ไม่สามารถนำเข้าโมเดลได้",
    "noModelsReturnedFromEndpoint": "ไม่มีโมเดลที่ส่งคืนจากปลายทาง /models",
    "importingModelsProgress": "กำลังนำเข้าโมเดล {current} จาก {total}...",
    "foundModelsStartingImport": "พบ {count} โมเดล กำลังเริ่มนำเข้า...",
    "importingModelById": "กำลังนำเข้า {modelId}...",
    "importSuccessCount": "นำเข้า {count, plural, one {# model} other {# models}} สำเร็จแล้ว!",
    "noNewModelsAddedExisting": "ไม่มีการเพิ่มโมเดลใหม่ (มีอยู่แล้วทั้งหมด)",
    "importDoneCount": "✓ เสร็จแล้ว! {count, plural, one {# model imported.} other {# models imported.}}",
    "unexpectedErrorOccurred": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
    "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
    "messagesPath": "ข้อความ",
    "responsesPath": "การตอบสนอง",
    "chatCompletionsPath": "แชท/เสร็จสิ้น",
    "add": "เพิ่ม",
    "edit": "แก้ไข",
    "delete": "ลบ",
    "anthropic": "มานุษยวิทยา",
    "openai": "OpenAI",
    "singleConnectionPerCompatible": "อนุญาตให้เชื่อมต่อได้เพียงครั้งเดียวต่อโหนดที่เข้ากันได้ เพิ่มโหนดอื่นหากคุณต้องการการเชื่อมต่อเพิ่มเติม",
    "connections": "การเชื่อมต่อ",
    "providerProxyTitleConfigured": "พร็อกซีผู้ให้บริการ: {host}",
    "configured": "กำหนดค่าแล้ว",
    "providerProxyConfigureHint": "กำหนดค่าพร็อกซีสำหรับการเชื่อมต่อทั้งหมดของผู้ให้บริการรายนี้",
    "providerProxy": "พร็อกซีของผู้ให้บริการ",
    "noConnectionsYet": "ยังไม่มีการเชื่อมต่อ",
    "addFirstConnectionHint": "เพิ่มการเชื่อมต่อครั้งแรกของคุณเพื่อเริ่มต้น",
    "addConnection": "เพิ่มการเชื่อมต่อ",
    "availableModels": "รุ่นที่มีจำหน่าย",
    "pageAutoRefresh": "หน้าจะรีเฟรชอัตโนมัติ...",
    "statusDisabled": "ปิดการใช้งาน",
    "statusConnected": "เชื่อมต่อแล้ว",
    "statusRuntimeIssue": "ปัญหารันไทม์",
    "statusAuthFailed": "การตรวจสอบสิทธิ์ล้มเหลว",
    "statusRateLimited": "อัตราจำกัด",
    "statusNetworkIssue": "ปัญหาเครือข่าย",
    "statusTestUnsupported": "ไม่รองรับการทดสอบ",
    "statusUnavailable": "ไม่พร้อมใช้งาน",
    "statusFailed": "ล้มเหลว",
    "statusError": "ข้อผิดพลาด",
    "oauthAccount": "บัญชี OAuth",
    "errorTypeRuntime": "รันไทม์ท้องถิ่น",
    "errorTypeUpstreamAuth": "การรับรองความถูกต้องต้นน้ำ",
    "errorTypeMissingCredential": "ข้อมูลรับรองหายไป",
    "errorTypeRefreshFailed": "รีเฟรชล้มเหลว",
    "errorTypeTokenExpired": "โทเค็นหมดอายุ",
    "errorTypeRateLimited": "อัตราจำกัด",
    "errorTypeUpstreamUnavailable": "อัปสตรีมไม่พร้อมใช้งาน",
    "errorTypeNetworkError": "ข้อผิดพลาดของเครือข่าย",
    "errorTypeTestUnsupported": "ไม่รองรับการทดสอบ",
    "errorTypeUpstreamError": "ข้อผิดพลาดต้นน้ำ",
    "proxySourceGlobal": "ทั่วโลก",
    "proxySourceProvider": "ผู้ให้บริการ",
    "proxySourceKey": "คีย์",
    "proxyConfiguredBySource": "พร็อกซี ({source}): {host}",
    "autoPriority": "อัตโนมัติ: {priority}",
    "proxy": "หนังสือมอบฉันทะ",
    "retestAuthentication": "ทดสอบการรับรองความถูกต้องอีกครั้ง",
    "retest": "ทดสอบซ้ำ",
    "disableConnection": "ปิดการใช้งานการเชื่อมต่อ",
    "enableConnection": "เปิดใช้งานการเชื่อมต่อ",
    "reauthenticateConnection": "ตรวจสอบการเชื่อมต่อนี้อีกครั้ง",
    "proxyConfig": "การกำหนดค่าพร็อกซี",
    "aliasExistsAlert": "มีนามแฝง \"{alias}\" อยู่แล้ว โปรดใช้โมเดลอื่นหรือแก้ไขนามแฝงที่มีอยู่",
    "openRouterAnyModelHint": "OpenRouter รองรับทุกรุ่น เพิ่มโมเดลและสร้างนามแฝงเพื่อการเข้าถึงที่รวดเร็ว",
    "modelIdFromOpenRouter": "รหัสรุ่น (จาก OpenRouter)",
    "openRouterModelPlaceholder": "มานุษยวิทยา / Claude-3-opus",
    "customModels": "โมเดลที่กำหนดเอง",
    "customModelsHint": "เพิ่มรหัสรุ่นที่ไม่ได้อยู่ในรายการเริ่มต้น สิ่งเหล่านี้จะพร้อมใช้งานสำหรับการกำหนดเส้นทาง",
    "modelId": "รหัสรุ่น",
    "customModelPlaceholder": "เช่น gpt-4.5-เทอร์โบ",
    "loading": "กำลังโหลด...",
    "removeCustomModel": "ลบโมเดลที่กำหนดเอง",
    "noCustomModels": "ยังไม่มีการเพิ่มโมเดลที่กำหนดเอง",
    "allSuggestedAliasesExist": "มีนามแฝงที่แนะนำทั้งหมดอยู่แล้ว โปรดเลือกรุ่นอื่นหรือลบนามแฝงที่ขัดแย้งกัน",
    "failedSaveCustomModel": "บันทึกโมเดลที่กำหนดเองไม่สำเร็จ",
    "modelAddedSuccess": "เพิ่มโมเดล {modelId} สำเร็จแล้ว",
    "failedAddModelTryAgain": "ไม่สามารถเพิ่มโมเดล โปรดลองอีกครั้ง",
    "failedSaveImportedModel": "ไม่สามารถบันทึกแบบจำลองที่นำเข้าไปยังฐานข้อมูลที่กำหนดเอง",
    "failedImportModelsTryAgain": "ไม่สามารถนำเข้าโมเดลได้ โปรดลองอีกครั้ง",
    "failedRemoveModelFromDatabase": "ไม่สามารถลบโมเดลออกจากฐานข้อมูล",
    "modelRemovedSuccess": "ลบโมเดลสำเร็จแล้ว",
    "failedDeleteModelTryAgain": "ลบโมเดลไม่สำเร็จ โปรดลองอีกครั้ง",
    "compatibleModelsDescription": "เพิ่มโมเดลที่เข้ากันได้กับ {type} ด้วยตนเองหรือนำเข้าจากตำแหน่งข้อมูล /models",
    "anthropicCompatibleModelPlaceholder": "คลอด-3-บทประพันธ์-20240229",
    "openaiCompatibleModelPlaceholder": "GPT-4o",
    "apiKeyValidationFailed": "การตรวจสอบคีย์ API ล้มเหลว โปรดตรวจสอบรหัสของคุณแล้วลองอีกครั้ง",
    "addProviderApiKeyTitle": "เพิ่ม {provider} คีย์ API",
    "checking": "กำลังตรวจสอบ...",
    "check": "ตรวจสอบ",
    "valid": "ถูกต้อง",
    "invalid": "ไม่ถูกต้อง",
    "creating": "กำลังสร้าง...",
    "validationChecksAnthropicCompatible": "การตรวจสอบความถูกต้องจะตรวจสอบ {provider} โดยการตรวจสอบคีย์ API",
    "validationChecksOpenAiCompatible": "การตรวจสอบความถูกต้องจะตรวจสอบ {provider} ผ่าน /models บน URL ฐานของคุณ",
    "priorityLabel": "ลำดับความสำคัญ",
    "saving": "กำลังบันทึก...",
    "save": "บันทึก",
    "editConnection": "แก้ไขการเชื่อมต่อ",
    "accountName": "ชื่อบัญชี",
    "email": "อีเมล",
    "healthCheckMinutes": "ตรวจสุขภาพ (ขั้นต่ำ)",
    "healthCheckHint": "ช่วงเวลาการรีเฟรชโทเค็นเชิงรุก 0 = ปิดการใช้งาน",
    "groupLabel": "Environment",
    "groupPlaceholder": "e.g. eKaizen, Personal",
    "failedTestConnection": "ทดสอบการเชื่อมต่อไม่สำเร็จ",
    "failed": "ล้มเหลว",
    "leaveBlankKeepCurrentApiKey": "เว้นว่างไว้เพื่อเก็บคีย์ API ปัจจุบันไว้",
    "editCompatibleTitle": "แก้ไข {type} เข้ากันได้",
    "compatibleBaseUrlHint": "ใช้ URL พื้นฐาน (ลงท้ายด้วย /v1) สำหรับ {type}- API ที่เข้ากันได้กับของคุณ",
    "apiKeyForCheck": "คีย์ API (สำหรับการตรวจสอบ)",
    "compatibleProdPlaceholder": "{type} เข้ากันได้ (ผลิตภัณฑ์)",
    "providerTestTimeout": "Provider test timed out — too many connections to test at once"
  },
  "settings": {
    "title": "การตั้งค่า",
    "general": "ทั่วไป",
    "security": "ความปลอดภัย",
    "appearance": "ลักษณะที่ปรากฏ",
    "routing": "การกำหนดเส้นทาง",
    "cache": "แคช",
    "resilience": "ความยืดหยุ่น",
    "systemPrompt": "พร้อมท์ระบบ",
    "thinkingBudget": "คิดงบประมาณ",
    "proxy": "หนังสือมอบฉันทะ",
    "pricing": "ราคา",
    "storage": "ที่เก็บของ",
    "policies": "นโยบาย",
    "ipFilter": "ตัวกรองไอพี",
    "comboDefaults": "ค่าเริ่มต้นคอมโบ",
    "fallbackChains": "โซ่สำรอง",
    "changePassword": "เปลี่ยนรหัสผ่าน",
    "enablePassword": "เปิดใช้งานรหัสผ่าน",
    "darkMode": "โหมดมืด",
    "lightMode": "โหมดแสง",
    "systemTheme": "ธีมของระบบ",
    "enableCache": "เปิดใช้งานแคช",
    "cacheTTL": "แคช TTL",
    "maxCacheSize": "ขนาดแคชสูงสุด",
    "clearCache": "ล้างแคช",
    "cacheHits": "การเข้าชมแคช",
    "cacheMisses": "แคชพลาด",
    "hitRate": "อัตราการเข้าชม",
    "cacheEntries": "รายการแคช",
    "circuitBreaker": "เบรกเกอร์",
    "retryPolicy": "นโยบายการลองอีกครั้ง",
    "maxRetries": "ลองใหม่สูงสุด",
    "retryDelay": "ลองล่าช้าอีกครั้ง",
    "timeoutMs": "หมดเวลา (มิลลิวินาที)",
    "enableSystemPrompt": "เปิดใช้งานพร้อมท์ระบบ",
    "systemPromptText": "ข้อความแจ้งของระบบ",
    "enableThinking": "เปิดใช้งานการคิด",
    "maxThinkingTokens": "โทเค็นการคิดสูงสุด",
    "enableProxy": "เปิดใช้งานพร็อกซี",
    "proxyUrl": "URL พร็อกซี",
    "pricingRates": "รูปแบบอัตราราคา",
    "currentPricing": "ภาพรวมราคาปัจจุบัน",
    "loadingPricing": "กำลังโหลดข้อมูลราคา...",
    "noPricing": "ไม่มีข้อมูลราคา",
    "input": "อินพุต",
    "output": "เอาท์พุต",
    "cached": "แคช",
    "reasoning": "การใช้เหตุผล",
    "cacheCreation": "การสร้างแคช",
    "customPricing": "ราคาที่กำหนดเอง",
    "databaseSize": "ขนาดฐานข้อมูล",
    "backupDb": "ฐานข้อมูลสำรอง",
    "restoreDb": "กู้คืนฐานข้อมูล",
    "exportData": "ส่งออกข้อมูล",
    "importData": "นำเข้าข้อมูล",
    "clearData": "ล้างข้อมูลทั้งหมด",
    "clearDataConfirm": "การดำเนินการนี้จะลบข้อมูลทั้งหมดอย่างถาวร คุณแน่ใจเหรอ?",
    "enableRequestLogs": "เปิดใช้งานบันทึกคำขอ",
    "logRetention": "การเก็บรักษาบันทึก",
    "ipWhitelist": "รายการ IP ที่อนุญาต",
    "ipBlacklist": "บัญชีดำไอพี",
    "addIP": "เพิ่มไอพี",
    "savedSuccessfully": "บันทึกการตั้งค่าเรียบร้อยแล้ว",
    "ai": "เอไอ",
    "advanced": "ขั้นสูง",
    "localMode": "โหมดท้องถิ่น — ข้อมูลทั้งหมดที่จัดเก็บไว้ในเครื่องของคุณ",
    "settingsSectionsAria": "ส่วนการตั้งค่า",
    "switchThemes": "สลับระหว่างธีมสว่างและธีมมืด",
    "themeSelectionAria": "การเลือกธีม",
    "themeLight": "เบา",
    "themeDark": "มืด",
    "themeSystem": "ระบบ",
    "hideHealthLogs": "ซ่อนบันทึกการตรวจสุขภาพ",
    "hideHealthLogsDesc": "เมื่อเปิด ให้ระงับข้อความ [HealthCheck] ในคอนโซลเซิร์ฟเวอร์",
    "themeAccent": "สีธีม",
    "themeAccentDesc": "เลือกสีสำเร็จรูปหรือสร้างธีมของคุณเองด้วยสีเดียว",
    "themeCreate": "สร้างธีม",
    "themeCustom": "ธีมกำหนดเอง",
    "themeBlue": "น้ำเงิน",
    "themeRed": "แดง",
    "themeGreen": "เขียว",
    "themeViolet": "ม่วง",
    "themeOrange": "ส้ม",
    "themeCyan": "ไซแอน",
    "promptCache": "แคชพร้อมท์",
    "flushCache": "ล้างแคช",
    "flushing": "กำลังฟลัชชิง…",
    "size": "ขนาด",
    "hits": "ฮิต",
    "evictions": "การขับไล่",
    "loadingCacheStats": "กำลังโหลดสถิติแคช...",
    "globalProxy": "พร็อกซีทั่วโลก",
    "globalProxyDesc": "กำหนดค่าพร็อกซีขาออกส่วนกลางสำหรับการเรียก API ทั้งหมด ผู้ให้บริการแต่ละราย คอมโบ และคีย์สามารถแทนที่สิ่งนี้ได้",
    "noGlobalProxy": "ไม่มีการกำหนดค่าพร็อกซีส่วนกลาง",
    "globalLabel": "ทั่วโลก",
    "configure": "กำหนดค่า",
    "globalSystemPrompt": "พร้อมท์ระบบทั่วโลก",
    "systemPromptDesc": "แทรกเข้าไปในคำขอทั้งหมดในระดับพร็อกซี",
    "saved": "บันทึกแล้ว",
    "systemPromptPlaceholder": "เข้าสู่ระบบพร้อมท์ให้แทรกคำขอทั้งหมด...",
    "systemPromptHint": "พรอมต์นี้ถูกเพิ่มไว้หน้าข้อความระบบของทุกคำขอ ใช้สำหรับคำแนะนำสากล หลักเกณฑ์ด้านความปลอดภัย หรือกฎการจัดรูปแบบการตอบกลับ",
    "chars": "{count} ตัวอักษร",
    "thinkingBudgetTitle": "คิดงบประมาณ",
    "thinkingBudgetDesc": "ควบคุมการใช้โทเค็นการให้เหตุผลของ AI ในคำขอทั้งหมด",
    "passthrough": "ทะลุผ่าน",
    "passthroughDesc": "ไม่มีการเปลี่ยนแปลง — ลูกค้าควบคุมงบประมาณการคิด",
    "auto": "อัตโนมัติ",
    "autoDesc": "ยกเลิกการกำหนดค่าการคิดทั้งหมด — ให้ผู้ให้บริการตัดสินใจ",
    "custom": "กำหนดเอง",
    "customDesc": "กำหนดงบประมาณโทเค็นคงที่สำหรับคำขอทั้งหมด",
    "adaptive": "ปรับตัวได้",
    "adaptiveDesc": "ปรับขนาดงบประมาณตามความซับซ้อนของคำขอ",
    "effortNone": "ไม่มี (0 โทเค็น)",
    "effortLow": "ต่ำ (โทเค็น 1K)",
    "effortMedium": "ปานกลาง (โทเค็น 10,000)",
    "effortHigh": "สูง (โทเค็น 128K)",
    "tokenBudget": "งบประมาณโทเค็น",
    "tokens": "โทเค็น",
    "baseEffortLevel": "ระดับความพยายามพื้นฐาน",
    "adaptiveHint": "โหมดการปรับเปลี่ยนจะปรับขนาดจากระดับพื้นฐานนี้โดยอิงตามจำนวนข้อความ การใช้เครื่องมือ และความยาวข้อความแจ้ง",
    "requireLogin": "จำเป็นต้องเข้าสู่ระบบ",
    "requireLoginDesc": "เมื่อเปิด แดชบอร์ดต้องใช้รหัสผ่าน เมื่อปิด ให้เข้าถึงโดยไม่ต้องเข้าสู่ระบบ",
    "currentPassword": "รหัสผ่านปัจจุบัน",
    "enterCurrentPassword": "ป้อนรหัสผ่านปัจจุบัน",
    "newPassword": "รหัสผ่านใหม่",
    "enterNewPassword": "ป้อนรหัสผ่านใหม่",
    "confirmPassword": "ยืนยันรหัสผ่านใหม่",
    "confirmPasswordPlaceholder": "ยืนยันรหัสผ่านใหม่",
    "passwordsNoMatch": "รหัสผ่านไม่ตรงกัน",
    "passwordUpdated": "อัปเดตรหัสผ่านเรียบร้อยแล้ว",
    "failedUpdatePassword": "ไม่สามารถอัปเดตรหัสผ่าน",
    "errorOccurred": "เกิดข้อผิดพลาด",
    "updatePassword": "อัปเดตรหัสผ่าน",
    "setPassword": "ตั้งรหัสผ่าน",
    "apiEndpointProtection": "การป้องกันปลายทาง API",
    "requireAuthModels": "ต้องใช้คีย์ API สำหรับ /models",
    "requireAuthModelsDesc": "เมื่อเปิด ตำแหน่งข้อมูล /v1/models จะส่งคืน 404 สำหรับคำขอที่ไม่ได้รับการรับรองความถูกต้อง ป้องกันการค้นพบโมเดลโดยผู้ใช้ที่ไม่ได้รับอนุญาต",
    "blockedProviders": "ผู้ให้บริการที่ถูกบล็อก",
    "blockedProvidersDesc": "ซ่อนผู้ให้บริการเฉพาะจากการตอบกลับ /v1/models ผู้ให้บริการที่ถูกบล็อกจะไม่ปรากฏในรายการโมเดล",
    "providersBlocked": "{count} ผู้ให้บริการถูกบล็อกจาก /models",
    "blockProviderTitle": "บล็อก {provider}",
    "unblockProviderTitle": "เลิกบล็อก {provider}",
    "routingStrategy": "กลยุทธ์การกำหนดเส้นทาง",
    "fillFirst": "เติมก่อน",
    "fillFirstDesc": "ใช้บัญชีตามลำดับความสำคัญ",
    "roundRobin": "ตัวกลม โรบิน",
    "roundRobinDesc": "หมุนเวียนไปตามบัญชีทั้งหมด",
    "p2c": "พีทูซี",
    "p2cDesc": "สุ่มเลือก 2 อัน ใช้อันที่ดีต่อสุขภาพกว่า",
    "random": "สุ่ม",
    "randomDesc": "บัญชีสุ่มแต่ละคำขอ",
    "leastUsed": "ใช้น้อยที่สุด",
    "leastUsedDesc": "เลือกบัญชีที่ใช้ล่าสุดน้อยที่สุด",
    "costOpt": "การเลือกใช้ต้นทุน",
    "costOptDesc": "ต้องการบัญชีที่ถูกที่สุด",
    "strictRandom": "Strict Random",
    "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
    "stickyLimit": "ขีด จำกัด เหนียว",
    "stickyLimitDesc": "โทรต่อบัญชีก่อนที่จะเปลี่ยน",
    "modelAliases": "นามแฝงของโมเดล",
    "modelAliasesTitle": "นามแฝงโมเดล",
    "modelAliasesDesc": "รูปแบบไวด์การ์ดเพื่อทำการแมปชื่อโมเดลใหม่ • ใช้ * และ ?",
    "addCustomAlias": "เพิ่มนามแฝงที่กำหนดเอง",
    "deprecatedModelId": "ID โมเดลที่เลิกใช้",
    "newModelId": "ID โมเดลใหม่",
    "customAliases": "นามแฝงที่กำหนดเอง",
    "builtInAliases": "นามแฝงในตัว",
    "backgroundDegradationTitle": "การลดระดับงานพื้นหลัง",
    "backgroundDegradationDesc": "ตรวจจับงานพื้นหลังโดยอัตโนมัติ (ชื่อเรื่อง, สรุป) และเปลี่ยนเส้นทางไปยังโมเดลที่ถูกกว่า",
    "enableDegradation": "เปิดใช้งานการลดระดับงานพื้นหลัง",
    "enableDegradationHint": "เมื่อเปิดใช้งาน งานพื้นหลังเช่นการสร้างชื่อเรื่องและสรุปจะถูกเปลี่ยนเส้นทางไปยังโมเดลที่ถูกกว่าโดยอัตโนมัติ",
    "tasksDetected": "งานที่ตรวจพบ",
    "degradationMap": "แผนผังการลดระดับโมเดล",
    "premiumModel": "โมเดลพรีเมียม",
    "cheapModel": "โมเดลราคาถูก",
    "detectionPatterns": "รูปแบบการตรวจจับ",
    "newPattern": "เช่น \"สร้างชื่อเรื่อง\"",
    "aliasPatternPlaceholder": "คลอด-โคลง-*",
    "aliasTargetPlaceholder": "คลอด-โคลง-4-20250514",
    "pattern": "รูปแบบ",
    "targetModel": "โมเดลเป้าหมาย",
    "add": "+ เพิ่ม",
    "session": "เซสชัน",
    "sessionDetailsAria": "รายละเอียดเซสชัน",
    "status": "สถานะ",
    "authenticated": "รับรองความถูกต้อง",
    "guest": "แขก",
    "loginTime": "เวลาเข้าสู่ระบบ",
    "sessionAge": "อายุเซสชัน",
    "browser": "เบราว์เซอร์",
    "clearLocalData": "ล้างข้อมูลในเครื่อง",
    "logout": "ออกจากระบบ",
    "clearLocalDataConfirm": "ล้างข้อมูลในเครื่องทั้งหมดไหม นี่จะรีเซ็ตการตั้งค่าของคุณ",
    "unknown": "ไม่ทราบ",
    "systemActor": "ระบบ",
    "ipAccessControl": "การควบคุมการเข้าถึงไอพี",
    "ipAccessControlDesc": "บล็อกหรืออนุญาตที่อยู่ IP ที่ระบุ",
    "ipModeDisabled": "ปิดการใช้งาน",
    "ipModeBlacklist": "บัญชีดำ",
    "ipModeWhitelist": "ไวท์ลิสต์",
    "ipModeWhitelistPriority": "ลำดับความสำคัญ WL",
    "addIpAddress": "เพิ่มที่อยู่ IP",
    "ipAddressPlaceholder": "192.168.1.0/24 หรือ 10.0.*.*",
    "block": "+ บล็อก",
    "allow": "+ อนุญาต",
    "blocked": "ถูกบล็อก ({count})",
    "allowed": "อนุญาต ({count})",
    "temporaryBans": "การแบนชั่วคราว ({count})",
    "minLeft": "เหลืออีก {min} นาที",
    "auditLog": "บันทึกการตรวจสอบ",
    "searchAuditLogs": "ค้นหาบันทึกการตรวจสอบ...",
    "failedLoadAuditLog": "โหลดบันทึกการตรวจสอบไม่สำเร็จ",
    "noAuditEvents": "ไม่พบกิจกรรมการตรวจสอบ",
    "action": "การดำเนินการ",
    "actor": "นักแสดง",
    "details": "รายละเอียด",
    "time": "เวลา",
    "fallbackChainsTitle": "โซ่สำรอง",
    "fallbackChainsDesc": "กำหนดลำดับสำรองของผู้ให้บริการต่อรุ่น",
    "addChain": "+ เพิ่มห่วงโซ่",
    "modelName": "ชื่อรุ่น",
    "modelNamePlaceholder": "คลอด-โคลง-4-20250514",
    "providersCommaSeparated": "ผู้ให้บริการ (คั่นด้วยเครื่องหมายจุลภาค เรียงตามลำดับความสำคัญ)",
    "providersCommaSeparatedPlaceholder": "มานุษยวิทยา openai ราศีเมถุน",
    "createChain": "สร้างเชน",
    "noFallbackChains": "ไม่มีโซ่ทางเลือก",
    "noFallbackChainsDesc": "สร้างห่วงโซ่เพื่อกำหนดลำดับทางเลือกของผู้ให้บริการสำหรับโมเดล",
    "loadingFallbackChains": "กำลังโหลดเชนสำรอง...",
    "deleteChainConfirm": "ลบเชนทางเลือกสำหรับ \"{model}\" หรือไม่",
    "chainCreated": "เชนที่สร้างขึ้นสำหรับ {model}",
    "chainDeleted": "ลบเชนสำหรับ {model} แล้ว",
    "failedCreateChain": "ไม่สามารถสร้างเชนได้",
    "failedDeleteChain": "ลบเชนไม่สำเร็จ",
    "deleteChain": "ลบห่วงโซ่",
    "fillModelAndProviders": "กรุณากรอกชื่อรุ่นและผู้ให้บริการ",
    "addAtLeastOneProvider": "เพิ่มผู้ให้บริการอย่างน้อยหนึ่งราย",
    "comboDefaultsTitle": "ค่าเริ่มต้นคอมโบ",
    "globalComboConfig": "การกำหนดค่าคอมโบทั่วโลก",
    "defaultStrategy": "กลยุทธ์เริ่มต้น",
    "defaultStrategyDesc": "นำไปใช้กับคอมโบใหม่โดยไม่มีกลยุทธ์ที่ชัดเจน",
    "comboStrategyAria": "กลยุทธ์คอมโบ",
    "priority": "ลำดับความสำคัญ",
    "weighted": "ถ่วงน้ำหนัก",
    "maxRetriesLabel": "ลองใหม่สูงสุด",
    "retryDelayLabel": "ความล่าช้าในการลองอีกครั้ง (มิลลิวินาที)",
    "timeoutLabel": "หมดเวลา (มิลลิวินาที)",
    "healthCheck": "ตรวจสุขภาพ",
    "healthCheckDesc": "ตรวจสอบความพร้อมของผู้ให้บริการล่วงหน้า",
    "trackMetrics": "ติดตามตัวชี้วัด",
    "trackMetricsDesc": "บันทึกเมตริกคำขอต่อคอมโบ",
    "providerOverrides": "การแทนที่ผู้ให้บริการ",
    "providerOverridesDesc": "แทนที่การหมดเวลาและลองใหม่ตามผู้ให้บริการ การตั้งค่าผู้ให้บริการจะแทนที่ค่าเริ่มต้นสากล",
    "providerMaxRetriesAria": "{provider} ลองใหม่สูงสุด",
    "providerTimeoutAria": "{provider} หมดเวลา มิลลิวินาที",
    "removeProviderOverrideAria": "ลบการแทนที่ {provider} ออก",
    "newProviderNamePlaceholder": "เช่น google, openai...",
    "newProviderNameAria": "ชื่อผู้ให้บริการใหม่",
    "retries": "ลองอีกครั้ง",
    "ms": "นางสาว",
    "saveComboDefaults": "บันทึกค่าเริ่มต้นคอมโบ",
    "maxNestingDepth": "ความลึกของการซ้อนสูงสุด",
    "concurrencyPerModel": "เห็นพ้องต้องกัน / รุ่น",
    "queueTimeout": "คิวหมดเวลา (มิลลิวินาที)",
    "providerProfiles": "โปรไฟล์ผู้ให้บริการ",
    "providerProfilesDesc": "แยกการตั้งค่าความยืดหยุ่นสำหรับผู้ให้บริการ OAuth (ตามเซสชัน) และคีย์ API (แบบมิเตอร์) ผู้ให้บริการ OAuth มีเกณฑ์ที่เข้มงวดมากขึ้นเนื่องจากมีขีดจำกัดอัตราที่ต่ำกว่า",
    "oauthProviders": "ผู้ให้บริการ OAuth",
    "apiKeyProviders": "ผู้ให้บริการคีย์ API",
    "transientCooldown": "คูลดาวน์ชั่วคราว",
    "rateLimitCooldown": "คูลดาวน์จำกัดอัตรา",
    "maxBackoffLevel": "ระดับการถอยกลับสูงสุด",
    "cbThreshold": "เกณฑ์ CB",
    "cbResetTime": "เวลารีเซ็ต CB",
    "rateLimiting": "การจำกัดอัตรา",
    "rateLimitingDesc": "ผู้ให้บริการคีย์ API จะถูกจำกัดอัตราโดยอัตโนมัติด้วยค่าเริ่มต้นที่ปลอดภัย เรียนรู้ขีดจำกัดจากส่วนหัวการตอบกลับและปรับเปลี่ยนเมื่อเวลาผ่านไป",
    "defaultSafetyNet": "เครือข่ายความปลอดภัยเริ่มต้น",
    "rpm": "รอบต่อนาที",
    "minGap": "มิน กาป",
    "maxConcurrent": "แม็กซ์พร้อมกัน",
    "activeLimiters": "ตัวจำกัดที่ใช้งานอยู่",
    "noActiveLimiters": "ยังไม่มีการจำกัดอัตราที่ใช้งานอยู่",
    "reservoir": "อ่างเก็บน้ำ",
    "running": "วิ่ง",
    "queued": "เข้าคิว",
    "circuitBreakers": "เซอร์กิตเบรกเกอร์",
    "breakerStateClosed": "ปิดแล้ว",
    "breakerStateOpen": "เปิด",
    "breakerStateHalfOpen": "ครึ่งเปิด",
    "tripped": "{count} สะดุด",
    "healthy": "{count} สุขภาพแข็งแรง",
    "resetAll": "รีเซ็ตทั้งหมด",
    "noCircuitBreakers": "ยังไม่มีเซอร์กิตเบรกเกอร์ทำงาน พวกเขาจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อมีการร้องขอไหลผ่านไปป์ไลน์คำสั่งผสม",
    "failures": "{count} ล้มเหลว",
    "policiesLocked": "นโยบายและตัวระบุที่ถูกล็อค",
    "allOperational": "ใช้งานได้ทุกระบบ — ไม่มีการล็อกหรือเบรกเกอร์สะดุด",
    "loadingPolicies": "กำลังโหลดนโยบาย...",
    "lockedIdentifiers": "ตัวระบุที่ถูกล็อค",
    "unlockedIdentifier": "ปลดล็อคแล้ว: {identifier}",
    "sinceDate": "ตั้งแต่ {date}",
    "forceUnlock": "บังคับปลดล็อค",
    "unlocking": "กำลังปลดล็อค...",
    "failedUnlock": "ปลดล็อคไม่สำเร็จ",
    "failedLoadWithStatus": "ไม่สามารถโหลด: {status}",
    "failedLoadResilience": "ไม่สามารถโหลดสถานะความยืดหยุ่นได้",
    "saveFailed": "บันทึกล้มเหลว",
    "resetFailed": "การรีเซ็ตล้มเหลว",
    "loadingResilience": "กำลังโหลดสถานะความยืดหยุ่น...",
    "retry": "ลองอีกครั้ง",
    "systemStorage": "ระบบและการจัดเก็บ",
    "allDataLocal": "ข้อมูลทั้งหมดที่จัดเก็บไว้ในเครื่องของคุณ",
    "databasePath": "เส้นทางฐานข้อมูล",
    "exportDatabase": "ส่งออกฐานข้อมูล",
    "exportAll": "ส่งออกทั้งหมด (.tar.gz)",
    "importDatabase": "นำเข้าฐานข้อมูล",
    "confirmDbImport": "ยืนยันการนำเข้าฐานข้อมูล",
    "confirmDbImportDesc": "สิ่งนี้จะแทนที่ข้อมูลปัจจุบันทั้งหมดด้วยเนื้อหาจาก {file} ข้อมูลสำรองจะถูกสร้างขึ้นโดยอัตโนมัติก่อนการนำเข้า",
    "yesImport": "ใช่ นำเข้า",
    "lastBackup": "การสำรองข้อมูลครั้งสุดท้าย",
    "noBackupYet": "ยังไม่มีการสำรองข้อมูล",
    "backupNow": "สำรองข้อมูลทันที",
    "backupRestore": "สำรองและกู้คืน",
    "viewBackups": "ดูข้อมูลสำรอง",
    "hide": "ซ่อน",
    "backupRetentionDesc": "สแน็ปช็อตฐานข้อมูลจะถูกสร้างขึ้นโดยอัตโนมัติก่อนการกู้คืนและทุกๆ 15 นาทีเมื่อข้อมูลเปลี่ยนแปลง การเก็บรักษา: การสำรองข้อมูล 24 ชั่วโมง + 30 รายวันพร้อมการหมุนเวียนอัจฉริยะ",
    "loadingBackups": "กำลังโหลดข้อมูลสำรอง...",
    "noBackupsYet": "ยังไม่มีข้อมูลสำรอง การสำรองข้อมูลจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อข้อมูลมีการเปลี่ยนแปลง",
    "backupsAvailable": "{count} มีการสำรองข้อมูลแล้ว",
    "refresh": "รีเฟรช",
    "confirm": "ยืนยัน?",
    "yes": "ใช่",
    "no": "ไม่",
    "restore": "คืนค่า",
    "invalidFileType": "ประเภทไฟล์ไม่ถูกต้อง ยอมรับเฉพาะไฟล์ .sqlite เท่านั้น",
    "exportFailed": "การส่งออกล้มเหลว",
    "exportFailedWithError": "การส่งออกล้มเหลว: {error}",
    "fullExportFailedWithError": "การส่งออกแบบเต็มล้มเหลว: {error}",
    "backupCreated": "สร้างข้อมูลสำรองแล้ว: {file}",
    "restoreSuccess": "ฟื้นแล้ว! การเชื่อมต่อ {connections}, โหนด {nodes}, คอมโบ {combos}, คีย์ {apiKeys} API",
    "importSuccess": "นำเข้าฐานข้อมูลแล้ว! การเชื่อมต่อ {connections}, โหนด {nodes}, คอมโบ {combos}, คีย์ {apiKeys} API",
    "justNow": "แค่ตอนนี้",
    "minutesAgo": "{count}นาทีที่แล้ว",
    "hoursAgo": "{count}ชม. ที่แล้ว",
    "daysAgo": "{count}d ที่แล้ว",
    "backupReasonManual": "คู่มือ",
    "backupReasonPreRestore": "คืนค่าล่วงหน้า",
    "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
    "noChangesSinceBackup": "ไม่มีการเปลี่ยนแปลงตั้งแต่การสำรองข้อมูลครั้งล่าสุด",
    "backupFailed": "การสำรองข้อมูลล้มเหลว",
    "restoreFailed": "การคืนค่าล้มเหลว",
    "importFailed": "การนำเข้าล้มเหลว",
    "errorDuringRestore": "เกิดข้อผิดพลาดระหว่างการคืนค่า",
    "errorDuringImport": "เกิดข้อผิดพลาดระหว่างการนำเข้า",
    "modelPricing": "ราคารุ่น",
    "modelPricingDesc": "กำหนดอัตราต้นทุนต่อรุ่น • อัตราทั้งหมดในโทเค็น $/1M",
    "providers": "ผู้ให้บริการ",
    "registry": "ทะเบียน",
    "priced": "ราคา",
    "searchProvidersModels": "ค้นหาผู้ให้บริการหรือรุ่น...",
    "showAll": "แสดงทั้งหมด",
    "noProvidersMatch": "ไม่มีผู้ให้บริการที่ตรงกับการค้นหาของคุณ",
    "howPricingWorks": "วิธีการทำงานของการกำหนดราคา",
    "cacheWrite": "แคชเขียน",
    "unsaved": "ไม่ได้บันทึก",
    "resetDefaults": "รีเซ็ตค่าเริ่มต้น",
    "saveProvider": "บันทึกผู้ให้บริการ",
    "saving": "กำลังบันทึก...",
    "model": "รุ่น",
    "models": "โมเดล",
    "moreProviders": "{count} ผู้ให้บริการเพิ่มเติม",
    "withPricing": "โดยมีการกำหนดราคาไว้",
    "policiesCircuitBreakers": "นโยบายและเซอร์กิตเบรกเกอร์",
    "activeIssuesDetected": "ตรวจพบปัญหาที่ทำงานอยู่",
    "off": "ปิด",
    "resetPricingConfirm": "รีเซ็ตราคาทั้งหมดสำหรับ {provider} เป็นค่าเริ่มต้นหรือไม่",
    "pricingDescInput": "อินพุต: โทเค็นที่ส่งไปยังโมเดล",
    "pricingDescOutput": "เอาท์พุต: โทเค็นที่สร้างขึ้น",
    "pricingDescCached": "แคช: อินพุตที่นำกลับมาใช้ใหม่ (~ 50% ของอัตราการอินพุต)",
    "pricingDescReasoning": "การใช้เหตุผล: โทเค็นการคิด (ถอยกลับไปที่เอาต์พุต)",
    "pricingDescCacheWrite": "การเขียนแคช: การสร้างรายการแคช (ถอยกลับไปที่อินพุต)",
    "pricingDescFormula": "ราคา = (input × input_rate) + (output × output_rate) + (cached × cached_rate) ต่อล้านโทเค็น",
    "pricingSettingsTitle": "การตั้งค่าราคา",
    "totalModels": "โมเดลทั้งหมด",
    "active": "ใช้งานอยู่",
    "costCalculation": "การคำนวณต้นทุน",
    "costCalculationDesc": "ต้นทุนจะคำนวณตามการใช้โทเค็นและอัตราราคาที่กำหนดค่าไว้สำหรับแต่ละรุ่น",
    "pricingFormat": "รูปแบบการตั้งราคา",
    "pricingFormatDesc": "อัตราทั้งหมดอยู่ในโทเค็น $/1M (ดอลลาร์ต่อโทเค็นหนึ่งล้าน)",
    "tokenTypes": "ประเภทโทเค็น",
    "inputTokenDesc": "โทเค็นพร้อมท์มาตรฐาน",
    "outputTokenDesc": "โทเค็นการเสร็จสิ้น/การตอบกลับ",
    "cachedTokenDesc": "โทเค็นอินพุตที่แคชไว้ (โดยทั่วไปคือ 50% ของอัตราการอินพุต)",
    "reasoningTokenDesc": "โทเค็นการใช้เหตุผล/การคิดพิเศษ (ทางเลือกกลับไปยังอัตราผลลัพธ์)",
    "cacheCreationTokenDesc": "โทเค็นที่ใช้ในการสร้างรายการแคช (สำรองไปยังอัตราการป้อนข้อมูล)",
    "customPricingNote": "คุณสามารถแทนที่ราคาเริ่มต้นสำหรับรุ่นเฉพาะได้ การแทนที่แบบกำหนดเองจะมีลำดับความสำคัญมากกว่าการกำหนดราคาที่ตรวจพบอัตโนมัติ",
    "editPricing": "แก้ไขราคา",
    "viewFullDetails": "ดูรายละเอียดทั้งหมด",
    "themeCoral": "คอรัล",
    "cliFingerprint": "CLI Fingerprint Matching",
    "cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
    "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
    "enableFingerprintTitle": "Enable fingerprint for {provider}",
    "disableFingerprintTitle": "Disable fingerprint for {provider}"
  },
  "translator": {
    "title": "นักแปล",
    "metaTitle": "สนามเด็กเล่นนักแปล | OmniRoute",
    "metaDescription": "ดีบัก ทดสอบ และแสดงภาพการแปลรูปแบบ API ระหว่างผู้ให้บริการ",
    "playgroundTitle": "สนามเด็กเล่นนักแปล",
    "playground": "สนามเด็กเล่น",
    "realtime": "กิจกรรมการแปลแบบเรียลไทม์",
    "chatTester": "ผู้ทดสอบการแชท",
    "testBench": "ม้านั่งทดสอบ",
    "liveMonitor": "การตรวจสอบสด",
    "modeDescriptionPlayground": "วางเนื้อหาคำขอ API ใดๆ และดูว่า OmniRoute แปลระหว่างรูปแบบของผู้ให้บริการอย่างไร (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "modeDescriptionChatTester": "ส่งคำขอแชทจริงผ่าน OmniRoute และตรวจสอบการเดินทางไปกลับทั้งหมด: อินพุต คำขอที่แปล การตอบกลับของผู้ให้บริการ และเอาต์พุตที่แปล",
    "modeDescriptionTestBench": "เรียกใช้สถานการณ์ที่กำหนดไว้ล่วงหน้าและเปรียบเทียบความเข้ากันได้ระหว่างผู้ให้บริการและรุ่นต่างๆ",
    "modeDescriptionLiveMonitor": "ดูกิจกรรมการแปลแบบเรียลไทม์เมื่อมีคำขอไหลผ่าน OmniRoute",
    "modeDescriptionFallback": "แก้ไขข้อบกพร่อง ทดสอบ และเห็นภาพว่า OmniRoute แปลคำขอ API ระหว่างผู้ให้บริการอย่างไร",
    "recentTranslations": "การแปลล่าสุด",
    "noTranslations": "ยังไม่มีคำแปล",
    "source": "แหล่งที่มา",
    "target": "เป้าหมาย",
    "time": "เวลา",
    "model": "รุ่น",
    "status": "สถานะ",
    "latency": "เวลาแฝง",
    "totalTranslations": "การแปลทั้งหมด",
    "successful": "ประสบความสำเร็จ",
    "errors": "ข้อผิดพลาด",
    "avgLatency": "เวลาแฝงเฉลี่ย",
    "millisecondsShort": "{value}ms",
    "notAvailableSymbol": "—",
    "liveAutoRefreshing": "ถ่ายทอดสด — รีเฟรชอัตโนมัติ",
    "paused": "หยุดชั่วคราว",
    "eventsAppearHint": "กิจกรรมการแปลจะปรากฏที่นี่เมื่อมีการร้องขอผ่าน OmniRoute ใช้วิธีใดวิธีหนึ่งเหล่านี้เพื่อสร้างเหตุการณ์:",
    "chatTesterTab": "แท็บเครื่องมือทดสอบการแชท",
    "testBenchTab": "แท็บม้านั่งทดสอบ",
    "externalApiCalls": "การเรียก API ภายนอก",
    "ideCliIntegrations": "การบูรณาการ IDE/CLI",
    "inMemoryNote": "หมายเหตุ: เหตุการณ์จะถูกจัดเก็บไว้ในหน่วยความจำและรีเซ็ตเมื่อเซิร์ฟเวอร์รีสตาร์ท",
    "ok": "ตกลง",
    "errorShort": "ผิดพลาด",
    "formatConverter": "ตัวแปลงรูปแบบ",
    "formatConverterDescription": "วางหรือพิมพ์เนื้อหาคำขอ JSON นักแปลจะตรวจจับรูปแบบต้นฉบับโดยอัตโนมัติและแปลงเป็นรูปแบบเป้าหมาย ใช้สิ่งนี้เพื่อแก้ไขวิธีที่ OmniRoute แปลคำขอระหว่างรูปแบบต่างๆ (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
    "input": "อินพุต",
    "output": "เอาท์พุต",
    "auto": "อัตโนมัติ",
    "swapFormats": "สลับรูปแบบ",
    "translateAction": "แปล",
    "clear": "ชัดเจน",
    "inputPlaceholder": "วางเนื้อหาคำขอที่นี่หรือเลือกเทมเพลตด้านล่าง...",
    "exampleTemplates": "เทมเพลตตัวอย่าง",
    "exampleTemplatesHint": "— คลิกเพื่อโหลด",
    "templateLoadHint": "เทมเพลตโหลดคำขอในรูปแบบ {format} เปลี่ยนรูปแบบต้นฉบับเพื่อโหลดในรูปแบบอื่น",
    "compatibilityTester": "เครื่องทดสอบความเข้ากันได้",
    "compatibilityReport": "รายงานความเข้ากันได้",
    "testBenchDescription": "เรียกใช้สถานการณ์ที่กำหนดไว้ล่วงหน้า (Simple Chat, Tool Calling ฯลฯ) เพื่อตรวจสอบการแปลและความเข้ากันได้ของผู้ให้บริการ เลือกรูปแบบต้นทางและผู้ให้บริการเป้าหมาย จากนั้นทำการทดสอบทั้งหมดเพื่อดูเปอร์เซ็นต์ความเข้ากันได้ ใช้สิ่งนี้เพื่อค้นหาฟีเจอร์ที่ใช้ได้กับผู้ให้บริการ",
    "targetProvider": "ผู้ให้บริการเป้าหมาย",
    "runAllTests": "เรียกใช้การทดสอบทั้งหมด",
    "runTest": "รันการทดสอบ",
    "reRun": "วิ่งอีกครั้ง",
    "running": "กำลังวิ่ง...",
    "passed": "ผ่านไป",
    "failed": "ล้มเหลว",
    "passedIconLabel": "✅ผ่าน",
    "chunks": "ชิ้น",
    "scenarioSimpleChat": "แชทง่ายๆ",
    "scenarioToolCalling": "การเรียกเครื่องมือ",
    "scenarioMultiTurn": "หลายเลี้ยว",
    "scenarioThinking": "กำลังคิด",
    "scenarioSystemPrompt": "พร้อมท์ระบบ",
    "scenarioStreaming": "สตรีมมิ่ง",
    "templateNames": {
      "simple-chat": "แชทง่ายๆ",
      "tool-calling": "การเรียกเครื่องมือ",
      "multi-turn": "หลายเลี้ยว",
      "thinking": "กำลังคิด",
      "system-prompt": "พร้อมท์ระบบ",
      "streaming": "สตรีมมิ่ง"
    },
    "templateDescriptions": {
      "simple-chat": "ข้อความพื้นฐาน",
      "tool-calling": "การเรียกใช้ฟังก์ชัน/เครื่องมือ",
      "multi-turn": "การสนทนากับประวัติศาสตร์",
      "thinking": "ขยายการคิด/การใช้เหตุผล",
      "system-prompt": "คำแนะนำระบบที่ซับซ้อน",
      "streaming": "คำขอสตรีม SSE"
    },
    "templatePayloads": {
      "simpleChat": {
        "system": "คุณเป็นผู้ช่วยที่เป็นประโยชน์",
        "userGreeting": "สวัสดี! วันนี้คุณเป็นอย่างไรบ้าง?"
      },
      "toolCalling": {
        "userWeather": "สภาพอากาศในเซาเปาโลเป็นอย่างไร?",
        "toolDescription": "รับสภาพอากาศปัจจุบันสำหรับสถานที่",
        "cityNameDescription": "ชื่อเมือง"
      },
      "multiTurn": {
        "system": "คุณเป็นผู้ช่วยเขียนโค้ด",
        "userInitial": "เขียนฟังก์ชันเพื่อจัดเรียงอาร์เรย์ใน Python",
        "assistantExample": "ต่อไปนี้เป็นฟังก์ชันการเรียงลำดับอย่างง่าย:\n\n```หลาม\ndef sort_array(arr):\n    กลับเรียงลำดับ(arr)\n```",
        "userFollowUp": "ตอนนี้ให้เรียงลำดับจากมากไปน้อย"
      },
      "thinking": {
        "question": "ผลรวมของจำนวนเฉพาะ 100 ตัวแรกเป็นเท่าใด?"
      },
      "systemPrompt": {
        "systemInstruction": "คุณเป็นวิศวกรซอฟต์แวร์อาวุโสที่เชี่ยวชาญด้านระบบแบบกระจาย ตอบคำถามอย่างกระชับโดยใช้แนวทางปฏิบัติที่ดีที่สุดในอุตสาหกรรม ให้ตัวอย่างโค้ดเสมอเมื่อเกี่ยวข้อง จัดรูปแบบคำตอบของคุณโดยใช้มาร์กดาวน์",
        "question": "ฉันจะใช้รูปแบบเซอร์กิตเบรกเกอร์ได้อย่างไร"
      },
      "streaming": {
        "prompt": "เล่าเรื่องสั้นเกี่ยวกับหุ่นยนต์ที่หัดวาดภาพให้ฉันฟังหน่อย"
      }
    },
    "openaiCompatibleLabel": "รองรับ OpenAI",
    "anthropicCompatibleLabel": "เข้ากันได้กับมานุษยวิทยา",
    "noTemplateForFormat": "ไม่มีเทมเพลตสำหรับรูปแบบนี้",
    "translationFailed": "การแปลล้มเหลว: {error}",
    "pipelineDebugger": "ไปป์ไลน์ดีบักเกอร์",
    "translationPipeline": "ไปป์ไลน์การแปล",
    "pipelineVisualization": "การแสดงภาพไปป์ไลน์",
    "pipelineVisualizationHint": "ส่งข้อความเพื่อดูว่าคำขอของคุณดำเนินการผ่านการตรวจหา → การแปล → การโทรของผู้ให้บริการอย่างไร",
    "chatTesterDescription": "ส่งข้อความเป็นรูปแบบไคลเอนต์เฉพาะและตรวจสอบแต่ละขั้นตอนของไปป์ไลน์การแปล",
    "chatTesterFlow": "คำขอของลูกค้า → การตรวจจับรูปแบบ → OpenAI Intermediate → รูปแบบผู้ให้บริการ → การตอบสนอง",
    "clickStepToInspect": "คลิกขั้นตอนใดก็ได้เพื่อตรวจสอบข้อมูลในขั้นตอนนั้น",
    "clientFormat": "รูปแบบไคลเอนต์",
    "provider": "ผู้ให้บริการ",
    "modelPlaceholder": "เลือกหรือพิมพ์ชื่อรุ่น...",
    "sendMessageToSeePipeline": "ส่งข้อความเพื่อดูไปป์ไลน์การแปล",
    "chatMessageHintPrefix": "ข้อความของคุณจะถูกจัดรูปแบบเป็น",
    "chatMessageHintSuffix": "คำขอ แปลผ่านไปป์ไลน์ และส่งไปยังผู้ให้บริการที่เลือก",
    "youWithFormat": "คุณ ({format})",
    "assistant": "ผู้ช่วย",
    "typeMessage": "พิมพ์ข้อความ...",
    "send": "ส่ง",
    "clientRequest": "คำขอของลูกค้า",
    "clientRequestDescription": "เนื้อหาคำขอตามที่ลูกค้าของคุณจะส่ง",
    "formatDetected": "ตรวจพบรูปแบบ",
    "formatDetectedDescription": "OmniRoute ตรวจจับรูปแบบ API จากโครงสร้างคำขอโดยอัตโนมัติ",
    "openaiIntermediate": "OpenAI ระดับกลาง",
    "openaiIntermediateDescription": "รูปแบบทั้งหมดจะถูกทำให้เป็นมาตรฐานเป็นรูปแบบ OpenAI ก่อน (สะพานสากล)",
    "providerFormat": "รูปแบบผู้ให้บริการ",
    "providerFormatDescription": "รูปแบบ OpenAI ได้รับการแปลเป็นรูปแบบดั้งเดิมของผู้ให้บริการ",
    "providerResponse": "การตอบสนองของผู้ให้บริการ",
    "providerResponseRawDescription": "การตอบสนองดิบจาก API ของผู้ให้บริการ",
    "providerResponseSseDescription": "สตรีม SSE แบบดิบจาก API ของผู้ให้บริการ",
    "unexpectedError": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
    "error": "เกิดข้อผิดพลาด",
    "errorMessage": "ข้อผิดพลาด: {message}",
    "requestFailed": "คำขอล้มเหลว",
    "noTextExtracted": "(ไม่มีการแยกข้อความ)",
    "liveMonitorDescriptionPrefix": "แสดงเหตุการณ์การแปลเมื่อมีการเรียก API ไหลผ่าน OmniRoute เหตุการณ์มาจากบัฟเฟอร์ในหน่วยความจำ (รีเซ็ตเมื่อรีสตาร์ท) ใช้",
    "liveMonitorDescriptionSuffix": "หรือการเรียก API ภายนอกเพื่อสร้างเหตุการณ์"
  },
  "usage": {
    "title": "การใช้งาน",
    "loggerTab": "คนตัดไม้",
    "proxyTab": "หนังสือมอบฉันทะ",
    "budgetManagement": "การจัดการงบประมาณ",
    "budgetSaved": "บันทึกขีดจำกัดงบประมาณแล้ว",
    "budgetSaveFailed": "ไม่สามารถบันทึกงบประมาณได้",
    "loadingBudgetData": "กำลังโหลดข้อมูลงบประมาณ...",
    "noApiKeysTitle": "ไม่มีคีย์ API",
    "noApiKeysDescription": "เพิ่มคีย์ API ก่อนเพื่อตั้งค่าขีดจำกัดงบประมาณ",
    "apiKey": "คีย์ API",
    "todaysSpend": "การใช้จ่ายวันนี้",
    "thisMonth": "เดือนนี้",
    "setLimits": "ตั้งค่าขีดจำกัด",
    "dailyLimitUsd": "ขีดจำกัดรายวัน (USD)",
    "monthlyLimitUsd": "ขีดจำกัดรายเดือน (USD)",
    "warningThresholdPercent": "เกณฑ์การเตือน (%)",
    "dailyLimitPlaceholder": "เช่น 5.00 น",
    "monthlyLimitPlaceholder": "เช่น 50.00 น",
    "warningThresholdPlaceholder": "80",
    "saveLimits": "บันทึกขีดจำกัด",
    "budgetOk": "งบประมาณตกลง — เหลือ {remaining}",
    "budgetExceeded": "เกินงบประมาณ — คำขออาจถูกบล็อก",
    "totalRequests": "คำขอทั้งหมด",
    "noDataYet": "ยังไม่มีข้อมูล",
    "latency": "เวลาแฝง",
    "latencyP50": "หน้า 50",
    "latencyP95": "หน้า 95",
    "latencyP99": "หน้า 99",
    "promptCache": "แคชพร้อมท์",
    "systemHealth": "สุขภาพของระบบ",
    "entries": "รายการ",
    "activeCount": "{count} ใช้งานอยู่",
    "openCircuitBreakersDetected": "ตรวจพบเบรกเกอร์วงจรเปิด",
    "hitRate": "อัตราการเข้าชม",
    "hitsMisses": "ฮิต / พลาด",
    "circuitBreakers": "เซอร์กิตเบรกเกอร์",
    "lockedIPs": "IP ที่ถูกล็อค",
    "lockoutsAutoRefreshHint": "การล็อคขีดจำกัดอัตราต่อรุ่น • รีเฟรชอัตโนมัติ 10 วินาที",
    "lockedCount": "{count, plural, one {# locked} other {# locked}}",
    "timeLeft": "{time} เหลือแล้ว",
    "howItWorks": "มันทำงานอย่างไร",
    "howItWorksSubtitle": "เรียนรู้ว่าการประเมินผลตรวจสอบการตอบสนอง LLM ของคุณอย่างไร",
    "define": "กำหนด",
    "defineStepDescription": "สร้างกรณีทดสอบพร้อมข้อความแจ้งอินพุตและเกณฑ์ผลลัพธ์ที่คาดหวังโดยใช้กลยุทธ์ เช่น ประกอบด้วย regex หรือการจับคู่แบบตรงทั้งหมด",
    "run": "วิ่ง",
    "runStepDescription": "ดำเนินการกรณีทดสอบกับตำแหน่งข้อมูล LLM ของคุณผ่าน OmniRoute แต่ละกรณีจะถูกส่งเป็นคำขอ API จริง",
    "evaluate": "ประเมินผล",
    "evaluateStepDescription": "คำตอบจะถูกเปรียบเทียบกับเกณฑ์ที่คาดหวัง ดูผ่าน/ไม่ผ่านสำหรับแต่ละกรณีพร้อมตัววัดเวลาแฝงและข้อเสนอแนะโดยละเอียด",
    "evalSuites": "ห้องประเมินผล",
    "evalSuitesHint": "คลิกชุดเพื่อดูกรณีทดสอบ จากนั้นเรียกใช้เพื่อประเมินตำแหน่งข้อมูล LLM ของคุณ",
    "evalsLoading": "กำลังโหลดห้องสวีท eval...",
    "noEvalSuitesFound": "ไม่พบห้องสวีท Eval",
    "noEvalSuitesDescription": "ชุด Eval สามารถกำหนดได้ผ่าน API หรือในโค้ด พวกเขาทดสอบผลลัพธ์ของโมเดลกับผลลัพธ์ที่คาดหวังโดยใช้กลยุทธ์ต่างๆ เช่น ประกอบด้วย regex การจับคู่แบบตรงทั้งหมด และฟังก์ชันที่กำหนดเอง",
    "columnCase": "กรณี",
    "columnStatus": "สถานะ",
    "columnLatency": "เวลาแฝง",
    "columnDetails": "รายละเอียด",
    "columnModel": "รุ่น",
    "columnStrategy": "กลยุทธ์",
    "columnExpected": "คาดว่า",
    "statsSuites": "ห้องสวีท",
    "statsTestCases": "กรณีทดสอบ",
    "statsModels": "โมเดล",
    "statsCoverage": "ความคุ้มครอง",
    "statsStrategiesCount": "{count} กลยุทธ์",
    "evaluationStrategies": "กลยุทธ์การประเมินผล",
    "modelsUnderTest": "รุ่นภายใต้การทดสอบ",
    "searchSuitesPlaceholder": "ค้นหาห้องชุด...",
    "passSuffix": "ผ่าน",
    "casesCount": "{count, plural, one {# case} other {# cases}}",
    "runEval": "วิ่งเอวาล",
    "runningProgress": "กำลังรัน {current}/{total}...",
    "passRate": "อัตราการผ่าน",
    "summaryBreakdown": "{passed} ผ่านไป · {failed} ล้มเหลว · รวม {total}",
    "passedIconLabel": "✅ผ่าน",
    "failedIconLabel": "❌ล้มเหลว",
    "detailsContains": "ประกอบด้วย: \"{term}\"",
    "detailsRegex": "Regex: {pattern}",
    "detailsExpected": "ต้องการ: \"{expected}\"",
    "noResultsYet": "ยังไม่มีผลลัพธ์",
    "testCasesCount": "กรณีทดสอบ ({count})",
    "noTestCasesDefined": "ไม่มีการกำหนดกรณีทดสอบ",
    "runEvalHint": "คลิก \"เรียกใช้การประเมิน\" เพื่อดำเนินการทุกกรณีกับตำแหน่งข้อมูล LLM ของคุณ การทดสอบแต่ละครั้งจะส่งคำขอจริงผ่าน OmniRoute",
    "notifyNoTestCases": "ไม่มีกรณีทดสอบที่กำหนดไว้สำหรับชุดนี้",
    "notifyAllCasesPassed": "{total} เคสทั้งหมดผ่าน ✅",
    "notifySomeCasesFailed": "{passed}/{total} ผ่านไป {failed} ล้มเหลว",
    "notifyEvalRunFailed": "การเรียกใช้การประเมินล้มเหลว",
    "notifyEvalTitle": "คะแนน: {name}",
    "modelEvals": "การประเมินแบบจำลอง",
    "evalsHeroDescription": "ทดสอบและตรวจสอบตำแหน่งข้อมูล LLM ของคุณโดยเรียกใช้ชุดการประเมินที่กำหนดไว้ล่วงหน้า แต่ละชุดมีกรณีทดสอบที่ส่งข้อความแจ้งจริงผ่าน OmniRoute และเปรียบเทียบการตอบสนองกับเกณฑ์ที่คาดหวัง — ช่วยให้คุณตรวจจับการถดถอย เปรียบเทียบแบบจำลอง และรับประกันคุณภาพการตอบสนองระหว่างผู้ให้บริการ",
    "qualityValidation": "การตรวจสอบคุณภาพ",
    "modelComparison": "การเปรียบเทียบแบบจำลอง",
    "regressionDetection": "การตรวจจับการถดถอย",
    "latencyBenchmarks": "เกณฑ์มาตรฐานความหน่วง",
    "modelLockouts": "การล็อคโมเดล",
    "noLockouts": "ไม่มีโมเดลที่ถูกล็อคอยู่ในขณะนี้",
    "activeSessions": "เซสชันที่ใช้งานอยู่",
    "noSessions": "ไม่มีเซสชันที่ใช้งานอยู่",
    "sessionsHint": "เซสชันปรากฏเป็นคำขอที่ไหลผ่านพร็อกซี",
    "sessionsTrackedHint": "ติดตามผ่านการร้องขอลายนิ้วมือ • รีเฟรชอัตโนมัติ 5 วินาที",
    "session": "เซสชัน",
    "age": "อายุ",
    "requests": "คำขอ",
    "connection": "การเชื่อมต่อ",
    "durationMillisecondsShort": "{value}ms",
    "durationSecondsShort": "{value}วินาที",
    "durationMinutesShort": "{value}ม",
    "durationHoursShort": "{value}ชม",
    "reasonSeparator": " - ",
    "notAvailableSymbol": "-",
    "providerLimits": "ข้อจำกัดของผู้ให้บริการ",
    "noProviders": "ไม่มีผู้ให้บริการที่เชื่อมต่อ",
    "connectProvidersForQuota": "เชื่อมต่อกับผู้ให้บริการด้วย OAuth เพื่อติดตามขีดจำกัดโควต้า API และการใช้งานของคุณ",
    "accountsCount": "{count, plural, one {# account} other {# accounts}}",
    "filteredFromCount": "(กรองจาก {count})",
    "autoRefresh": "รีเฟรชอัตโนมัติ",
    "refreshAll": "รีเฟรชทั้งหมด",
    "loadingQuotas": "กำลังโหลด...",
    "account": "บัญชี",
    "modelQuotas": "โควต้าโมเดล",
    "lastUsed": "ใช้ล่าสุด",
    "actions": "การดำเนินการ",
    "refreshQuota": "รีเฟรชโควต้า",
    "today": "วันนี้",
    "tomorrow": "พรุ่งนี้",
    "dayTimeFormat": "{day}, {time}",
    "inDuration": "ใน {duration}",
    "notApplicable": "ไม่มี",
    "rawPlanWithValue": "แผนดิบ: {plan}",
    "noPlanFromProvider": "ไม่มีแผนจากผู้ให้บริการ",
    "noQuotaData": "ไม่มีข้อมูลโควต้า",
    "ungrouped": "Ungrouped",
    "viewFlat": "Flat",
    "viewByEnvironment": "By Environment",
    "noQuotaDataAvailable": "ไม่มีข้อมูลโควต้า",
    "noAccountsForTierFilter": "ไม่พบบัญชีสำหรับตัวกรองระดับ",
    "tierAll": "ทั้งหมด",
    "tierEnterprise": "องค์กร",
    "tierTeam": "ทีม",
    "tierBusiness": "ธุรกิจ",
    "tierUltra": "อัลตร้า",
    "tierPro": "โปร",
    "tierPlus": "บวก",
    "tierFree": "ฟรี",
    "tierUnknown": "ไม่ทราบ"
  },
  "modals": {
    "waitingAuth": "รอการอนุญาต",
    "verificationUrl": "URL การยืนยัน",
    "yourCode": "รหัสของคุณ",
    "remoteAccess": "การเข้าถึงระยะไกล:",
    "connectedSuccess": "เชื่อมต่อสำเร็จ!",
    "connectionFailed": "การเชื่อมต่อล้มเหลว",
    "chooseAuthMethod": "เลือกวิธีการรับรองความถูกต้องของคุณ:",
    "awsBuilderId": "รหัสตัวสร้าง AWS",
    "awsIamIdentity": "ศูนย์ข้อมูลประจำตัว AWS IAM",
    "googleAccount": "บัญชี Google",
    "githubAccount": "บัญชี GitHub",
    "importToken": "นำเข้าโทเค็น",
    "pasteToken": "วางโทเค็นการรีเฟรชจาก Kiro IDE",
    "awsRegion": "ภูมิภาค AWS",
    "autoDetecting": "กำลังตรวจจับโทเค็นอัตโนมัติ...",
    "readingFromCache": "อ่านจากแคช AWS SSO",
    "readingFromCursor": "อ่านจากฐานข้อมูล Cursor IDE",
    "initializing": "กำลังเริ่มต้น...",
    "pricingConfig": "การกำหนดค่าราคา",
    "loadingPricing": "กำลังโหลดข้อมูลราคา...",
    "pricingRatesFormat": "รูปแบบอัตราราคา",
    "noPricingData": "ไม่มีข้อมูลราคา",
    "noModelsFound": "ไม่พบรุ่น"
  },
  "loggers": {
    "allProviders": "ผู้ให้บริการทั้งหมด",
    "allModels": "ทุกรุ่น",
    "allAccounts": "บัญชีทั้งหมด",
    "allApiKeys": "คีย์ API ทั้งหมด",
    "allTypes": "ทุกประเภท",
    "allLevels": "ทุกระดับ",
    "modelAZ": "รุ่น A-Z",
    "modelZA": "รุ่น Z-A",
    "loadingLogs": "กำลังโหลดบันทึก...",
    "loadingProxyLogs": "กำลังโหลดบันทึกพร็อกซี...",
    "noLogEntries": "ไม่พบรายการบันทึก",
    "noPayloadData": "ไม่มีข้อมูลเพย์โหลดสำหรับรายการบันทึกนี้",
    "proxyEvent": "เหตุการณ์พร็อกซี",
    "proxy": "หนังสือมอบฉันทะ",
    "level": "ระดับ",
    "directNative": "โดยตรง (เนทีฟ)",
    "combo": "คอมโบ",
    "inputTokens": "ฉัน:",
    "outputTokens": "โอ้:"
  },
  "stats": {
    "usageOverview": "ภาพรวมการใช้งาน",
    "outputTokens": "โทเค็นเอาท์พุต",
    "totalCost": "ต้นทุนรวม",
    "usageByModel": "การใช้งานตามรุ่น",
    "usageByAccount": "การใช้งานตามบัญชี",
    "failedToLoad": "โหลดสถิติการใช้งานไม่สำเร็จ",
    "tokenHealth": "โทเค็นสุขภาพ",
    "totalOAuth": "OAuth ทั้งหมด",
    "healthy": "ดีต่อสุขภาพ",
    "warning": "คำเตือน",
    "errored": "เกิดข้อผิดพลาด",
    "lastCheck": "ตรวจสอบครั้งสุดท้าย",
    "noData": "ไม่มีข้อมูล",
    "share": "แบ่งปัน",
    "unableToLoad": "ไม่สามารถโหลดเมตริกของระบบได้",
    "product": "สินค้า",
    "resources": "ทรัพยากร",
    "company": "บริษัท"
  },
  "auth": {
    "welcome": "ยินดีต้อนรับ",
    "signIn": "เข้าสู่ระบบ",
    "enterPassword": "ป้อนรหัสผ่านของคุณเพื่อดำเนินการต่อ",
    "password": "รหัสผ่าน",
    "unifiedProxy": "พร็อกซี AI API แบบรวม",
    "unifiedAiApiProxy": "พร็อกซี AI API แบบรวม",
    "unifiedAiApiProxyDesc": "กำหนดเส้นทางคำขอไปยังผู้ให้บริการ AI หลายรายผ่านจุดสิ้นสุดเดียว โหลดบาลานซ์ การเฟลโอเวอร์ และการติดตามการใช้งานในตัว",
    "passwordNotEnabled": "ไม่ได้เปิดใช้งานการป้องกันด้วยรหัสผ่าน",
    "loading": "กำลังโหลด...",
    "invalidPassword": "รหัสผ่านไม่ถูกต้อง",
    "errorOccurredRetry": "เกิดข้อผิดพลาด โปรดลองอีกครั้ง",
    "configureInstance": "มากำหนดค่าอินสแตนซ์ OmniRoute ของคุณกันดีกว่า",
    "runOnboardingWizard": "เรียกใช้ตัวช่วยสร้างการเริ่มต้นใช้งานเพื่อตั้งค่ารหัสผ่านของคุณและเชื่อมต่อกับผู้ให้บริการ AI รายแรกของคุณ",
    "startOnboarding": "เริ่มการเริ่มต้นใช้งาน",
    "secureYourInstance": "รักษาความปลอดภัยให้กับอินสแตนซ์ของคุณ",
    "setPasswordDescription": "ตั้งรหัสผ่านเพื่อปกป้องแดชบอร์ดของคุณและรักษาความปลอดภัยจุดสิ้นสุด API ของคุณจากการเข้าถึงที่ไม่ได้รับอนุญาต",
    "configurePassword": "กำหนดค่ารหัสผ่าน",
    "continue": "ดำเนินการต่อ",
    "windowWillClose": "หน้าต่างนี้จะปิดโดยอัตโนมัติ...",
    "closeTabNow": "คุณสามารถปิดแท็บนี้ได้ทันที",
    "copyUrlManual": "โปรดคัดลอก URL จากแถบที่อยู่และวางลงในแอปพลิเคชัน",
    "accessDeniedDescription": "คุณไม่ได้รับอนุญาตให้เข้าถึงทรัพยากรนี้ ตรวจสอบคีย์ API ของคุณหรือติดต่อผู้ดูแลระบบ",
    "goToDashboard": "ไปที่แดชบอร์ด",
    "featureMultiProviderTitle": "ผู้ให้บริการหลายราย",
    "featureMultiProviderDesc": "OpenAI, มานุษยวิทยา, Google และอื่นๆ",
    "featureLoadBalancingTitle": "โหลดบาลานซ์",
    "featureLoadBalancingDesc": "กระจายคำขออย่างชาญฉลาด",
    "featureUsageTrackingTitle": "การติดตามการใช้งาน",
    "featureUsageTrackingDesc": "ตรวจสอบต้นทุนและโทเค็น",
    "resetPassword": "รีเซ็ตรหัสผ่าน",
    "resetDescription": "เลือกวิธีในการกู้คืนการเข้าถึงแดชบอร์ดของคุณ",
    "stopServer": "หยุดเซิร์ฟเวอร์ OmniRoute",
    "processing": "กำลังประมวลผล...",
    "pleaseWait": "โปรดรอในขณะที่เราดำเนินการอนุมัติให้เสร็จสิ้น",
    "authSuccess": "การอนุญาตสำเร็จ!",
    "copyUrl": "คัดลอก URL นี้",
    "accessDenied": "การเข้าถึงถูกปฏิเสธ",
    "methodCliTitle": "วิธีที่ 1: รีเซ็ต CLI",
    "methodCliDescription": "รันคำสั่งต่อไปนี้บนเซิร์ฟเวอร์ที่ OmniRoute กำลังทำงานอยู่:",
    "methodCliHint": "สิ่งนี้จะแจ้งให้คุณตั้งรหัสผ่านใหม่ เซิร์ฟเวอร์จะต้องถูกหยุดก่อน",
    "methodManualTitle": "วิธีที่ 2: รีเซ็ตด้วยตนเอง",
    "methodManualDescription": "ลบรหัสผ่านออกจากฐานข้อมูลและตั้งรหัสผ่านใหม่เมื่อเริ่มต้นระบบ:",
    "setPasswordInYour": "ตั้งรหัสผ่านใหม่ในของคุณ",
    "fileLabelSuffix": "ไฟล์:",
    "newPasswordPlaceholder": "your_new_password",
    "deleteSettingsFile": "ลบ",
    "orRemovePasswordHashField": "หรือลบฟิลด์รหัสผ่านแฮช",
    "restartServerWithNewPassword": "รีสตาร์ทเซิร์ฟเวอร์ - จะใช้รหัสผ่านใหม่",
    "backToLogin": "กลับไปที่เข้าสู่ระบบ",
    "forgotPassword": "ลืมรหัสผ่าน?"
  },
  "landing": {
    "brandName": "OmniRoute",
    "navigateHome": "นำทางไปที่บ้าน",
    "toggleMenu": "สลับเมนู",
    "featuresLink": "คุณสมบัติ",
    "docsLink": "เอกสาร",
    "github": "GitHub",
    "versionLive": "v1.0 ใช้งานได้แล้ว",
    "oneEndpoint": "จุดสิ้นสุดหนึ่งสำหรับ",
    "allProviders": "ผู้ให้บริการ AI ทั้งหมด",
    "heroDescription": "พร็อกซีปลายทาง AI พร้อมเว็บแดชบอร์ด - พอร์ต JavaScript ของ CLIProxyAPI ทำงานได้อย่างราบรื่นกับ Claude Code, OpenAI Codex, Cline, RooCode และเครื่องมือ CLI อื่นๆ",
    "getStarted": "เริ่มต้นเลย",
    "viewOnGithub": "ดูบน GitHub",
    "powerfulFeatures": "คุณสมบัติอันทรงพลัง",
    "featuresSubtitle": "ทุกสิ่งที่คุณต้องการในการจัดการโครงสร้างพื้นฐาน AI ของคุณในที่เดียว สร้างขึ้นเพื่อรองรับขนาด",
    "featureUnifiedEndpointTitle": "จุดสิ้นสุดแบบรวม",
    "featureUnifiedEndpointDesc": "เข้าถึงผู้ให้บริการทั้งหมดผ่าน URL API มาตรฐานเดียว",
    "featureEasySetupTitle": "ติดตั้งง่าย",
    "featureEasySetupDesc": "เริ่มต้นใช้งานภายในไม่กี่นาทีด้วยคำสั่ง npx",
    "featureModelFallbackTitle": "โมเดลสำรอง",
    "featureModelFallbackDesc": "สลับผู้ให้บริการโดยอัตโนมัติเมื่อเกิดความล้มเหลวหรือเวลาแฝงสูง",
    "featureUsageTrackingTitle": "การติดตามการใช้งาน",
    "featureUsageTrackingDesc": "การวิเคราะห์โดยละเอียดและการตรวจสอบต้นทุนในทุกรุ่น",
    "featureOAuthApiKeysTitle": "OAuth และคีย์ API",
    "featureOAuthApiKeysDesc": "จัดการข้อมูลรับรองอย่างปลอดภัยในห้องนิรภัยเดียว",
    "featureCloudSyncTitle": "การซิงค์บนคลาวด์",
    "featureCloudSyncDesc": "ซิงค์การกำหนดค่าของคุณระหว่างอุปกรณ์ต่างๆ ได้ทันที",
    "featureCliSupportTitle": "การสนับสนุน CLI",
    "featureCliSupportDesc": "ใช้งานได้กับ Claude Code, Codex, Cline, Cursor และอื่นๆ",
    "featureDashboardTitle": "แดชบอร์ด",
    "featureDashboardDesc": "แดชบอร์ดแบบภาพสำหรับการวิเคราะห์ปริมาณข้อมูลแบบเรียลไทม์",
    "howItWorks": "OmniRoute ทำงานอย่างไร",
    "howItWorksDescription": "ข้อมูลจะไหลอย่างราบรื่นจากแอปพลิเคชันของคุณผ่านเลเยอร์การกำหนดเส้นทางอัจฉริยะของเราไปยังผู้ให้บริการที่ดีที่สุดสำหรับงาน",
    "howItWorksStep1Title": "1. CLI และ SDK",
    "howItWorksStep1Description": "คำขอของคุณเริ่มต้นจากเครื่องมือที่คุณชื่นชอบหรือ SDK แบบรวมของเรา เพียงเปลี่ยน URL ฐาน",
    "howItWorksStep2Title": "2. ศูนย์กลาง OmniRoute",
    "howItWorksStep2Description": "กลไกของเราจะวิเคราะห์พร้อมท์ ตรวจสอบความสมบูรณ์ของผู้ให้บริการ และเส้นทางเพื่อดูเวลาแฝงหรือต้นทุนที่ต่ำที่สุด",
    "howItWorksStep3Title": "3. ผู้ให้บริการ AI",
    "howItWorksStep3Description": "คำขอนี้ดำเนินการโดย OpenAI, Anthropic, Gemini หรืออื่นๆ ทันที",
    "getStartedIn30Seconds": "เริ่มต้นใน 30 วินาที",
    "getStartedDescription": "ติดตั้ง OmniRoute กำหนดค่าผู้ให้บริการของคุณผ่านแดชบอร์ดเว็บ และเริ่มกำหนดเส้นทางคำขอ AI",
    "installOmniRoute": "ติดตั้ง OmniRoute",
    "installStepDescription": "รันคำสั่ง npx เพื่อเริ่มเซิร์ฟเวอร์ทันที",
    "openDashboard": "เปิดแดชบอร์ด",
    "openDashboardStepDescription": "กำหนดค่าผู้ให้บริการและคีย์ API ผ่านทางเว็บอินเตอร์เฟส",
    "routeRequests": "คำขอเส้นทาง",
    "routeRequestsStepDescription": "ชี้เครื่องมือ CLI ของคุณไปที่ {endpoint}",
    "terminal": "สถานีปลายทาง",
    "copy": "คัดลอก",
    "copied": "✓ คัดลอกแล้ว",
    "startingOmniRoute": "กำลังเริ่ม OmniRoute...",
    "serverRunningOnLabel": "เซิร์ฟเวอร์กำลังทำงานอยู่",
    "dashboardLabel": "แดชบอร์ด",
    "readyToRoute": "พร้อมลุย! ✓",
    "configureProvidersNote": "แปลก กำหนดค่าผู้ให้บริการในแดชบอร์ดหรือใช้ตัวแปรสภาพแวดล้อม",
    "dataLocation": "ตำแหน่งข้อมูล:",
    "dataLocationMacLinux": " macOS/ลินุกซ์:",
    "dataLocationWindows": " หน้าต่าง:",
    "product": "สินค้า",
    "dashboardLink": "แดชบอร์ด",
    "changelog": "บันทึกการเปลี่ยนแปลง",
    "resources": "ทรัพยากร",
    "documentation": "เอกสารประกอบ",
    "npm": "เอ็นพีเอ็ม",
    "legal": "กฎหมาย",
    "mitLicense": "ใบอนุญาตเอ็มไอที",
    "footerTagline": "จุดสิ้นสุดแบบรวมสำหรับการสร้าง AI เชื่อมต่อ กำหนดเส้นทาง และจัดการผู้ให้บริการ AI ของคุณได้อย่างง่ายดาย",
    "copyright": "© {year} OmniRoute สงวนลิขสิทธิ์.",
    "flowToolClaudeCode": "คล็อด โค้ด",
    "flowToolOpenAICodex": "OpenAI Codex",
    "flowToolCline": "ไคลน์",
    "flowToolCursor": "เคอร์เซอร์",
    "flowProviderOpenAI": "OpenAI",
    "flowProviderAnthropic": "มานุษยวิทยา",
    "flowProviderGemini": "ราศีเมถุน",
    "flowProviderGithubCopilot": "นักบิน GitHub",
    "interactiveDiagram": "แผนภาพเชิงโต้ตอบที่มองเห็นได้บนเดสก์ท็อป",
    "ctaTitle": "พร้อมที่จะลดความซับซ้อนของโครงสร้างพื้นฐาน AI ของคุณแล้วหรือยัง?",
    "ctaDescription": "เข้าร่วมกับนักพัฒนาที่กำลังปรับปรุงการบูรณาการ AI กับ OmniRoute โอเพ่นซอร์สและเริ่มต้นได้ฟรี",
    "startFree": "เริ่มฟรี",
    "readDocumentation": "อ่านเอกสารประกอบ"
  },
  "docs": {
    "title": "เอกสารประกอบ",
    "quickStart": "เริ่มต้นอย่างรวดเร็ว",
    "features": "คุณสมบัติ",
    "supportedProviders": "ผู้ให้บริการที่รองรับ",
    "supportedProvidersToc": "ผู้ให้บริการ",
    "commonUseCases": "กรณีการใช้งานทั่วไป",
    "clientCompatibility": "ความเข้ากันได้ของไคลเอ็นต์",
    "protocolsToc": "Protocols",
    "apiReference": "การอ้างอิง API",
    "method": "วิธีการ",
    "path": "เส้นทาง",
    "notes": "หมายเหตุ",
    "modelPrefixes": "คำนำหน้าโมเดล",
    "prefix": "คำนำหน้า",
    "troubleshooting": "การแก้ไขปัญหา",
    "supportsChat": "รองรับทั้งปลายทางการแชทและการตอบกลับ",
    "oauthAutoRefresh": "การเชื่อมต่อ OAuth พร้อมการรีเฟรชโทเค็นอัตโนมัติ",
    "fullStreaming": "รองรับการสตรีมมิ่งเต็มรูปแบบสำหรับทุกรุ่น",
    "docsLabel": "เอกสาร",
    "docsHeroDescription": "เกตเวย์ AI สำหรับ LLM ที่มีผู้ให้บริการหลายราย จุดสิ้นสุดเดียวสำหรับ OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor และผู้ให้บริการอีกกว่า 20 ราย",
    "openDashboard": "เปิดแดชบอร์ด",
    "endpointPage": "หน้าจุดสิ้นสุด",
    "github": "GitHub",
    "reportIssue": "รายงานปัญหา",
    "onThisPage": "บนหน้านี้",
    "documentationVersion": "เอกสารประกอบ - v{version}",
    "quickStartStep1Title": "1. ติดตั้งและรัน",
    "quickStartStep1Prefix": "วิ่ง",
    "quickStartStep1Middle": "หรือโคลนจาก GitHub แล้วรัน",
    "quickStartStep2Title": "2. สร้างคีย์ API",
    "quickStartStep2Text": "ไปที่จุดสิ้นสุด -> คีย์ที่ลงทะเบียน สร้างหนึ่งคีย์ต่อสภาพแวดล้อม",
    "quickStartStep3Title": "3. เชื่อมต่อผู้ให้บริการ",
    "quickStartStep3Text": "เพิ่มบัญชีผู้ให้บริการผ่านการเข้าสู่ระบบ OAuth, คีย์ API หรือการเชื่อมต่ออัตโนมัติระดับฟรี",
    "quickStartStep4Title": "4. ตั้งค่า URL ฐานลูกค้า",
    "quickStartStep4Prefix": "ชี้ IDE หรือไคลเอ็นต์ API ของคุณไปที่",
    "quickStartStep4Suffix": "ใช้คำนำหน้าผู้ให้บริการ เป็นต้น",
    "featureRoutingTitle": "การกำหนดเส้นทางผู้ให้บริการหลายราย",
    "featureRoutingText": "กำหนดเส้นทางคำขอไปยังผู้ให้บริการ AI กว่า 30 รายผ่านจุดสิ้นสุดที่เข้ากันได้กับ OpenAI จุดเดียว รองรับ API การแชท การตอบกลับ เสียง และรูปภาพ",
    "featureCombosTitle": "คอมโบและการปรับสมดุล",
    "featureCombosText": "สร้างโมเดลคอมโบด้วยห่วงโซ่ทางเลือกและกลยุทธ์การปรับสมดุล: การหมุนเวียนแบบวนซ้ำ ลำดับความสำคัญ สุ่ม ใช้น้อยที่สุด และปรับต้นทุนให้เหมาะสม",
    "featureUsageTitle": "การใช้งานและการติดตามต้นทุน",
    "featureUsageText": "การนับโทเค็นแบบเรียลไทม์ การคำนวณต้นทุนต่อผู้ให้บริการ/โมเดล และรายละเอียดการใช้งานโดยละเอียดตามคีย์ API และบัญชี",
    "featureAnalyticsTitle": "แดชบอร์ดการวิเคราะห์",
    "featureAnalyticsText": "การวิเคราะห์ด้วยภาพพร้อมแผนภูมิสำหรับคำขอ โทเค็น ข้อผิดพลาด เวลาแฝง ต้นทุน และความนิยมของโมเดลในช่วงเวลาหนึ่ง",
    "featureHealthTitle": "การตรวจติดตามสุขภาพ",
    "featureHealthText": "การตรวจสอบสุขภาพแบบเรียลไทม์ สถานะของผู้ให้บริการ สถานะเซอร์กิตเบรกเกอร์ และการตรวจจับขีดจำกัดอัตราอัตโนมัติพร้อมการถอยกลับแบบเอ็กซ์โพเนนเชียล",
    "featureCliTitle": "เครื่องมือ CLI",
    "featureCliText": "จัดการการกำหนดค่า IDE, ส่งออก/นำเข้าข้อมูลสำรอง, ค้นหาโปรไฟล์ Codex และกำหนดการตั้งค่าจากแดชบอร์ด",
    "featureSecurityTitle": "ความปลอดภัยและนโยบาย",
    "featureSecurityText": "การรับรองความถูกต้องของคีย์ API, การกรอง IP, การป้องกันการแทรกทันที, นโยบายโดเมน, การจัดการเซสชัน และการบันทึกการตรวจสอบ",
    "featureCloudSyncTitle": "การซิงค์บนคลาวด์",
    "featureCloudSyncText": "ซิงค์การกำหนดค่าของคุณกับ Cloudflare Workers เพื่อการเข้าถึงระยะไกลด้วยข้อมูลประจำตัวที่เข้ารหัสและการเฟลโอเวอร์อัตโนมัติ",
    "providersAcrossConnectionTypes": "{count} ผู้ให้บริการผ่านการเชื่อมต่อสามประเภท",
    "manageProviders": "จัดการผู้ให้บริการ",
    "providersCount": "{count} ผู้ให้บริการ",
    "providerTypeFree": "ฟรีเทียร์",
    "providerTypeOAuth": "OAuth",
    "providerTypeApiKey": "คีย์ API",
    "useCaseSingleEndpointTitle": "จุดสิ้นสุดเดียวสำหรับผู้ให้บริการหลายราย",
    "useCaseSingleEndpointText": "ชี้ไคลเอ็นต์ไปที่ URL ฐานเดียวและกำหนดเส้นทางตามคำนำหน้าโมเดล (เช่น gh/, cc/, kr/, openai/)",
    "useCaseFallbackTitle": "ทางเลือกและการสลับโมเดลด้วยคอมโบ",
    "useCaseFallbackText": "สร้างโมเดลคอมโบในแดชบอร์ดและรักษาการกำหนดค่าไคลเอนต์ให้เสถียรในขณะที่ผู้ให้บริการหมุนเวียนภายใน",
    "useCaseUsageVisibilityTitle": "การใช้งาน ต้นทุน และการมองเห็นการแก้ไขข้อบกพร่อง",
    "useCaseUsageVisibilityText": "ติดตามโทเค็นและค่าใช้จ่ายตามผู้ให้บริการ บัญชี และคีย์ API ในแท็บการใช้งานและการวิเคราะห์",
    "clientCherryStudioTitle": "เชอร์รี่ สตูดิโอ",
    "baseUrlLabel": "URL ฐาน",
    "chatEndpointLabel": "จุดสิ้นสุดการแชท",
    "modelRecommendationLabel": "คำแนะนำโมเดล: คำนำหน้าที่ชัดเจน",
    "clientCodexTitle": "โมเดล Codex / GitHub Copilot",
    "clientCodexBullet1": "ใช้รหัสรุ่นด้วย",
    "clientCodexBullet2": "โมเดลตระกูล Codex กำหนดเส้นทางอัตโนมัติไปยัง",
    "clientCodexBullet3": "โมเดลที่ไม่ใช่ Codex ยังคงดำเนินต่อไป",
    "clientCursorTitle": "เคอร์เซอร์ IDE",
    "clientCursorBullet1": "ใช้",
    "clientCursorBullet1Suffix": "คำนำหน้าสำหรับโมเดลเคอร์เซอร์",
    "clientCursorBullet2": "การเชื่อมต่อ OAuth - เข้าสู่ระบบจากหน้าผู้ให้บริการ",
    "clientClaudeTitle": "คล็อดโค้ด/ต้านแรงโน้มถ่วง",
    "clientClaudeBullet1Prefix": "ใช้",
    "clientClaudeBullet1Middle": "(คลอดด์) หรือ",
    "clientClaudeBullet1Suffix": "(ต้านแรงโน้มถ่วง) คำนำหน้า",
    "protocolsTitle": "Protocols: MCP & A2A",
    "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
    "protocolMcpTitle": "MCP (Model Context Protocol)",
    "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
    "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
    "protocolMcpStep2": "Point your MCP client to stdio transport.",
    "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
    "protocolA2aTitle": "A2A (Agent2Agent)",
    "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
    "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
    "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
    "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
    "protocolTroubleshootingTitle": "Protocol Troubleshooting",
    "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
    "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
    "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
    "endpointChatNote": "จุดสิ้นสุดการแชทที่เข้ากันได้กับ OpenAI (ค่าเริ่มต้น)",
    "endpointResponsesNote": "จุดสิ้นสุด API การตอบกลับ (Codex, o-series)",
    "endpointModelsNote": "แค็ตตาล็อกโมเดลสำหรับผู้ให้บริการที่เชื่อมต่อทั้งหมด",
    "endpointAudioNote": "การถอดเสียง (Deepgram, AssemblyAI)",
    "endpointImagesNote": "การสร้างภาพ (NanoBanana)",
    "endpointRewriteChatNote": "เขียนตัวช่วยใหม่สำหรับลูกค้าที่ไม่มี /v1",
    "endpointRewriteResponsesNote": "เขียนตัวช่วยใหม่สำหรับการตอบกลับโดยไม่มี /v1",
    "endpointRewriteModelsNote": "เขียนตัวช่วยใหม่สำหรับการค้นหาโมเดลโดยไม่มี /v1",
    "modelPrefixesDescriptionStart": "ใช้คำนำหน้าผู้ให้บริการก่อนชื่อรุ่นเพื่อกำหนดเส้นทางไปยังผู้ให้บริการเฉพาะ ตัวอย่าง:",
    "modelPrefixesDescriptionEnd": "เส้นทางไปยัง GitHub Copilot",
    "provider": "ผู้ให้บริการ",
    "type": "ประเภท",
    "troubleshootingModelRouting": "หากไคลเอ็นต์ล้มเหลวด้วยการกำหนดเส้นทางโมเดล ให้ใช้ผู้ให้บริการ/โมเดลที่ชัดเจน (เช่น gh/gpt-5.1-codex)",
    "troubleshootingAmbiguousModels": "หากคุณได้รับข้อผิดพลาดโมเดลที่ไม่ชัดเจน ให้เลือกคำนำหน้าผู้ให้บริการแทนรหัสโมเดลเปล่า",
    "troubleshootingCodexFamily": "สำหรับโมเดลตระกูล GitHub Codex ให้เก็บโมเดลเป็น gh/codex-model; เราเตอร์เลือก / ตอบสนองโดยอัตโนมัติ",
    "troubleshootingTestConnection": "ใช้แดชบอร์ด > ผู้ให้บริการ > ทดสอบการเชื่อมต่อ ก่อนการทดสอบจาก IDE หรือไคลเอนต์ภายนอก",
    "troubleshootingCircuitBreaker": "หากผู้ให้บริการแสดงเซอร์กิตเบรกเกอร์เปิดอยู่ ให้รอคูลดาวน์หรือตรวจสอบหน้าสุขภาพเพื่อดูรายละเอียด",
    "troubleshootingOAuth": "สำหรับผู้ให้บริการ OAuth ให้ตรวจสอบสิทธิ์อีกครั้งหากโทเค็นหมดอายุ ตรวจสอบตัวบ่งชี้สถานะบัตรผู้ให้บริการ"
  },
  "legal": {
    "privacyPolicy": "นโยบายความเป็นส่วนตัว",
    "termsOfService": "ข้อกำหนดในการให้บริการ",
    "providerConfigurations": "การกำหนดค่าของผู้ให้บริการ",
    "apiKeys": "คีย์ API",
    "usageLogs": "บันทึกการใช้งาน",
    "applicationSettings": "การตั้งค่าแอปพลิเคชัน",
    "viewExportAnalytics": "ดูและส่งออกการวิเคราะห์การใช้งาน",
    "clearHistory": "ล้างประวัติการใช้งานได้ตลอดเวลา",
    "configureRetention": "กำหนดค่านโยบายการเก็บรักษาบันทึก",
    "backupRestore": "สำรองและกู้คืนฐานข้อมูลของคุณ",
    "privacyMetadataTitle": "นโยบายความเป็นส่วนตัว | OmniRoute",
    "privacyMetadataDescription": "นโยบายความเป็นส่วนตัวสำหรับเราเตอร์พร็อกซี OmniRoute AI API",
    "termsMetadataTitle": "เงื่อนไขการให้บริการ | OmniRoute",
    "termsMetadataDescription": "ข้อกำหนดในการให้บริการสำหรับเราเตอร์พร็อกซี OmniRoute AI API",
    "backToHome": "กลับบ้าน",
    "lastUpdated": "อัปเดตล่าสุด: {date}",
    "policyLastUpdatedDate": "13 กุมภาพันธ์ 2569",
    "listSeparator": "-",
    "questionsVisit": "มีคำถาม? เยี่ยมชมของเรา",
    "githubRepository": "พื้นที่เก็บข้อมูล GitHub",
    "privacySection1Title": "1. สถาปัตยกรรมท้องถิ่นแห่งแรก",
    "privacySection1Text": "OmniRoute ได้รับการออกแบบให้เป็นแอปพลิเคชั่นแรกในท้องถิ่น การประมวลผลและการจัดเก็บข้อมูลทั้งหมดเกิดขึ้นบนเครื่องของคุณทั้งหมด ไม่มีเซิร์ฟเวอร์ส่วนกลางที่รวบรวมข้อมูลของคุณ",
    "privacySection2Title": "2. ข้อมูลที่เราจัดเก็บ",
    "privacyDataStoredIn": "ข้อมูลต่อไปนี้ถูกจัดเก็บไว้ในเครื่อง",
    "privacyDataProviderConfigurationsDesc": "URL การเชื่อมต่อ ประเภทผู้ให้บริการ และการตั้งค่าลำดับความสำคัญ",
    "privacyDataApiKeysDesc": "เข้ารหัสและจัดเก็บไว้ในเครื่องเพื่อตรวจสอบสิทธิ์กับผู้ให้บริการ AI",
    "privacyDataUsageLogsDesc": "จำนวนคำขอ การใช้โทเค็น ชื่อโมเดล การประทับเวลา และเวลาตอบสนอง",
    "privacyDataApplicationSettingsDesc": "การตั้งค่าธีม กลยุทธ์การกำหนดเส้นทาง และการกำหนดค่าคอมโบ",
    "privacySection3Title": "3. ไม่มีการวัดและส่งข้อมูลทางไกล",
    "privacySection3Text": "OmniRoute ไม่รวบรวมการวัดและส่งข้อมูลทางไกล การวิเคราะห์ หรือรายงานข้อขัดข้อง ไม่มีการส่งข้อมูลถึงเราหรือบุคคลที่สาม รูปแบบการใช้งาน การเรียก API และการกำหนดค่าของคุณยังคงเป็นส่วนตัวโดยสมบูรณ์",
    "privacySection4Title": "4. ผู้ให้บริการ AI บุคคลที่สาม",
    "privacySection4Text": "เมื่อคุณทำการเรียก API ผ่าน OmniRoute คำขอของคุณจะถูกส่งต่อไปยังผู้ให้บริการ AI ที่คุณกำหนดค่าไว้ (เช่น OpenAI, Anthropic, Google) ผู้ให้บริการเหล่านี้มีนโยบายความเป็นส่วนตัวของตนเองที่ควบคุมวิธีจัดการข้อมูลของคุณ โปรดตรวจสอบ:",
    "privacyOpenAiPolicy": "นโยบายความเป็นส่วนตัวของ OpenAI",
    "privacyAnthropicPolicy": "นโยบายความเป็นส่วนตัวด้านมานุษยวิทยา",
    "privacyGooglePolicy": "นโยบายความเป็นส่วนตัวของ Google",
    "privacySection5Title": "5. Cloud Sync (ไม่บังคับ)",
    "privacySection5Text": "หากคุณเปิดใช้งานคุณสมบัติเสริมการซิงค์บนคลาวด์ การกำหนดค่าผู้ให้บริการและคีย์ API อาจถูกส่งไปยังจุดสิ้นสุดบนคลาวด์ที่กำหนดค่าไว้ คุณลักษณะนี้ถูกปิดใช้งานโดยค่าเริ่มต้น และจำเป็นต้องเลือกใช้อย่างชัดเจน",
    "privacySection6Title": "6. การบันทึก",
    "privacyLoggingIntro": "บันทึกคำขอสามารถกำหนดค่าได้ผ่านการตั้งค่าแดชบอร์ด คุณสามารถ:",
    "privacySection7Title": "7. สิทธิ์ของคุณ",
    "privacySection7TextStart": "เนื่องจากข้อมูลทั้งหมดถูกจัดเก็บไว้ในเครื่อง คุณจึงสามารถควบคุมได้อย่างเต็มที่ คุณสามารถลบข้อมูลของคุณได้ตลอดเวลาโดยการลบ",
    "privacySection7TextEnd": "ไดเร็กทอรีหรือใช้คุณสมบัติการสำรองและกู้คืนฐานข้อมูลในแดชบอร์ด",
    "termsSection1Title": "1. ภาพรวม",
    "termsSection1Text": "OmniRoute เป็นเราเตอร์พร็อกซี AI API ตัวแรกในเครื่องที่ทำงานบนเครื่องของคุณทั้งหมด โดยกำหนดเส้นทางคำขอไปยังผู้ให้บริการ AI หลายรายด้วยการปรับสมดุลโหลด การเฟลโอเวอร์ และการติดตามการใช้งาน",
    "termsSection2Title": "2. ความรับผิดชอบของผู้ใช้",
    "termsResponsibilityApiKeys": "คุณมีหน้าที่รับผิดชอบแต่เพียงผู้เดียวในการจัดการคีย์ API และข้อมูลรับรองของคุณเองสำหรับผู้ให้บริการ AI บุคคลที่สาม (OpenAI, Anthropic, Google ฯลฯ)",
    "termsResponsibilityCompliance": "คุณต้องปฏิบัติตามข้อกำหนดในการให้บริการของผู้ให้บริการ AI แต่ละรายซึ่งมี API ที่คุณเข้าถึงผ่าน OmniRoute",
    "termsResponsibilitySecurity": "คุณต้องรับผิดชอบต่อความปลอดภัยของการติดตั้ง OmniRoute ในพื้นที่ของคุณ รวมถึงการตั้งรหัสผ่านและการจำกัดการเข้าถึงเครือข่าย",
    "termsSection3Title": "3. มันทำงานอย่างไร",
    "termsSection3Text": "OmniRoute ทำหน้าที่เป็นพร็อกซีตัวกลาง การเรียก API ที่ส่งไปยัง OmniRoute จะถูกแปลและส่งต่อไปยังผู้ให้บริการ AI ที่กำหนดค่าไว้ของคุณ OmniRoute จะไม่แก้ไขเนื้อหาคำขอหรือการตอบกลับของคุณนอกเหนือจากการแปลโปรโตคอลที่จำเป็น",
    "termsSection4Title": "4. การจัดการข้อมูล",
    "termsDataStoredLocally": "ข้อมูลทั้งหมดจะถูกจัดเก็บไว้ในเครื่องของคุณในฐานข้อมูล SQLite",
    "termsNoTransmission": "OmniRoute จะไม่ส่งข้อมูลใดๆ ไปยังเซิร์ฟเวอร์ภายนอก เว้นแต่คุณจะเปิดใช้งานคุณสมบัติการซิงค์บนคลาวด์อย่างชัดเจน",
    "termsDataLocationText": "บันทึกการใช้งาน คีย์ API และการกำหนดค่าจะถูกจัดเก็บไว้ใน",
    "termsSection5Title": "5. ข้อจำกัดความรับผิดชอบ",
    "termsSection5Text": "OmniRoute มีให้ \"ตามสภาพ\" โดยไม่มีการรับประกันใดๆ เราจะไม่รับผิดชอบต่อค่าใช้จ่ายใดๆ ที่เกิดขึ้นจากการใช้ API การหยุดชะงักของบริการ หรือการสูญหายของข้อมูล สำรองข้อมูลการกำหนดค่าของคุณไว้เสมอ",
    "termsSection6Title": "6. โอเพ่นซอร์ส",
    "termsSection6Text": "OmniRoute เป็นซอฟต์แวร์โอเพ่นซอร์ส คุณมีอิสระที่จะตรวจสอบ แก้ไข และแจกจ่ายภายใต้เงื่อนไขของใบอนุญาต"
  },
  "endpoints": {
    "tabProxy": "Endpoint Proxy",
    "tabApiEndpoints": "API Endpoints",
    "apiEndpointsTitle": "API Endpoints",
    "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
    "comingSoon": "Coming Soon",
    "plannedFeatures": "Planned Features",
    "featureRestApi": "REST API endpoint catalog with interactive documentation",
    "featureWebhooks": "Webhook configuration and event subscriptions",
    "featureSwagger": "OpenAPI / Swagger spec auto-generation",
    "featureAuth": "API key and OAuth scope management per endpoint"
  },
  "agents": {
    "title": "CLI Agents",
    "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
    "refresh": "Refresh",
    "installed": "Installed",
    "notFound": "Not Found",
    "builtIn": "Built-in",
    "custom": "Custom",
    "remove": "Remove",
    "addCustomAgent": "Add Custom Agent",
    "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
    "agentName": "Agent Name",
    "binaryName": "Binary Name",
    "versionCommand": "Version Command",
    "spawnArgs": "Spawn Args",
    "addAgent": "Add Agent"
  },
  "autoCombo": {
    "title": "Auto-Combo Engine",
    "statusNormal": "Normal",
    "statusIncident": "Incident Mode",
    "modePack": "Mode Pack",
    "providerScores": "Provider Scores",
    "noAutoCombo": "No auto-combo configured.",
    "excludedProviders": "Excluded Providers",
    "noExclusions": "No providers currently excluded.",
    "factorQuota": "Quota",
    "factorHealth": "Health",
    "factorCost": "Cost",
    "factorLatency": "Latency",
    "factorTaskFit": "Task Fit",
    "factorStability": "Stability",
    "factorTierPriority": "Tier Priority",
    "factorTierPriorityDesc": "Prefers accounts with higher quota tiers (Ultra/Pro over Free)",
    "scoreFactorBreakdown": "Scoring Factors",
    "modePackShipFast": "Ship Fast",
    "modePackCostSaver": "Cost Saver",
    "modePackQualityFirst": "Quality First",
    "modePackOfflineFriendly": "Offline Friendly"
  }
}
