Shortcuts were defined in four places that drifted apart: per-action IPC channel pairs, a hand-written VK table in the service, a second one in the renderer, and three copies of the keycap styling. Adding an action meant editing all of them, so two shortcuts stayed hardcoded in bootstrap and one had no settings entry at all. packages/core/src/keybinding.ts is now the single source for the binding type, the selectable key catalog, the action catalog, normalization, validation, conflict detection, display labels, search and deserialization. Main, preload and renderer all read from it; nothing redefines keys or rules locally. - Each action holds a list of bindings instead of one. AppConfig's four *Shortcut fields collapse into a single keyBindings map, migrated on launch. - Mouse buttons can be bound. Left click is refused, right/middle need a modifier, side buttons are free. uiohook cannot swallow events, so the original click still fires and the UI says so. - Keys can be picked from a grouped dropdown with a search box, not only by recording a keypress. - HOTKEY's 14 channels become KEYBINDING's 9, taking the action as a parameter, so actions no longer multiply channels. The history and command popups moved out of bootstrap into ordinary actions. - displayLabel is gone; labels derive from the binding and follow the app language and platform. Fixes found on the way: - Double-press hands-free was unreachable: lookup returned only the first matching action, and dictation shares its default binding. - Reserved-combination checks compared joined key names, so a different modifier order let Ctrl+C through. - Disabling shortcuts released every global registration in the process, including the popup ones, and never restored them. - Enabling shortcuts after starting disabled left nothing registered. - The dashboard stored the caption event payload instead of the state in it.
329 lines
24 KiB
JSON
329 lines
24 KiB
JSON
{
|
|
"app.name": "D3RO Voice",
|
|
"app.tagline": "ผู้ช่วยเสียง AI ในเครื่อง",
|
|
"nav.dashboard": "แดชบอร์ด",
|
|
"nav.history": "ประวัติ",
|
|
"nav.dictionary": "พจนานุกรม",
|
|
"nav.commands": "คำสั่ง",
|
|
"nav.settings": "การตั้งค่า",
|
|
"nav.meetings": "การประชุม",
|
|
"nav.record": "บันทึกเสียง",
|
|
"nav.chat": "แชท",
|
|
"nav.knowledge": "ความรู้",
|
|
"nav.actions": "การกระทำ",
|
|
"nav.teams": "ทีม",
|
|
"nav.billing": "การเรียกเก็บเงิน",
|
|
"nav.logout": "ออกจากระบบ",
|
|
"login.subtitle": "ผู้ช่วย AI สำหรับเสียง",
|
|
"login.google": "ดำเนินการต่อด้วย Google",
|
|
"login.github": "ดำเนินการต่อด้วย GitHub",
|
|
"login.terms": "การดำเนินการต่อ ถือว่าคุณยอมรับข้อกำหนดในการให้บริการและนโยบายความเป็นส่วนตัว",
|
|
"dashboard.systemStatus": "สถานะระบบ",
|
|
"dashboard.sessionsToday": "เซสชันวันนี้",
|
|
"dashboard.pressToRecord": "กด {{key}} เพื่อเริ่มบันทึก",
|
|
"dashboard.hotkeyNotSet": "ยังไม่ได้ตั้งค่าปุ่มลัด",
|
|
"dashboard.words": "คำ",
|
|
"dashboard.total": "ทั้งหมด",
|
|
"dashboard.days": "วัน",
|
|
"dashboard.sessions": "เซสชัน",
|
|
"dashboard.recentTranscriptions": "การถอดความล่าสุด",
|
|
"dashboard.noHistory": "ไม่มีประวัติ — กดปุ่มลัดเพื่อเริ่มบันทึก",
|
|
"dashboard.entries": "{{count}} รายการ",
|
|
"dashboard.currentBackend": "แบ็กเอนด์ปัจจุบัน",
|
|
"dashboard.backendLocal": "ภายในเครื่อง (Ollama)",
|
|
"dashboard.backendPremium": "พรีเมียม (Claude)",
|
|
"history.title": "ประวัติการถอดความ",
|
|
"history.search": "ค้นหา...",
|
|
"history.entries": "{{count}} รายการ",
|
|
"history.noResults": "ไม่พบผลลัพธ์",
|
|
"history.noHistory": "ไม่มีประวัติ — เริ่มบันทึกเสียง",
|
|
"history.count": "{{count}} รายการ",
|
|
"dictionary.title": "พจนานุกรมที่กำหนดเอง",
|
|
"dictionary.words": "{{count}} คำ",
|
|
"dictionary.add": "เพิ่ม",
|
|
"dictionary.search": "ค้นหา...",
|
|
"dictionary.noResults": "ไม่พบผลลัพธ์",
|
|
"dictionary.noWords": "ไม่มีคำ — เพิ่มคำที่กำหนดเองเพื่อเพิ่มความแม่นยำของ STT",
|
|
"dictionary.used": "ใช้แล้ว {{count}} ครั้ง",
|
|
"dictionary.editTitle": "แก้ไขคำ",
|
|
"dictionary.addTitle": "เพิ่มคำ",
|
|
"dictionary.word": "คำ",
|
|
"dictionary.pronunciation": "การออกเสียง (ไม่บังคับ)",
|
|
"commands.title": "คำสั่ง LLM",
|
|
"commands.count": "{{count}} รายการ",
|
|
"commands.add": "เพิ่ม",
|
|
"commands.activeCommand": "คำสั่งที่ใช้งานอยู่",
|
|
"commands.none": "ไม่มี",
|
|
"commands.noCommands": "ไม่มีคำสั่ง — คลิกเพิ่มเพื่อสร้าง",
|
|
"commands.editTitle": "แก้ไขคำสั่ง",
|
|
"commands.addTitle": "เพิ่มคำสั่ง",
|
|
"commands.name": "ชื่อ",
|
|
"commands.description": "คำอธิบาย",
|
|
"commands.promptTemplate": "เทมเพลตพรอมต์",
|
|
"commands.promptHelp": "{{text}} จะถูกแทนที่ด้วยข้อความที่ถอดความ",
|
|
"commands.defaultPrompt": "กรุณาปรับปรุง {{text}}",
|
|
"settings.title": "การตั้งค่า",
|
|
"settings.tabs.general": "ทั่วไป",
|
|
"settings.tabs.audio": "เสียง",
|
|
"settings.tabs.stt": "STT",
|
|
"settings.tabs.llm": "LLM",
|
|
"settings.tabs.cloud": "คลาวด์",
|
|
"settings.tabs.about": "เกี่ยวกับ",
|
|
"settings.shortcuts": "ปุ่มลัด",
|
|
"settings.dictation": "การบอกเล่า",
|
|
"settings.dictation.desc": "กดค้างไว้แล้วพูด เมื่อปล่อยจะเริ่มถอดความ",
|
|
"settings.agent": "โหมด Agent",
|
|
"settings.agent.descWithKey": "กด {{key}} สองครั้งเพื่อเข้าสู่โหมด Agent",
|
|
"settings.agent.descNoKey": "กรุณาตั้งค่าปุ่มลัดการบอกเล่าก่อน",
|
|
"settings.oneTouch": "โหมดสัมผัสเดียว",
|
|
"settings.oneTouch.desc": "กดเพื่อเริ่ม กดอีกครั้งเพื่อหยุด ต้องใช้ปุ่มลัดแยกต่างหาก",
|
|
"settings.key": "ปุ่ม",
|
|
"settings.notSet": "ยังไม่ได้ตั้งค่า",
|
|
"settings.enabled": "เปิดใช้งาน",
|
|
"settings.disabled": "ปิดใช้งาน",
|
|
"settings.interface": "อินเทอร์เฟซ",
|
|
"settings.theme": "ธีม",
|
|
"settings.theme.system": "ระบบ",
|
|
"settings.theme.light": "สว่าง",
|
|
"settings.theme.dark": "มืด",
|
|
"settings.language": "ภาษา",
|
|
"settings.appBehavior": "พฤติกรรมแอป",
|
|
"settings.closeToTray": "ย่อลงถาดระบบ",
|
|
"settings.autoLaunch": "เปิดอัตโนมัติเมื่อเริ่มระบบ",
|
|
"settings.autoInsert": "แทรกข้อความอัตโนมัติหลังถอดความ",
|
|
"settings.soundEffects": "เอฟเฟกต์เสียง",
|
|
"settings.microphone": "ไมโครโฟน",
|
|
"settings.inputDevice": "อุปกรณ์อินพุต",
|
|
"settings.deviceDefault": "(ค่าเริ่มต้น)",
|
|
"settings.textInsert": "การแทรกข้อความ",
|
|
"settings.insertMethod": "วิธีการแทรก",
|
|
"settings.insertClipboard": "คลิปบอร์ด (Ctrl+V)",
|
|
"settings.insertKeyboard": "จำลองการพิมพ์",
|
|
"settings.whisperModel": "โมเดล Whisper",
|
|
"settings.model.tiny": "tiny (39 MB, เร็วที่สุด)",
|
|
"settings.model.base": "base (74 MB, สมดุล)",
|
|
"settings.model.small": "small (244 MB, ดี)",
|
|
"settings.model.medium": "medium (769 MB, ดีเยี่ยม)",
|
|
"settings.model.large": "large-v3 (1.5 GB, ดีที่สุด)",
|
|
"settings.model.largeTurbo": "large-v3-turbo (1.6 GB, เร็วและแม่นยำ)",
|
|
"settings.sttLanguage": "ภาษาที่รู้จัก",
|
|
"settings.sttLang.auto": "ตรวจจับอัตโนมัติ",
|
|
"settings.ollamaServer": "เซิร์ฟเวอร์ Ollama",
|
|
"settings.ollamaUrl": "URL เซิร์ฟเวอร์ Ollama",
|
|
"settings.ollamaHint": "หาก Ollama กำลังทำงาน จะเชื่อมต่ออัตโนมัติ ดาวน์โหลดโมเดลโดยตรงจาก Ollama (เช่น: ollama pull gemma4:e4b)",
|
|
"settings.postProcess": "การประมวลผลเสียงหลังการบันทึก",
|
|
"settings.defaultAction": "คำสั่งประมวลผลเริ่มต้น",
|
|
"settings.action.none": "ไม่มี (ข้อความต้นฉบับ)",
|
|
"settings.action.refine": "ปรับปรุง (ไวยากรณ์ + ความเป็นธรรมชาติ)",
|
|
"settings.action.translate": "แปล",
|
|
"settings.action.summarize": "สรุป",
|
|
"settings.action.grammar": "แก้ไขไวยากรณ์",
|
|
"settings.action.custom": "พรอมต์ที่กำหนดเอง",
|
|
"settings.actionHint": "การประมวลผล LLM ที่เลือกจะถูกนำไปใช้กับข้อความที่ถอดความหลังจากบันทึก ทำงานเฉพาะเมื่อเชื่อมต่อ Ollama",
|
|
"settings.about.version": "เวอร์ชัน",
|
|
"settings.about.techStack": "เทคโนโลยีที่ใช้",
|
|
"settings.about.techStackValue": "Electron + React 19 + MUI 7 + TypeScript",
|
|
"settings.about.voiceEngine": "เอนจิ้นเสียง",
|
|
"settings.about.voiceEngineValue": "STT: faster-whisper (ในเครื่อง) / LLM: Ollama (ในเครื่อง)",
|
|
"settings.about.description": "ผู้ช่วยเสียง AI ในเครื่องที่พัฒนาจากความรู้การวิศวกรรมย้อนกลับ Speakly ทำงานได้อย่างสมบูรณ์ในเครื่องโดยไม่พึ่งพาบริการคลาวด์",
|
|
"settings.about.restartOnboarding": "ดูคู่มือการตั้งค่าเริ่มต้นอีกครั้ง",
|
|
"status.nudge.title": "Ollama ยังไม่ได้ทำงาน",
|
|
"status.nudge.desc": "ต้องใช้ Ollama สำหรับการประมวลผล LLM (แปล สรุป ฯลฯ)",
|
|
"status.nudge.guide": "ดูคำแนะนำการติดตั้ง →",
|
|
"hotkey.title": "การตั้งค่าปุ่มลัด",
|
|
"hotkey.dictationTitle": "ตั้งค่าปุ่มลัดการบอกเล่า",
|
|
"hotkey.oneTouchTitle": "ตั้งค่าปุ่มลัดโหมดสัมผัสเดียว",
|
|
"hotkey.prompt": "กดปุ่มที่ต้องการ...",
|
|
"hotkey.ready": "✓ {{keys}} — กดบันทึก",
|
|
"hotkey.noKey": "กรุณากรอกปุ่ม",
|
|
"hotkey.reserved": "{{keys}} เป็นปุ่มลัดที่ระบบสงวนไว้",
|
|
"hotkey.current": "ปัจจุบัน: {{keys}}",
|
|
"hotkey.hint": "กรอกปุ่มลัด (เช่น: Ctrl+Shift+Q) หรือปุ่มเดี่ยว (เช่น: F5)",
|
|
"hotkey.reset": "กรอกใหม่",
|
|
"ollama.title": "OLLAMA SETUP GUIDE",
|
|
"ollama.step1.title": "ขั้นตอนที่ 1 — ติดตั้ง Ollama",
|
|
"ollama.step1.desc": "Ollama เป็นเครื่องมือฟรีสำหรับรัน LLM ในเครื่อง",
|
|
"ollama.step2.title": "ขั้นตอนที่ 2 — ดาวน์โหลดโมเดล",
|
|
"ollama.step2.desc": "ดาวน์โหลดโมเดลที่ต้องการผ่านเทอร์มินัล แนะนำ:",
|
|
"ollama.step2.alt": "หรือโมเดลที่ใหญ่กว่า: ollama pull gemma4:26b (แม่นยำกว่า ช้ากว่า)",
|
|
"ollama.step3.title": "ขั้นตอนที่ 3 — เชื่อมต่ออัตโนมัติ",
|
|
"ollama.step3.desc": "เมื่อ Ollama ทำงาน D3RO-VOICE จะตรวจพบโดยอัตโนมัติ เมื่อไฟ LED บนแถบสถานะเปลี่ยนจากสีแดงเป็นสีเขียว — พร้อมใช้งาน!",
|
|
"service.sttEngine": "STT ENGINE",
|
|
"service.ollamaLlm": "OLLAMA LLM",
|
|
"service.hotkeyHook": "HOTKEY HOOK",
|
|
"service.audioInput": "AUDIO INPUT",
|
|
"service.ready": "READY",
|
|
"service.connected": "CONNECTED",
|
|
"service.offline": "OFFLINE",
|
|
"service.active": "ACTIVE",
|
|
"service.standby": "STANDBY",
|
|
"service.premiumLlm": "PREMIUM LLM",
|
|
"service.notConfigured": "NOT SET",
|
|
"common.cancel": "ยกเลิก",
|
|
"common.save": "บันทึก",
|
|
"common.delete": "ลบ",
|
|
"common.close": "ปิด",
|
|
"common.confirm": "ยืนยัน",
|
|
"common.loading": "กำลังโหลด...",
|
|
"common.copy": "คัดลอก",
|
|
"common.test": "ทดสอบ",
|
|
"common.stop": "หยุด",
|
|
"date.today": "วันนี้",
|
|
"date.yesterday": "เมื่อวาน",
|
|
"settings.theme.nord": "Nord",
|
|
"settings.theme.solarized": "Solarized",
|
|
"settings.theme.catppuccin": "Catppuccin",
|
|
"settings.theme.dracula": "Dracula",
|
|
"settings.sttLang.ko": "เกาหลี",
|
|
"settings.sttLang.en": "อังกฤษ",
|
|
"settings.sttLang.ja": "ญี่ปุ่น",
|
|
"settings.sttLang.zh": "จีน",
|
|
"template.outputHelperText": "ใช้ {{ชื่อฟิลด์}} สำหรับตัวยึดตำแหน่ง",
|
|
"nav.meeting": "การประชุม",
|
|
"meeting.title": "โหมดการประชุม",
|
|
"meeting.newMeeting": "การประชุมใหม่",
|
|
"meeting.stopRecording": "หยุดบันทึก",
|
|
"meeting.recording": "กำลังบันทึก",
|
|
"meeting.processing": "กำลังสร้างรายงานการประชุม...",
|
|
"meeting.completed": "เสร็จสิ้น",
|
|
"meeting.error": "ข้อผิดพลาด",
|
|
"meeting.memoPlaceholder": "พิมพ์บันทึก (Enter เพื่อเพิ่ม)",
|
|
"meeting.noSessions": "ไม่มีการบันทึกการประชุม",
|
|
"meeting.noSessionsDesc": "กด «การประชุมใหม่» เพื่อเริ่มบันทึก",
|
|
"meeting.transcript": "ถอดความดิบ",
|
|
"meeting.memos": "บันทึก",
|
|
"meeting.sessions": "{{count}} เซสชัน",
|
|
"meeting.duration": "{{minutes}} นาที",
|
|
"meeting.editTitle": "แก้ไขชื่อ",
|
|
"meeting.untitled": "การประชุมที่ไม่มีชื่อ",
|
|
"meeting.processingStep.merging": "กำลังรวมการถอดความ...",
|
|
"meeting.processingStep.generating": "กำลังสร้างรายงานด้วย LLM...",
|
|
"meeting.processingStep.parsing": "กำลังวิเคราะห์รายงาน...",
|
|
"meeting.processingStep.saving": "กำลังบันทึก...",
|
|
"meeting.processingStep.notifying": "กำลังส่งการแจ้งเตือน...",
|
|
"meeting.transcriptTab": "การถอดความ",
|
|
"meeting.addDocument": "เพิ่มเอกสาร",
|
|
"meeting.selectTemplate": "เลือกแม่แบบ",
|
|
"meeting.generate": "สร้าง",
|
|
"meeting.generating": "กำลังสร้างเอกสาร...",
|
|
"meeting.editMode": "แก้ไข",
|
|
"meeting.previewMode": "ดูตัวอย่าง",
|
|
"meeting.modified": "แก้ไขแล้ว",
|
|
"meeting.originalText": "ต้นฉบับ",
|
|
"meeting.editedText": "แก้ไขแล้ว",
|
|
"meeting.exportDocx": "ส่งออก DOCX",
|
|
"meeting.exportTxt": "ส่งออก TXT",
|
|
"meeting.exportFormat": "ส่งออก",
|
|
"meeting.customPrompt": "พรอมต์กำหนดเอง",
|
|
"meeting.templateName": "ชื่อแม่แบบ",
|
|
"meeting.templatePrompt": "พรอมต์ AI",
|
|
"meeting.downloadTranscript": "ดาวน์โหลดการถอดความ",
|
|
"meeting.polish": "ปรับแต่งด้วย AI",
|
|
"meeting.polishing": "AI กำลังปรับแต่งการถอดความ...",
|
|
"meeting.chat": "แชท AI",
|
|
"meeting.chatPlaceholder": "ถามเกี่ยวกับการประชุม...",
|
|
"meeting.chatClear": "ล้างแชท",
|
|
"meeting.copyToClipboard": "คัดลอกไปยังคลิปบอร์ด",
|
|
"meeting.chatCollapse": "ยุบแชท",
|
|
"meeting.chatExpand": "ขยายแชท",
|
|
"meeting.chatReasoning": "กำลังคิด…",
|
|
"meeting.exportMd": "Markdown (.md)",
|
|
"meeting.exportPdfFmt": "PDF (.pdf)",
|
|
"meeting.polishFailed": "AI ปรับแต่งล้มเหลว",
|
|
"meeting.viewDetailError": "ไม่สามารถโหลดรายละเอียดการประชุมได้",
|
|
"meeting.startRecordingError": "ไม่สามารถเริ่มการบันทึกได้",
|
|
"meeting.diarize": "แยกผู้พูด",
|
|
"meeting.diarizing": "กำลังระบุผู้พูด...",
|
|
"settings.hfToken": "โทเค็น HuggingFace",
|
|
"settings.hfTokenHint": "ต้องใช้โทเค็น HuggingFace สำหรับการแยกผู้พูด",
|
|
"settings.diarization": "การแยกผู้พูด",
|
|
"settings.diarizationHint": "ระบุผู้พูดโดยอัตโนมัติหลังจากการบันทึกสิ้นสุด",
|
|
"theme.label": "ธีม",
|
|
"theme.dark": "มืด",
|
|
"theme.light": "สว่าง",
|
|
"theme.auto": "อัตโนมัติ (ระบบ)",
|
|
"theme.nord": "Nord",
|
|
"theme.solarized": "Solarized",
|
|
"theme.catppuccin": "Catppuccin",
|
|
"theme.dracula": "Dracula",
|
|
"license.signInRequired": "Sign in to manage your subscription",
|
|
"license.signInToUpgrade": "Sign in to upgrade",
|
|
"license.subscriptionManage": "Manage subscription",
|
|
"license.upgradeToProDesc": "Unlock Premium AI models, cloud sync, and more",
|
|
"license.currentPlanActive": "Your current plan",
|
|
"license.premiumQuota": "Premium Quota",
|
|
"license.modelHaiku": "Haiku",
|
|
"license.modelSonnet": "Sonnet",
|
|
"license.modelOpus": "Opus",
|
|
"license.quotaWeekly": "weekly",
|
|
"license.quotaDaily": "daily",
|
|
"mobile.works.title": "WORKS",
|
|
"mobile.works.count": "{{count}} ฟีเจอร์",
|
|
"mobile.works.searchPlaceholder": "ค้นหาฟีเจอร์",
|
|
"mobile.works.pinned": "ปักหมุดแล้ว",
|
|
"mobile.works.pin": "ปักหมุดไว้ด้านบน",
|
|
"mobile.works.unpin": "ยกเลิกปักหมุด",
|
|
"mobile.works.emptySearch": "ไม่พบฟีเจอร์ที่ตรงกัน",
|
|
"mobile.works.section.meetings": "งานประชุม",
|
|
"mobile.works.section.team": "ทีมและความรู้",
|
|
"mobile.works.section.data": "ข้อมูลและการแจ้งเตือน",
|
|
"mobile.works.historyDescription": "ค้นหาและจัดการบทถอดความจากการบันทึกเสียงและการนำเข้า",
|
|
"mobile.meetings.templateEmpty": "ไม่มีเทมเพลตเอกสารประชุมที่ใช้ได้ เริ่มประชุมโดยไม่ใช้เทมเพลตได้",
|
|
"mobile.meetings.templateNone": "เริ่มโดยไม่ใช้เทมเพลต",
|
|
"mobile.meetings.templateNoneDesc": "เลือกเทมเพลตภายหลังเมื่อสร้างเอกสาร",
|
|
"keybinding.mouse.left": "ปุ่มซ้ายของเมาส์",
|
|
"keybinding.mouse.right": "ปุ่มขวาของเมาส์",
|
|
"keybinding.mouse.middle": "ปุ่มกลางของเมาส์",
|
|
"keybinding.mouse.back": "ปุ่มย้อนกลับของเมาส์",
|
|
"keybinding.mouse.forward": "ปุ่มไปข้างหน้าของเมาส์",
|
|
"keybinding.group.mouse": "เมาส์",
|
|
"keybinding.group.modifier": "ปุ่มปรับแต่ง",
|
|
"keybinding.group.function": "ปุ่มฟังก์ชัน",
|
|
"keybinding.group.letter": "ตัวอักษร",
|
|
"keybinding.group.digit": "ตัวเลข",
|
|
"keybinding.group.numpad": "แป้นตัวเลข",
|
|
"keybinding.group.navigation": "การนำทาง",
|
|
"keybinding.group.editing": "การแก้ไข",
|
|
"keybinding.group.punctuation": "สัญลักษณ์",
|
|
"keybinding.group.system": "ระบบ",
|
|
"keybinding.action.dictation": "การบอกเล่า",
|
|
"keybinding.action.dictation.desc": "บันทึกเสียงขณะที่กดปุ่มค้างไว้",
|
|
"keybinding.action.handsFree": "โหมดสัมผัสเดียว",
|
|
"keybinding.action.handsFree.desc": "กดสองครั้งเพื่อเปิดหรือปิด",
|
|
"keybinding.action.command": "คำสั่งเสียง",
|
|
"keybinding.action.command.desc": "สั่งงานด้วยเสียง",
|
|
"keybinding.action.caption": "คำบรรยายสด",
|
|
"keybinding.action.caption.desc": "เปิดหรือปิดคำบรรยายสด",
|
|
"keybinding.action.historyPopup": "ป๊อปอัปประวัติ",
|
|
"keybinding.action.historyPopup.desc": "เปิดป๊อปอัปประวัติ",
|
|
"keybinding.action.commandPopup": "ป๊อปอัปคำสั่ง",
|
|
"keybinding.action.commandPopup.desc": "เปิดป๊อปอัปคำสั่ง",
|
|
"keybinding.reject.unknownKey": "ไม่รองรับปุ่มนี้",
|
|
"keybinding.reject.systemReserved": "เป็นปุ่มลัดที่ระบบสงวนไว้",
|
|
"keybinding.reject.modifierRequired": "ต้องใช้ร่วมกับปุ่มปรับแต่ง (Ctrl/Alt/Shift)",
|
|
"keybinding.disabled.mouseLeft": "คลิกซ้ายถูกใช้กับการควบคุมหน้าจอทั้งหมด จึงกำหนดเป็นปุ่มลัดไม่ได้",
|
|
"keybinding.warning.mousePassthrough": "ปุ่มเมาส์จะยังทำงานตามการทำงานเดิมไปพร้อมกันด้วย",
|
|
"keybinding.ui.add": "เพิ่ม",
|
|
"keybinding.ui.remove": "ลบ",
|
|
"keybinding.ui.reset": "คืนค่าเริ่มต้น",
|
|
"keybinding.ui.tabRecord": "กดปุ่มเอง",
|
|
"keybinding.ui.tabList": "เลือกจากรายการ",
|
|
"keybinding.ui.search": "ค้นหาปุ่ม",
|
|
"keybinding.ui.searchEmpty": "ไม่พบผลการค้นหา",
|
|
"keybinding.ui.pressKeys": "กดปุ่มหรือปุ่มเมาส์ที่ต้องการ",
|
|
"keybinding.ui.noBindings": "ยังไม่ได้ตั้งปุ่มลัด",
|
|
"keybinding.ui.conflictWith": "ซ้ำกับ {{action}}",
|
|
"keybinding.ui.modifiers": "ปุ่มปรับแต่ง",
|
|
"keybinding.ui.selectedKey": "ปุ่มที่เลือก",
|
|
"keybinding.ui.sectionVoice": "เสียง",
|
|
"keybinding.ui.sectionWindow": "หน้าต่าง / ป๊อปอัป",
|
|
"keybinding.ui.duplicate": "เพิ่มปุ่มลัดนี้ไว้แล้ว",
|
|
"keybinding.ui.holdMode": "กดค้าง",
|
|
"keybinding.ui.doublePress": "กดสองครั้ง",
|
|
"keybinding.ui.pickerTitle": "การตั้งค่าปุ่มลัด",
|
|
"keybinding.ui.pressToRecord": "กดเพื่อเริ่มบันทึก",
|
|
"keybinding.ui.recordHint": "กรอกปุ่มลัด (เช่น: Ctrl+Shift+Q) หรือปุ่มเดี่ยว (เช่น: F5)",
|
|
"keybinding.ui.recordAgain": "กรอกใหม่",
|
|
"keybinding.ui.saveFailed": "บันทึกปุ่มลัดไม่สำเร็จ",
|
|
"keybinding.ui.globalEnabled": "ใช้ปุ่มลัดส่วนกลาง"
|
|
}
|