{
  "meta": {
    "version": "4.7.0",
    "updated": "2026-07-07",
    "lang": "th"
  },
  "common": {
    "welcome": "ยินดีต้อนรับ",
    "hello": "สวัสดี",
    "goodbye": "ลาก่อน",
    "yes": "ใช่",
    "no": "เลขที่",
    "save": "บันทึก",
    "cancel": "ยกเลิก",
    "delete": "ลบ",
    "edit": "แก้ไข",
    "loading": "กำลังโหลด...",
    "offlineTitle": "คุณออฟไลน์อยู่",
    "offlineMessage": "โปรดตรวจสอบการเชื่อมต่ออินเทอร์เน็ตของคุณ",
    "tryReconnect": "ลองเชื่อมต่อใหม่",
    "logout": "ออกจากระบบ",
    "login": "เข้าสู่ระบบ",
    "amount": "จำนวน",
    "success": "ความสำเร็จ",
    "error": "ข้อผิดพลาด",
    "warning": "คำเตือน",
    "info": "ข้อมูล:",
    "debug": "ดีบัก",
    "progress": "ความคืบหน้า:",
    "remaining": "ที่เหลืออยู่:",
    "total": "ทั้งหมด:",
    "completed": "7. สำเร็จลุล่วงไปด้วยดี!",
    "missing": "หายไป",
    "partial": "บางส่วน",
    "sameAsSource": "เช่นเดียวกับแหล่งที่มา:",
    "formatMismatch": "รูปแบบไม่ตรงกัน:",
    "typeMismatch": "ประเภทไม่ตรงกัน:",
    "structureMismatch": "โครงสร้างไม่ตรงกัน:",
    "invalidOption": "ตัวเลือกไม่ถูกต้อง",
    "separator": "==================================================",
    "initializationFailed": "❌ การเริ่มต้นล้มเหลว: {error}",
    "stackTrace": "การติดตามสแต็ก: {stack}",
    "pressEnterToContinue": "กด Enter เพื่อดำเนินการต่อ...",
    "pressEnterToReturn": "กด Enter เพื่อกลับสู่เมนูหลัก...",
    "stepCompleted": "ขั้นตอน'{stepName}' สมบูรณ์.",
    "stepFailed": "ขั้นตอน'{stepName}' ล้มเหลว.",
    "runningStep": "ขั้นตอนการวิ่ง: {stepName}",
    "command": "สั่งการ: {command}",
    "startingWorkflow": "กำลังเริ่มเวิร์กโฟลว์...",
    "workflowCompleted": "ขั้นตอนการทำงานเสร็จสมบูรณ์",
    "checkReports": "ตรวจสอบรายงานเพื่อดูรายละเอียด",
    "errorExecutingCommand": "เกิดข้อผิดพลาดในการดำเนินการคำสั่ง: {error}",
    "genericError": "❌ ข้อผิดพลาด: {error}",
    "errors": {
      "errors": "ข้อผิดพลาด:",
      "genericError": "❌ ข้อผิดพลาด: {error}",
      "initializationFailed": "❌ การเริ่มต้นล้มเหลว: {error}",
      "initializationCancelled": "❌ การเริ่มต้นถูกยกเลิกโดยผู้ใช้",
      "translationKeyNotFound": "ไม่พบคีย์การแปล: {key}",
      "sourceDirectoryNotFound": "ไม่พบไดเรกทอรีต้นทาง: {directory}",
      "configLoadingFailed": "การโหลดการกำหนดค่าล้มเหลว",
      "invalidSourceDirectory": "ไดเรกทอรีต้นทางไม่ถูกต้อง: {directory}",
      "securityViolation": "ตรวจพบการละเมิดความปลอดภัย",
      "authenticationFailed": "การตรวจสอบสิทธิ์ล้มเหลว",
      "sourceEqualsI18nWarn": "⚠️ sourceDir เท่ากับ i18nDir ({sourceDir}). ถอยกลับไป. {fallback} สำหรับการสแกนแหล่งที่มา"
    },
    "errorGeneratingStatusSummary": "เกิดข้อผิดพลาดในการสร้างสรุปสถานะ: {error}",
    "errorRunningDebugTool": "เกิดข้อผิดพลาดในการเรียกใช้เครื่องมือแก้ไขข้อบกพร่อง '{displayName}': {error}",
    "errorReadingDebugLogs": "เกิดข้อผิดพลาดในการอ่านบันทึกการแก้ไขข้อบกพร่อง: {error}",
    "errorAnalyzingLogFile": "เกิดข้อผิดพลาดในการวิเคราะห์ไฟล์บันทึก: {error}",
    "errorAnalyzingTranslationKeys": "เกิดข้อผิดพลาดในการวิเคราะห์คีย์การแปล: {error}",
    "errorAnalyzingTranslationCompleteness": "เกิดข้อผิดพลาดในการวิเคราะห์ความสมบูรณ์ของการแปล: {error}",
    "analyzingTranslationCompleteness": "กำลังวิเคราะห์ความสมบูรณ์ของการแปลในทุกภาษา...",
    "i18nDirectoryNotFound": "⚠️ ไม่พบไดเรกทอรี i18n: {i18nDir}",
    "translationCompletenessAnalysisFailed": "⚠️ การวิเคราะห์ความสมบูรณ์ของการแปลล้มเหลว: {error}",
    "failedToAnalyzeLanguage": "❌วิเคราะห์ภาษาไม่สำเร็จ {language}: {error}",
    "errorReadingI18nDirectory": "❌ เกิดข้อผิดพลาดในการอ่านไดเรกทอรี i18n:",
    "languageCompletenessTitle": "📈 ความสมบูรณ์ในการแปลตามภาษา",
    "errorAnalyzingTranslationFormat": "เกิดข้อผิดพลาดในการวิเคราะห์รูปแบบการแปล: {error}",
    "errorAnalyzingTranslationType": "เกิดข้อผิดพลาดในการวิเคราะห์ประเภทการแปล: {error}",
    "errorAnalyzingTranslationStructure": "เกิดข้อผิดพลาดในการวิเคราะห์โครงสร้างการแปล: {error}",
    "errorAnalyzingTranslationFormatMismatch": "เกิดข้อผิดพลาดในการวิเคราะห์รูปแบบการแปลที่ไม่ตรงกัน: {error}",
    "errorAnalyzingTranslationTypeMismatch": "เกิดข้อผิดพลาดในการวิเคราะห์ประเภทการแปลที่ไม่ตรงกัน: {error}",
    "errorAnalyzingTranslationStructureMismatch": "เกิดข้อผิดพลาดในการวิเคราะห์โครงสร้างการแปลที่ไม่ตรงกัน: {error}",
    "errorAnalyzingTranslationSameAsSource": "เกิดข้อผิดพลาดในการวิเคราะห์คำแปลเหมือนกับแหล่งที่มา: {error}",
    "title": "สถานะ",
    "nextStep1": "1. ตรวจสอบการวิเคราะห์การใช้งาน:",
    "nextStep2": "2. ตรวจสอบการแปล:",
    "nextStep3": "3. วิเคราะห์ความสมบูรณ์:",
    "nextStep4": "4. แปลคำแปลที่ขาดหายไปให้สมบูรณ์:",
    "nextStep5": "5. สร้างรายงานสรุป:",
    "nextStep6": "6. ตรวจสอบและสรุปการแปล:",
    "generating": "กำลังสร้างรายงานสรุป...",
    "review": "กำลังตรวจสอบคำแปล...",
    "finalizing": "กำลังแปลตอนจบ...",
    "finalized": "สำเร็จแล้ว!",
    "warnings": "คำเตือน:",
    "completedKeys": "กุญแจที่เสร็จสมบูรณ์:",
    "missingKeys": "คีย์ที่หายไป:",
    "partialKeys": "คีย์บางส่วน:",
    "home": "บ้าน",
    "settings": "การตั้งค่า",
    "startingSettings": "🎛️ กำลังเริ่มการตั้งค่า CLI...",
    "confirm": "ยืนยัน",
    "errorExiting": "เกิดข้อผิดพลาดขณะออก"
  },
  "errors": {
    "invalidOption": "❌ ตัวเลือกไม่ถูกต้อง: {option}. โปรดลองอีกครั้ง",
    "readlineClosed": "สตรีมอินพุตปิดอยู่ ทำงานในโหมดไม่โต้ตอบ",
    "noPackageJson": "ไม่พบ package.json ไม่สามารถตรวจจับเฟรมเวิร์ก i18n อัตโนมัติได้",
    "noI18nDir": "ไม่พบไดเร็กทอรี i18n ในรูทโปรเจ็กต์",
    "noI18nConfig": "ไม่พบไฟล์การกำหนดค่า i18n ในรูทโปรเจ็กต์",
    "errorReadingDebugLogs": "เกิดข้อผิดพลาดในการอ่านบันทึกการแก้ไขข้อบกพร่อง: {error}"
  },
  "scanner": {
    "help_message": "การใช้งานเครื่องสแกนข้อความ I18n: โหนด i18ntk-scanner.js [ตัวเลือก] ตัวเลือก: --source-dir <dir>     ไดเร็กทอรีต้นทางที่จะสแกน (ค่าเริ่มต้น: ./src) --output <file>        ไฟล์เอาต์พุตสำหรับผลการสแกน (ค่าเริ่มต้น: ./i18ntk-scanner-report.json) --framework <name>     กรอบการทำงานเพื่อกำหนดเป้าหมาย (react, vue, เชิงมุม, วานิลลา) --patterns <patterns>  รูปแบบ regex ที่กำหนดเอง (คั่นด้วยเครื่องหมายจุลภาค) --include-tests รวมไฟล์ทดสอบในการสแกน --exclude-dirs <dirs>  ไดเร็กทอรีที่จะยกเว้น (คั่นด้วยเครื่องหมายจุลภาค) --help แสดงความช่วยเหลือนี้ ตัวอย่าง: node i18ntk-scanner.js --source-dir=./src --framework=react node i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests node i18ntk-scanner.js --output=./scan-results.json",
    "help_options": {
      "source_dir": "ไดเรกทอรีต้นทางที่จะสแกนหาปัญหา i18n",
      "output_dir": "ไดเร็กทอรีสำหรับรายงานการสแกนและผลลัพธ์",
      "framework": "กรอบงานเป้าหมาย (react, vue, เชิงมุม, วานิลลา)",
      "patterns": "รูปแบบ regex ที่กำหนดเองสำหรับการตรวจจับข้อความ",
      "exclude": "รูปแบบไฟล์ที่จะแยกออกจากการสแกน",
      "output_report": "สร้างรายงานการสแกนโดยละเอียด",
      "min_length": "ความยาวข้อความขั้นต่ำที่ต้องพิจารณาในการแปล",
      "max_length": "ความยาวข้อความสูงสุดที่ต้องพิจารณาในการแปล",
      "include_tests": "รวมไฟล์ทดสอบในกระบวนการสแกน"
    },
    "starting": "🔍 การเริ่มเครื่องสแกนข้อความสำหรับเฟรมเวิร์ก: {framework}",
    "sourceDirectory": "📁 กำลังสแกนไดเรกทอรี: {sourceDir}",
    "frameworkDetected": "🎯 กรอบงานที่ตรวจพบ: {framework}",
    "scanningFiles": "📊 การสแกน {fileCount} ไฟล์...",
    "foundTexts": "⏩ พบแล้ว {textCount} ข้อความที่ต้องการการแปล",
    "generatingReport": "📊 กำลังสร้างรายงานโดยละเอียด...",
    "reportSaved": "💾 บันทึกรายงานการสแกนไปที่: {reportPath}",
    "noTextsFound": "✅ ไม่พบข้อความภาษาอังกฤษแบบฮาร์ดโค้ด",
    "scanComplete": "🎉 สแกนสำเร็จแล้ว!",
    "analysisTitle": "🔍 การวิเคราะห์การสแกนการแปล",
    "fileSummary": "📄 {file}: {count} พบข้อความ",
    "textLocation": "📍 ไลน์ {line}: {text}",
    "foundText": "พบ {count} อินสแตนซ์ข้อความฮาร์ดโค้ดที่เป็นไปได้",
    "context": "⏩ บริบท: {context}",
    "severity": "⚠️ความรุนแรง: {severity}",
    "recommendation": "💡 คำแนะนำ: {recommendation}",
    "welcome": {
      "title": "🎯 ยินดีต้อนรับสู่เครื่องสแกนข้อความ!",
      "description": "เครื่องมือนี้จะสแกนซอร์สโค้ดของคุณเพื่อหาข้อความภาษาอังกฤษแบบฮาร์ดโค้ดที่อาจต้องมีการแปล"
    },
    "frameworkPrompt": {
      "title": "🎯 เลือกกรอบงาน",
      "available": "เฟรมเวิร์กที่ใช้ได้: react, vue, เชิงมุม, vanilla",
      "description": "ป้อนประเภทเฟรมเวิร์ก (หรือกด Enter เพื่อการตรวจจับอัตโนมัติ):",
      "input": "กรอบ:"
    },
    "directoryPrompt": {
      "title": "📁 เลือกไดเรกทอรีต้นทาง",
      "current": "ไดเรกทอรีปัจจุบัน: {dir}",
      "description": "ป้อนไดเร็กทอรีที่จะสแกน (หรือกด Enter เพื่อดูรายการปัจจุบัน):",
      "input": "ไดเรกทอรี:"
    },
    "options": {
      "includeTests": "รวมไฟล์ทดสอบ?",
      "excludeDirs": "ไดเรกทอรีที่จะยกเว้น (คั่นด้วยเครื่องหมายจุลภาค):",
      "customPatterns": "รูปแบบที่กำหนดเองที่จะสแกนหา (regex):"
    },
    "reportGenerated": "รายงานการสแกนที่สร้างขึ้น: {path}"
  },
  "fixer": {
    "help_message": "การใช้งานผู้ให้บริการการแปล I18n: โหนด i18ntk-fixer.js [ตัวเลือก] ตัวเลือก: --source-dir <dir>     ไดเรกทอรีต้นทางที่จะสแกน (ค่าเริ่มต้น: ./locales) --ภาษา <langs>    รายการภาษาที่คั่นด้วยเครื่องหมายจุลภาคเพื่อแก้ไข --markers <markers>    เครื่องหมายคั่นด้วยเครื่องหมายจุลภาคเพื่อถือเป็นข้อมูลที่ไม่ได้แปล --no-backup ข้ามการสร้างการสำรองข้อมูลอัตโนมัติ --help แสดงความช่วยเหลือนี้ ตัวอย่าง: โหนด i18ntk-fixer.js --ภาษา de,fr โหนด i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED โหนด i18ntk-fixer.js --no-backup",
    "starting": "🚀 เริ่มการแก้ไขการแปลสำหรับภาษาต่างๆ: {languages}",
    "sourceDirectory": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
    "sourceLanguage": "🔤 ภาษาต้นฉบับ: {sourceLanguage}",
    "markers": "🏷️ เครื่องหมายที่ต้องแก้ไข: {markers}",
    "scanningLanguage": "📊 การสแกน {language}...",
    "noLanguages": "❌ไม่มีการระบุภาษาในการซ่อม",
    "allComplete": "🎉 แปลทั้งหมดเรียบร้อยแล้ว!",
    "fullReportSaved": "📊 รายงานฉบับเต็มบันทึกไว้ที่: {reportPath}",
    "reviewReport": "โปรดตรวจสอบรายงานก่อนดำเนินการต่อ",
    "backupCreated": "💾 สร้างการสำรองข้อมูลเรียบร้อยแล้ว",
    "applyingFixes": "🔄 กำลังใช้การแก้ไข...",
    "fixingComplete": "✅ แก้คำแปลเสร็จ!",
    "operationCancelled": "❌ การดำเนินการถูกยกเลิกโดยผู้ใช้",
    "analysisTitle": "🔍 การวิเคราะห์การแก้ไขการแปล",
    "analysisSeparator": "==================================================",
    "totalIssues": "ปัญหาทั้งหมดที่พบ: {totalIssues}",
    "missingTranslations": "คำแปลที่ขาดหายไป: {missing}",
    "placeholderTranslations": "การแปลตัวยึดตำแหน่ง: {placeholder}",
    "noIssues": "✅ไม่พบปัญหาใดๆ การแปลทั้งหมดเสร็จสมบูรณ์แล้ว",
    "detailedIssues": "📋 DETAILED ISSUES:",
    "detailedSeparator": "--------------------------------------------------",
    "filePath": "📄 {file} → {path}",
    "missingKey": "❌ ขาดหายไป: {source} → {new}",
    "placeholderKey": "⚠️ ตัวยึดตำแหน่ง: \"{target}\" → \"{new}\"",
    "moreIssues": "... และ {count} ปัญหาเพิ่มเติม ตรวจสอบไฟล์รายงานเพื่อดูรายละเอียดทั้งหมด",
    "confirmationTitle": "🤔 คุณต้องการดำเนินการแก้ไขเหล่านี้ต่อหรือไม่?",
    "confirmationOptions": "ตัวเลือก:",
    "optionYes": "y - ใช่ ใช้การแก้ไขทั้งหมด",
    "optionNo": "n - ไม่ ยกเลิกการดำเนินการ",
    "optionShow": "s - แสดงปัญหาโดยละเอียด",
    "choicePrompt": "ทางเลือกของคุณ (มี/ไม่มี/วินาที):",
    "nonInteractiveMode": "⚡ ตรวจพบโหมดที่ไม่โต้ตอบ - ใช้การแก้ไขโดยอัตโนมัติ...",
    "reportGenerated": "📊 สร้างรายงานผู้ให้บริการแล้ว: {path}",
    "summary": "สรุปผู้ให้บริการ:",
    "welcome": {
      "title": "🎯 ยินดีต้อนรับสู่ผู้ให้บริการแปล!",
      "description": "เครื่องมือนี้จะช่วยคุณแก้ไขคำแปลและตัวยึดตำแหน่งที่เสียหายในไฟล์สถานที่ของคุณ"
    },
    "markerPrompt": {
      "title": "🏷️ กำหนดค่าเครื่องหมายตัวยึดตำแหน่ง",
      "description": "ป้อนเครื่องหมายที่ระบุข้อความที่ไม่ได้แปล (คั่นด้วยเครื่องหมายจุลภาค):",
      "currentDefaults": "เครื่องหมายเริ่มต้น: {markers}",
      "input": "เครื่องหมาย (หรือกด Enter เพื่อดูค่าเริ่มต้น):"
    },
    "languagePrompt": {
      "title": "🌍 เลือกภาษาที่จะแก้ไข",
      "available": "ภาษาที่ใช้ได้: {languages}",
      "description": "ป้อนภาษาที่จะแก้ไข (คั่นด้วยเครื่องหมายจุลภาค) หรือกด Enter สำหรับทุกคน:",
      "input": "ภาษา:",
      "noLanguages": "ไม่พบภาษาที่จะแก้ไข"
    },
    "directoryPrompt": {
      "title": "📁 เลือกไดเรกทอรี",
      "current": "ไดเรกทอรีปัจจุบัน: {dir}",
      "description": "ป้อนไดเร็กทอรีที่มีไฟล์โลแคลของคุณ (หรือกด Enter เพื่อดูไฟล์ปัจจุบัน):",
      "input": "ไดเรกทอรี:"
    },
    "backupLocation": "ตำแหน่งสำรอง: {dir}",
    "completed": "การแก้ไขเสร็จสมบูรณ์",
    "creatingBackup": "กำลังสร้างข้อมูลสำรองใน {dir}...",
    "dryRunMode": "โหมดดรายรัน: {mode}",
    "error": "ตัวแก้ไขล้มเหลว: {error}",
    "fixing": "การแก้ไข {language}...",
    "foundLanguages": "พบ {count} ภาษา: {languages}",
    "languageFixed": "{language}: ที่ตายตัว {fixed} คีย์ถูกข้ามไป {skipped}.",
    "running": "กำลังเรียกใช้โปรแกรมแก้ไขการแปล...",
    "totalFixed": "คงที่ทั้งหมด: {count}"
  },
  "autorun": {
    "stepAnalyzeTranslations": "วิเคราะห์คำแปล",
    "stepCompletedWithIcon": "✅ เสร็จสิ้น: {stepName}",
    "stepValidateTranslations": "ตรวจสอบการแปล",
    "stepRunning": "▶️สเต็ป {stepNumber}/{totalSteps}: {stepName}",
    "separator": "==================================================",
    "stepFailed": "❌ ล้มเหลว: {stepName}",
    "errorLabel": "ข้อผิดพลาด",
    "autoRunScriptTitle": "🧪 เวิร์กโฟลว์การทำงานอัตโนมัติ",
    "usageTitle": "การใช้งาน",
    "runAllSteps": "รัน: โหนด i18ntk-autorun.js",
    "configureSettingsFirst": "กำหนดค่า: แฟล็ก i18ntk-config.json หรือ CLI",
    "runSpecificSteps": "ใช้ --steps=1,3 หรือ --list เพื่อแสดงขั้นตอน",
    "showHelp": "--help สำหรับข้อมูลเพิ่มเติม",
    "examplesTitle": "ตัวอย่าง",
    "configExample": "โหนด i18ntk-autorun.js --ui-ภาษา=zh",
    "stepsExample1": "โหนด i18ntk-autorun.js --steps=analyze,validate",
    "stepsExample2": "โหนด i18ntk-autorun.js --list",
    "customSettingsConfiguration": "การตั้งค่าการทำงานอัตโนมัติแบบกำหนดเอง",
    "availableSteps": "ขั้นตอนที่ใช้ได้",
    "startingAutoRunWorkflow": "🚀 กำลังเริ่มเวิร์กโฟลว์การทำงานอัตโนมัติ...",
    "workflowIncludesSteps": "ขั้นตอนการทำงานประกอบด้วย {count} ขั้นตอน:",
    "missingRequiredFile": "ไฟล์ที่ต้องการหายไป: {file}",
    "workflowStopped": "เวิร์กโฟลว์หยุดลงเนื่องจากความล้มเหลว",
    "workflowCompleted": "🎉 ขั้นตอนการทำงานเสร็จสมบูรณ์!",
    "successfulSteps": "ขั้นตอนที่สำเร็จ: {count}",
    "failedSteps": "ขั้นตอนที่ล้มเหลว: {count}",
    "stepInitializeProject": "เริ่มต้นโครงการ",
    "stepCheckUsage": "ตรวจสอบการใช้งานคีย์",
    "stepGenerateSummary": "สร้างรายงานสรุป",
    "runInitializationFirst": "กรุณาเรียกใช้การเริ่มต้นก่อน",
    "initializationCheckPassed": "ผ่านการตรวจสอบการเริ่มต้นแล้ว",
    "runningStep": "ขั้นตอนการวิ่ง: {stepName}",
    "commandLabel": "สั่งการ: {command}",
    "stepCompletedWithTime": "ขั้นตอน'{stepName}' เสร็จสิ้นใน {duration}นางสาว",
    "stepCompleted": "ขั้นตอน'{stepName}' สมบูรณ์.",
    "stepFailedWithError": "ขั้นตอน'{stepName}' ล้มเหลวโดยมีข้อผิดพลาด: {error}",
    "requiredStepFailed": "ขั้นตอนที่จำเป็นล้มเหลว กำลังหยุดเวิร์กโฟลว์",
    "optionalStepFailed": "ขั้นตอนที่ไม่บังคับล้มเหลว กระบวนการทำงานอย่างต่อเนื่อง",
    "stepRequired": "(ที่จำเป็น)",
    "stepOptional": "(ไม่จำเป็น)",
    "startingExecution": "กำลังเริ่มดำเนินการ...",
    "pressEnterToContinue": "กด Enter เพื่อดำเนินการต่อ...",
    "runningSelectedSteps": "กำลังดำเนินการขั้นตอนที่เลือก...",
    "invalidStepNumber": "หมายเลขขั้นตอนไม่ถูกต้อง: {stepNum}",
    "executionReport": "รายงานการดำเนินการ:",
    "requiredFailedSteps": "ขั้นตอนที่จำเป็นล้มเหลว: {count}",
    "stepDetails": "รายละเอียดขั้นตอน:",
    "reportSavedTo": "บันทึกรายงานไปที่: {path}",
    "overallStatusSuccess": "SUCCESS",
    "overallStatusFailed": "FAILED",
    "overallStatus": "สถานะโดยรวม: {status}",
    "pressEnterForDefaults": "กด Enter เพื่อใช้การตั้งค่าเริ่มต้นสำหรับข้อความแจ้งใดๆ",
    "sourceDirPrompt": "ป้อนไดเร็กทอรีต้นทาง (ค่าเริ่มต้น: {default}):",
    "sourceLangPrompt": "ป้อนภาษาต้นฉบับ (ค่าเริ่มต้น: {default}):",
    "targetLangsPrompt": "ป้อนภาษาเป้าหมาย (คั่นด้วยเครื่องหมายจุลภาค ค่าเริ่มต้น: {default}):",
    "translationMarkerPrompt": "ป้อนเครื่องหมายการแปล (ค่าเริ่มต้น: {default}):",
    "outputDirPrompt": "ป้อนไดเรกทอรีผลลัพธ์สำหรับรายงาน (ค่าเริ่มต้น: {default}):",
    "settingsUpdatedSuccessfully": "อัปเดตการตั้งค่าสำเร็จแล้ว!",
    "errorConfiguringSettings": "เกิดข้อผิดพลาดในการกำหนดการตั้งค่า: {error}",
    "configurationComplete": "การกำหนดค่าเสร็จสมบูรณ์",
    "runAutoRunCommand": "ตอนนี้คุณสามารถรันคำสั่งทำงานอัตโนมัติได้แล้ว",
    "configurationFailed": "การกำหนดค่าล้มเหลว: {error}",
    "noValidStepNumbers": "ไม่ได้ระบุหมายเลขขั้นตอนที่ถูกต้อง",
    "autoRunFailed": "การทำงานอัตโนมัติล้มเหลว: {error}",
    "stepCompleteTranslations": "การแปลที่สมบูรณ์",
    "stepAnalyzeSizing": "วิเคราะห์ขนาด",
    "stepCompletedIcon": "✅",
    "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] ขั้นตอน '{stepName}' วิ่ง...",
    "stepFailedIcon": "❌",
    "translationLoadWarning": "คำเตือน: ไม่สามารถโหลดได้ {lang} การแปล",
    "configReadError": "เกิดข้อผิดพลาดในการอ่าน {file}"
  },
  "analyze": {
    "help_message": "การใช้งานตัววิเคราะห์การแปล I18n: โหนด i18ntk-analyze.js [ตัวเลือก] ตัวเลือก: --source-dir <dir>     ไดเร็กทอรีต้นทางที่จะสแกน (ค่าเริ่มต้น: ./src) --i18n-dir <dir>       ไดเรกทอรี I18n (ค่าเริ่มต้น: ./src/locales) --output-report สร้างรายงานโดยละเอียด --output-dir <dir>     ไดเร็กทอรีเอาต์พุตสำหรับรายงาน (ค่าเริ่มต้น: ./reports) --help แสดงวิธีใช้นี้ ตัวอย่าง: โหนด i18ntk-analyze.js --output-report node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales node i18ntk-analyze.js --output-dir=./analysis --output-report",
    "source_directory": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
    "i18n_directory": "🌐 ไดเรกทอรี I18n: {i18nDir}",
    "loading_translation_files": "📋 กำลังโหลดไฟล์แปล...",
    "sourceDirectoryLabel": "📁 ไดเรกทอรีที่มา: {sourceDir}",
    "sourceLanguageLabel": "🌍 ภาษาต้นฉบับ: {sourceLanguage}",
    "strictModeLabel": "⚙️ โหมดเข้มงวด: {mode}",
    "found_translation_files_count": "✅พบ {count} ไฟล์แปล",
    "analyzing_translations": "🔍 กำลังวิเคราะห์คำแปล...",
    "analysis_completed_successfully": "🎉 วิเคราะห์สำเร็จแล้ว!",
    "analysis_results": "📊 ANALYSIS RESULTS",
    "language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% ที่แปลแล้ว)",
    "sample_missing_keys": "ตัวอย่างคีย์ที่หายไป:",
    "missing_key": "- {key}",
    "and_more_missing": "...และ {count} มากกว่า.",
    "sample_unused_keys": "ตัวอย่างคีย์ที่ไม่ได้ใช้:",
    "unused_key": "- {key}",
    "and_more_unused": "...และ {count} มากกว่า.",
    "recommendations": "📋 คำแนะนำ",
    "add_missing_translations": "💡 เพิ่มคำแปลที่ขาดหายไปเพื่อปรับปรุงความครอบคลุม",
    "remove_unused_translations": "💡 ลบคำแปลที่ไม่ได้ใช้ออกเพื่อให้โปรเจ็กต์ของคุณสะอาด",
    "next_steps": "📋 NEXT STEPS",
    "review_analysis_results": "1. ตรวจสอบผลการวิเคราะห์ในคอนโซลหรือรายงานที่สร้างขึ้น",
    "run_with_output_report": "2. รันด้วย --output-report สำหรับรายงานโดยละเอียด",
    "add_or_remove_translations": "3. เพิ่มคำแปลที่ขาดหายไปหรือลบคำแปลที่ไม่ได้ใช้",
    "rerun_analysis": "4. ดำเนินการวิเคราะห์ซ้ำเพื่อตรวจสอบการปรับปรุง",
    "analysis_summary": "📊 ANALYSIS SUMMARY",
    "source_files_scanned": "ไฟล์ต้นฉบับที่สแกน: {fileCount}",
    "translation_files_checked": "ตรวจสอบไฟล์การแปลแล้ว: {translationFileCount}",
    "total_keys": "คีย์ทั้งหมด: {totalKeys}",
    "translated_keys": "คีย์ที่แปลแล้ว: {translatedKeys}",
    "missing_keys": "คีย์ที่หายไป: {missingKeys}",
    "unused_keys": "คีย์ที่ไม่ได้ใช้: {unusedKeys}",
    "translation_coverage": "ความครอบคลุมการแปล: {coverage}%",
    "analysis_passed_for_language": "✅ผ่านการวิเคราะห์ {language}",
    "analysis_failed_for_language": "❌การวิเคราะห์ล้มเหลวสำหรับ {language} ({missingKeys} หายไป, {unusedKeys} ไม่ได้ใช้)",
    "starting": "🔍 กำลังเริ่มวิเคราะห์การแปล...",
    "foundLanguages": "📋 พบแล้ว {count} ภาษาที่จะวิเคราะห์: {languages}",
    "analyzing": "🔄 กำลังวิเคราะห์ {language}...",
    "reportTitle": "📊 รายงานการวิเคราะห์การแปล",
    "generated": "สร้าง: {timestamp}",
    "status": "สถานะ: {translated}/{total} กุญแจ ({percentage}% ที่แปลแล้ว)",
    "filesAnalyzed": "ไฟล์ที่วิเคราะห์: {analyzed}/{total}",
    "keysNeedingTranslation": "คีย์ที่ต้องแปล: {count}",
    "fileBreakdown": "📋 รายละเอียดไฟล์",
    "error": "ข้อผิดพลาด",
    "completed": "✅วิเคราะห์เสร็จแล้วสำหรับ {language}",
    "progress": "📊 ความคืบหน้าโดยรวม: {translated}/{total} ภาษาที่ประมวลผล",
    "reportSaved": "บันทึกรายงานแล้ว: {reportPath}",
    "summary": "📊 ANALYSIS SUMMARY",
    "finished": "✅ วิเคราะห์สำเร็จ!",
    "statusFileMissing": "❌ไฟล์แปลหาย",
    "sourceKeys": "📊 คีย์แหล่งที่มา: {count}",
    "translation": "📊 การแปล: {translated}/{total} ({percentage}%)",
    "structure": "🗂️ โครงสร้าง: {status}",
    "consistent": "สม่ำเสมอ",
    "inconsistent": "ไม่สอดคล้องกัน",
    "missingKeys": "คีย์ที่หายไป: {count}",
    "extraKeys": "กุญแจเสริม: {count}",
    "issues": "⚠️ ปัญหาที่พบ: {count}",
    "issueType": {
      "not_translated": "ไม่ได้แปล: {count}",
      "empty_value": "ค่าว่าง: {count}",
      "partial_translation": "การแปลบางส่วน: {count}",
      "format_mismatch": "รูปแบบไม่ตรงกัน: {count}",
      "type_mismatch": "ประเภทไม่ตรงกัน: {count}",
      "structure_mismatch": "โครงสร้างไม่ตรงกัน: {count}",
      "same_as_source": "เช่นเดียวกับแหล่งที่มา: {count}"
    },
    "keysToTranslate": "📋 กุญแจในการแปล",
    "key": "สำคัญ",
    "english": "ภาษาอังกฤษ",
    "needsTranslation": "ต้องการการแปล",
    "andMoreKeys": "...และ {count} กุญแจเพิ่มเติม",
    "noLanguages": "⚠️ ไม่พบภาษาเป้าหมาย",
    "languageStats": "{language}: {percentage}% สมบูรณ์ ({translated}/{total} กุญแจ)",
    "invalidReportFilePath": "เส้นทางไฟล์รายงานไม่ถูกต้อง",
    "failedToWriteReportFile": "ไม่สามารถเขียนไฟล์รายงานอย่างปลอดภัย"
  },
  "complete": {
    "configLoadedSuccessfully": "โหลดการกำหนดค่าเรียบร้อยแล้ว",
    "configLoadingFailed": "การโหลดการกำหนดค่าล้มเหลว",
    "sourceLanguageNotFound": "ไม่พบไดเร็กทอรีภาษาต้นฉบับ: {sourceLanguage}",
    "couldNotParseTarget": "ไม่สามารถแยกวิเคราะห์ไฟล์เป้าหมาย: {file}",
    "couldNotParseSource": "ไม่สามารถแยกวิเคราะห์ไฟล์ต้นฉบับ: {file}",
    "reportGenerated": "สร้างรายงานแล้ว: {path}",
    "generateReportPrompt": "คุณต้องการสร้างรายงานหรือไม่?",
    "title": "🌍 การแปล I18NTK เสร็จสมบูรณ์",
    "separator": "============================================================",
    "sourceDir": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
    "sourceLanguage": "🌐 ภาษาต้นฉบับ: {sourceLanguage}",
    "dryRunMode": "🧪 โหมดดรายรัน - จะไม่มีการเปลี่ยนแปลงใดๆ",
    "languages": "🌍 ภาษาที่ใช้ได้: {languages}",
    "addingMissingKeys": "➕ การเพิ่มคีย์ที่หายไปให้กับไฟล์การแปล...",
    "processing": "🔄 กำลังประมวลผล {language}...",
    "addedKeys": "✅เข้าเพิ่ม {count} กุญแจหายไป",
    "noChangesNeeded": "✅ไม่จำเป็นต้องเปลี่ยนแปลงใดๆ {language}",
    "summaryTitle": "📊 สรุปผลสำเร็จ",
    "totalChanges": "แปลก การเปลี่ยนแปลงทั้งหมด: {totalChanges}",
    "languagesProcessed": "🌍 ภาษาที่ประมวลผล: {languagesProcessed}",
    "missingKeysAdded": "➕ เพิ่มคีย์ที่หายไป: {missingKeysAdded}",
    "nextStepsTitle": "📋 NEXT STEPS",
    "nextStep1": "1. เรียกใช้การวิเคราะห์การใช้งาน:",
    "nextStep2": "โหนด i18ntk-usage.js --output-report",
    "nextStep3": "2. ตรวจสอบการแปล:",
    "nextStep4": "โหนด i18ntk-validate.js",
    "nextStep5": "3. วิเคราะห์รูปแบบ:",
    "nextStep6": "โหนด i18ntk-analyze.js",
    "allKeysAvailable": "🎉 คีย์การแปลทั้งหมดพร้อมใช้งานแล้ว!",
    "runWithoutDryRun": "💡 ทำงานโดยไม่ต้อง --dry-run เพื่อใช้การเปลี่ยนแปลง",
    "deletingOldReport": "🗑️ กำลังลบรายงานเก่า...",
    "generatingFreshAnalysis": "📊 กำลังสร้างการวิเคราะห์การใช้งานใหม่...",
    "couldNotGenerate": "❌ ไม่สามารถสร้างการวิเคราะห์การใช้งานได้",
    "reportNotFound": "📋 ไม่พบรายงานการใช้งาน การใช้ปุ่มทั่วไป...",
    "foundMissingKeys": "📋 พบแล้ว {count} คีย์หายไปจากการวิเคราะห์การใช้งาน",
    "couldNotParse": "❌ ไม่สามารถแยกวิเคราะห์รายงานการใช้งานได้ การใช้ปุ่มทั่วไป...",
    "errorDuringCompletion": "❌ ข้อผิดพลาดระหว่างดำเนินการเสร็จสิ้น: {error}",
    "fatalError": "❌ ข้อผิดพลาดร้ายแรง: {error}",
    "configurationValidationFailed": "การตรวจสอบการกำหนดค่าล้มเหลว: ไม่มีช่องที่ต้องกรอก"
  },
  "sizing": {
    "separator": "================================================================================",
    "lineSeparator": "--------------------------------------------------------------------------------",
    "analysisStats": "{stats}",
    "sourceDirectoryLabel": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
    "sourceLanguageLabel": "🌍 ภาษาต้นฉบับ: {sourceLanguage}",
    "strictModeLabel": "⚙️ โหมดเข้มงวด: {mode}",
    "invalidSourceDirectoryError": "เส้นทางไดเรกทอรีต้นทางไม่ถูกต้อง: {sourceDir}",
    "sourceDirectoryNotFoundError": "ไม่พบไดเรกทอรีต้นทาง: {sourceDir}",
    "invalidOutputDirectoryError": "เส้นทางไดเรกทอรีผลลัพธ์ไม่ถูกต้อง: {outputDir}",
    "invalidReportFileError": "เส้นทางไฟล์รายงานไม่ถูกต้อง",
    "problematic_keys": "คีย์ที่มีปัญหา: {problematicKeys}",
    "problematicKeysLabel": "คีย์ที่มีปัญหา: {problematicKeys}",
    "long_translations": "การแปลแบบยาว: {longTranslations}",
    "failedToSaveReportError": "ไม่สามารถบันทึกรายงานอย่างปลอดภัย",
    "invalidCsvFileError": "เส้นทางไฟล์ CSV ไม่ถูกต้อง",
    "failedToSaveCsvError": "ไม่สามารถบันทึกรายงาน CSV อย่างปลอดภัย",
    "fatalError": "❌ การวิเคราะห์ขนาดล้มเหลว: {error}",
    "starting_i18n_sizing_analysis": "กำลังเริ่มการวิเคราะห์ขนาด i18n...",
    "source_directory": "ไดเรกทอรีต้นทาง: {sourceDir}",
    "found_languages": "ภาษาที่พบ: {languages}",
    "analyzing_file_sizes": "กำลังวิเคราะห์ขนาดไฟล์...",
    "analyzing_translation_content": "กำลังวิเคราะห์เนื้อหาการแปล...",
    "generating_size_comparisons": "กำลังสร้างการเปรียบเทียบขนาด...",
    "no_languages_found_for_comparison": "ไม่พบภาษาที่จะเปรียบเทียบ",
    "sizing_analysis_results": "ผลการวิเคราะห์ขนาด I18n",
    "file_sizes_title": "ขนาดไฟล์",
    "file_sizes_header": "ขนาดภาษา(KB) บรรทัด อักขระ",
    "file_size_row": "{lang}      {sizeKB}      {lines}      {characters}",
    "language_statistics_title": "สถิติภาษา",
    "language_stats_header": "ปุ่มภาษา ตัวอักษร ความยาวเฉลี่ย ความยาวสูงสุด ว่าง ยาว",
    "language_stats_row": "{lang}      {totalKeys}    {totalCharacters}    {averageKeyLength}    {maxKeyLength}    {emptyKeys}    {longKeys}",
    "size_variations_title": "การเปลี่ยนแปลงขนาด",
    "size_variations_header": "ภาษา Char Diff % Diff เป็นปัญหา",
    "size_variation_row": "{lang}      {characterDifference}    {percentageDifference}%    {problematic}",
    "problematic_yes": "ใช่",
    "problematic_no": "เลขที่",
    "recommendations_title": "ข้อแนะนำ",
    "recommendation_item": "{index}. {recommendation}",
    "problematic_key_detail": "{index}. สำคัญ: '{key}' - รูปแบบต่างๆ: {variations}",
    "generating_detailed_report": "กำลังสร้างรายงานโดยละเอียด...",
    "keysHaveSignificantSizeVariations": "คีย์จะมีขนาดที่แตกต่างกันอย่างมาก",
    "longTranslationsDetected": "${lang} มีการแปล ${data.longKeys} ยาวกว่า 100 ตัวอักษร - ลองแยกย่อย",
    "longer": "อีกต่อไป",
    "shorter": "สั้นลง",
    "review_translations": "พิจารณาทบทวน {lang} การแปล - พวกเขาเป็น {percentageDifference}% {comparison} กว่าพื้นฐาน",
    "report_saved_to": "บันทึกรายงานไปที่: {reportPath}",
    "considerReviewingTranslations": "พิจารณาทบทวน ${lang} การแปล - ยาวกว่าพื้นฐาน ${data.percentageDifference}%",
    "csv_report_saved_to": "รายงาน CSV บันทึกไปที่: {csvPath}",
    "human_report_saved": "บันทึกรายงานที่สามารถอ่านได้: {reportPath}",
    "folder_summary_title": "สรุปโฟลเดอร์",
    "folder_summary_table_header": "ขนาดภาษา(KB) คีย์ ความยาวเฉลี่ย ตัวอักษรทั้งหมด",
    "folder_summary_row": "{lang}      {sizeKB}      {totalKeys}    {avgLength}    {totalChars}",
    "language_comparison_title": "การเปรียบเทียบภาษา",
    "language_comparison_row": "{lang}: {diff} ตัวอักษร ({percent}%) {status}",
    "summary_stats": "📊 สรุป: {totalLanguages} ภาษา {totalKeys} คีย์ - รายงานที่บันทึกไว้ใน {reportPath}",
    "detailedKeysDescription": "แสดงการวิเคราะห์ระดับคีย์โดยละเอียดในคอนโซล",
    "too_many_keys_warning": "⚠️ มีคีย์มากเกินไปที่จะแสดงในคอนโซล - ตรวจสอบไฟล์รายงานโดยละเอียดเพื่อการวิเคราะห์แบบเต็ม",
    "no_translation_files_found": "ไม่พบไฟล์การแปล",
    "analysis_completed": "วิเคราะห์เสร็จเมื่อ พ.ศ {duration}นางสาว",
    "analysis_failed": "การวิเคราะห์ล้มเหลว: {errorMessage}",
    "starting_analysis": "กำลังเริ่มการวิเคราะห์...",
    "found_files": "พบ {count} ไฟล์",
    "failed_to_parse_language_error": "แยกวิเคราะห์ไม่สำเร็จ {language} การแปล: {errorMessage}",
    "recommendations": {
      "keys_have_significant_size_variations": "คีย์จะมีขนาดที่แตกต่างกันอย่างมาก",
      "consider_reviewing_translations": "พิจารณาทบทวน {lang} การแปล - พวกเขาเป็น {percentageDifference}% {comparison} กว่าพื้นฐาน",
      "long_translations_detected": "{lang} มี {longKeys} แปลยาวกว่า. {threshold} ตัวละคร - ลองแยกย่อยพวกมันออก"
    },
    "detailed_key_analysis_title": "การวิเคราะห์คีย์โดยละเอียด",
    "key_analysis_detail": "{lang}: {length} ตัวอักษร ({status}) - {translation}",
    "key_analysis_header": "สำคัญ: {key}",
    "status_empty": "ว่างเปล่า",
    "status_long": "ยาว",
    "status_ok": "ตกลง"
  },
  "usage": {
    "help_message": "ตัววิเคราะห์การใช้งาน I18n การใช้งาน: โหนด i18ntk-usage.js [ตัวเลือก] ตัวเลือก: --source-dir <dir>     ไดเร็กทอรีต้นทางที่จะสแกน (ค่าเริ่มต้น: ./src) --i18n-dir <dir>       ไดเรกทอรี I18n (ค่าเริ่มต้น: ./src/locales) --output-report สร้างรายงานโดยละเอียด --output-dir <dir>     ไดเร็กทอรีเอาต์พุตสำหรับรายงาน (ค่าเริ่มต้น: ./reports) --help แสดงวิธีใช้นี้ ตัวอย่าง: โหนด i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
    "source_directory_thissourcedir": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
    "translationCompletenessTitle": "🌍 ความสมบูรณ์ของการแปล:",
    "i18n_directory_thisi18ndir": "🌐 ไดเรกทอรี I18n: {i18nDir}",
    "failed_to_parse_filename_error": "⚠️ ไม่สามารถแยกวิเคราะห์ {fileName}: {errorMessage}",
    "analyzing_source_files": "🔍 กำลังวิเคราะห์ไฟล์ต้นฉบับ...",
    "found_files_in_source": "📂 พบแล้ว {numFiles} ไฟล์ในไดเร็กทอรีต้นทาง",
    "found_thisusedkeyssize_unique_": "🎯 พบแล้ว {usedKeysSize} กุญแจที่ใช้ไม่ซ้ำใคร",
    "total_key_usages_totalkeysfoun": "📊 การใช้งานคีย์ทั้งหมด: {totalKeysFound}",
    "loading_available_translation_": "📋 กำลังโหลดคีย์การแปลที่มีอยู่...",
    "found_thisavailablekeyssize_av": "✅พบ {availableKeysSize} กุญแจที่มีอยู่",
    "foundTranslationFiles": "✅พบ {count} ไฟล์แปล",
    "errorReadingI18nDirectory": "⚠️ เกิดข้อผิดพลาดในการอ่านไดเรกทอรี i18n: {error}",
    "pressEnterToReturnToMenu": "⏩ กด Enter เพื่อกลับสู่เมนูหลัก...",
    "notTranslatedKeysTotal": "⚠️ คีย์ที่ไม่ได้แปล: {total}",
    "noSourceFilesFound": "⚠️ ไม่พบไฟล์ต้นฉบับในไดเร็กทอรีต้นทาง",
    "reviewNotTranslatedKeys": "💡 รีวิวคีย์ที่ไม่ได้แปล",
    "analysisCompletedSuccessfully": "🎉 วิเคราะห์สำเร็จแล้ว!",
    "detectedSourceDirectory": "ไดเรกทอรีต้นทางที่ตรวจพบ: {sourceDir}",
    "detectedI18nDirectory": "ตรวจพบไดเร็กทอรี i18n: {i18nDir}",
    "fileInfo": "📄 {namespace}: {keys} กุญแจ",
    "failedToAnalyzeUsage": "❌ ล้มเหลวในการวิเคราะห์การใช้งาน: {error}",
    "failedToAnalyzeFile": "❌ ไม่สามารถวิเคราะห์ไฟล์: {error}",
    "failedToExtractKeys": "❌ ไม่สามารถแยกคีย์ออกจาก {filePath}: {error}",
    "analysisFailedError": "❌ การวิเคราะห์ล้มเหลว: {error}",
    "analyzerInitialized": "เริ่มต้นตัววิเคราะห์แล้ว",
    "analyzerInitFailed": "การเริ่มต้นตัววิเคราะห์ล้มเหลว: {error}",
    "argsParsed": "อาร์กิวเมนต์แยกวิเคราะห์แล้ว",
    "processedFiles": "ดำเนินการแล้ว {processedFiles} ของ {totalFiles} ไฟล์.",
    "argsParseFailed": "การแยกวิเคราะห์อาร์กิวเมนต์ล้มเหลว: {error}",
    "translationDiscoveryError": "ข้อผิดพลาดในการค้นพบคำแปล: {error}",
    "fileTraversalError": "ข้อผิดพลาดในการข้ามไฟล์: {error}",
    "sourceEqualsI18nWarn": "{reason}. การวิเคราะห์การใช้งานจะไม่สแกนไฟล์ภาษาเป็นซอร์สโค้ด",
    "i18nEqualsSourceWarn": "⚠️ ไดเร็กทอรี I18n และไดเร็กทอรีต้นทางเหมือนกัน นี่อาจทำให้เกิดปัญหากับการวิเคราะห์",
    "usageAnalysisFailed": "⚠️ การวิเคราะห์การใช้งานล้มเหลว: {error}",
    "translationFileParseError": "⚠️ ข้อผิดพลาดในการแยกวิเคราะห์ไฟล์การแปล: {error}",
    "translationKeysLoadError": "⚠️ ข้อผิดพลาดในการโหลดคีย์การแปล: {error}",
    "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% ที่แปลแล้ว)",
    "missingKeysCount": "⚠️ กุญแจที่หายไป: {count}",
    "analyzingTranslationCompleteness": "กำลังวิเคราะห์ความสมบูรณ์ของการแปล...",
    "unusedKeysCount": "คีย์ที่ไม่ได้ใช้: {count}",
    "usedKeysCount": "กุญแจที่ใช้: {count}",
    "availableKeysCount": "กุญแจที่มีอยู่: {count}",
    "analysisResults": "ผลการวิเคราะห์:",
    "i18nDirectoryNotFound": "⚠️ ไม่พบไดเรกทอรี I18n กรุณาตรวจสอบเส้นทาง",
    "sourceDirectoryNotFound": "⚠️ ไม่พบไดเรกทอรีต้นทาง: {dir}",
    "checkUsage": {
      "title": "🔍 I18NTK USAGE ANALYSIS",
      "analyzing_source_files": "🔍 กำลังวิเคราะห์ไฟล์ต้นฉบับ...",
      "source_directory_thissourcedir": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
      "i18n_directory_thisi18ndir": "📁 ไดเรกทอรี i18n: {i18nDir}",
      "found_files_in_source": "✅พบ {numFiles} ไฟล์ในไดเร็กทอรีต้นทาง",
      "no_source_files_found": "⚠️ ไม่พบไฟล์ต้นฉบับในไดเร็กทอรีที่ระบุ",
      "processedFiles": "📊 แปรรูปแล้ว {processedFiles} ของ {totalFiles} ไฟล์",
      "failedToProcessFile": "❌ ดำเนินการไม่สำเร็จ",
      "found_thisusedkeyssize_unique_": "🔍 พบแล้ว {usedKeysSize} กุญแจที่ใช้ไม่ซ้ำใคร",
      "total_key_usages_totalkeysfoun": "📊 การใช้งานคีย์ทั้งหมด: {totalKeysFound}",
      "loading_available_translation_": "📂 กำลังโหลดคีย์การแปลที่มีอยู่...",
      "found_thisavailablekeyssize_av": "✅พบ {availableKeysSize} กุญแจที่มีอยู่",
      "message": "กำลังวิเคราะห์การใช้คีย์การแปลทั่วทั้งโปรเจ็กต์ของคุณ...",
      "usage_analysis_results": "📊 USAGE ANALYSIS RESULTS",
      "source_files_scanned_thisfileu": "📁 ไฟล์ต้นฉบับที่สแกน: {fileUsageSize}",
      "available_translation_keys_thi": "✅คีย์การแปลที่มีอยู่: {availableKeysSize}",
      "used_translation_keys_thisused": "🔍 คีย์การแปลที่ใช้: {usedKeysSize}",
      "dynamic_keys_detected_dynamick": "⚡ ตรวจพบปุ่มไดนามิก: {dynamicKeysLength}",
      "unused_keys_unusedkeyslength": "🗑️ กุญแจที่ไม่ได้ใช้: {unusedKeysLength}",
      "missing_keys_missingkeyslength": "❌กุญแจหาย: {missingKeysLength}",
      "translation_completeness_title": "📈 ความสมบูรณ์ของการแปล",
      "language_completeness_stats": "{language}: {translated}/{total} กุญแจ ({percentage}%)",
      "n_sample_unused_keys": "🗑️ ตัวอย่างคีย์ที่ไม่ได้ใช้ (5 ตัวแรก):",
      "key": "🔑 {key}",
      "and_unusedkeyslength_5_more": "... และ {count} คีย์ที่ไม่ได้ใช้มากขึ้น",
      "n_sample_missing_keys": "❌ ตัวอย่างคีย์ที่หายไป (5 ตัวแรก):",
      "and_missingkeyslength_5_more": "... และ {count} กุญแจที่หายไปมากขึ้น",
      "n_generating_detailed_report": "📊 กำลังสร้างรายงานโดยละเอียด...",
      "report_saved_reportpath": "📄 บันทึกรายงานแล้ว: {reportPath}",
      "n_recommendations": "💡 คำแนะนำ:",
      "consider_removing_unused_trans": "🗑️ พิจารณาลบคำแปลที่ไม่ได้ใช้เพื่อลดขนาดชุดรวม",
      "add_missing_translation_keys_t": "➕ เพิ่มคีย์การแปลที่หายไปเพื่อรักษาความสอดคล้อง",
      "review_dynamic_keys_manually_t": "🔍 ตรวจสอบไดนามิกคีย์ด้วยตนเอง (อาจใช้ได้)",
      "all_translation_keys_are_prope": "✅ ใช้คีย์การแปลทั้งหมดอย่างถูกต้อง!",
      "n_next_steps": "🎯 NEXT STEPS:",
      "2_check_the_detailed_report_fo": "2. ตรวจสอบรายงานโดยละเอียดสำหรับปัญหาเฉพาะ",
      "help_message": "ตัววิเคราะห์การใช้งาน I18n การใช้งาน: โหนด i18ntk-usage.js [ตัวเลือก] ตัวเลือก: --source-dir <dir>     ไดเร็กทอรีต้นทางที่จะสแกน (ค่าเริ่มต้น: ./src) --i18n-dir <dir>       ไดเรกทอรี I18n (ค่าเริ่มต้น: ./src/locales) --output-report สร้างรายงานโดยละเอียด --output-dir <dir>     ไดเร็กทอรีเอาต์พุตสำหรับรายงาน (ค่าเริ่มต้น: ./reports) --help แสดงวิธีใช้นี้ ตัวอย่าง: โหนด i18ntk-usage.js --output-report node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales node i18ntk-usage.js --output-dir=./analysis --output-report",
      "1_review_the_analysis_results": "1. ตรวจสอบผลการวิเคราะห์ในคอนโซลหรือรายงานที่สร้างขึ้น",
      "2_run_with_outputreport_for_de": "2. รันด้วย --output-report สำหรับรายงานโดยละเอียด",
      "3_remove_unused_keys_or_add_mi": "3. ลบคีย์ที่ไม่ได้ใช้หรือเพิ่มคีย์ที่หายไปในซอร์สโค้ดของคุณ",
      "4_rerun_analysis_to_verify_imp": "4. ดำเนินการวิเคราะห์ซ้ำเพื่อตรวจสอบการปรับปรุง",
      "noSourceFilesFound": "ไม่พบไฟล์ต้นฉบับที่จะวิเคราะห์",
      "i18nDirectoryNotFound": "ไม่พบไดเรกทอรี I18n: {i18nDir}",
      "noTranslationLanguagesFound": "ไม่พบภาษาแปล",
      "failedToAnalyzeFile": "วิเคราะห์ไฟล์ไม่สำเร็จ {filePath}: {error}",
      "failedToAnalyzeLanguage": "วิเคราะห์ภาษาไม่สำเร็จ {language}: {error}",
      "translationCompletenessAnalysisFailed": "การวิเคราะห์ความสมบูรณ์ของการแปลล้มเหลว: {error}",
      "n": "\\n"
    },
    "complete": {
      "configLoadedSuccessfully": "โหลดการกำหนดค่าเรียบร้อยแล้ว",
      "configLoadingFailed": "การโหลดการกำหนดค่าล้มเหลว",
      "title": "🌍 การแปล I18NTK เสร็จสมบูรณ์",
      "separator": "============================================================",
      "sourceDir": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
      "sourceLanguage": "🌐 ภาษาต้นฉบับ: {sourceLanguage}",
      "dryRunMode": "🧪 โหมดดรายรัน - จะไม่มีการเปลี่ยนแปลงใดๆ",
      "languages": "🌍 ภาษาที่ใช้ได้: {languages}",
      "addingMissingKeys": "➕ การเพิ่มคีย์ที่หายไปให้กับไฟล์การแปล...",
      "processing": "🔄 กำลังประมวลผล {language}...",
      "addedKeys": "✅เข้าเพิ่ม {count} กุญแจหายไป",
      "changeDetails": "📝 {file}: {key}",
      "andMore": "...และ {count} มากกว่า",
      "noChangesNeeded": "✅ไม่จำเป็นต้องเปลี่ยนแปลงใดๆ {language}",
      "summaryTitle": "📊 สรุปผลสำเร็จ",
      "totalChanges": "แปลก การเปลี่ยนแปลงทั้งหมด: {totalChanges}",
      "languagesProcessed": "🌍 ภาษาที่ประมวลผล: {languagesProcessed}",
      "missingKeysAdded": "➕ เพิ่มคีย์ที่หายไป: {missingKeysAdded}",
      "nextStepsTitle": "📋 NEXT STEPS",
      "nextStep1": "1. เรียกใช้การวิเคราะห์การใช้งาน:",
      "nextStep2": "โหนด i18ntk-usage.js --output-report",
      "nextStep3": "2. ตรวจสอบการแปล:",
      "nextStep4": "โหนด i18ntk-validate.js",
      "nextStep5": "3. วิเคราะห์รูปแบบ:",
      "nextStep6": "โหนด i18ntk-analyze.js",
      "allKeysAvailable": "🎉 คีย์การแปลทั้งหมดพร้อมใช้งานแล้ว!",
      "runWithoutDryRun": "💡 ทำงานโดยไม่ต้อง --dry-run เพื่อใช้การเปลี่ยนแปลง",
      "deletingOldReport": "🗑️ กำลังลบรายงานเก่า...",
      "generatingFreshAnalysis": "📊 กำลังสร้างการวิเคราะห์การใช้งานใหม่...",
      "couldNotGenerate": "❌ ไม่สามารถสร้างการวิเคราะห์การใช้งานได้",
      "reportNotFound": "📋 ไม่พบรายงานการใช้งาน การใช้ปุ่มทั่วไป...",
      "foundMissingKeys": "📋 พบแล้ว {count} คีย์หายไปจากการวิเคราะห์การใช้งาน",
      "couldNotParse": "❌ ไม่สามารถแยกวิเคราะห์รายงานการใช้งานได้ การใช้ปุ่มทั่วไป..."
    },
    "noTranslationLanguagesFound": "ไม่พบภาษาแปล",
    "failedToAnalyzeLanguage": "ไม่สามารถวิเคราะห์ภาษาได้",
    "translationCompletenessAnalysisFailed": "การวิเคราะห์ความสมบูรณ์ของการแปลล้มเหลว",
    "failedToProcessFile": "ล้มเหลวในการประมวลผลไฟล์:",
    "failedToSaveReport": "ไม่สามารถบันทึกรายงานการใช้งาน: {error}",
    "i18nDirectoryDoesNotExist": "ไม่มีไดเร็กทอรี I18n: {dir}",
    "reportSavedTo": "รายงานการใช้งานบันทึกไว้ที่: {reportPath}",
    "sourceDirectoryDoesNotExist": "ไม่มีไดเรกทอรีต้นทาง: {dir}",
    "noSourceDirectoryConfigured": "(ไม่มีการกำหนดค่า)"
  },
  "validate": {
    "help_message": "การใช้งานเครื่องมือตรวจสอบการแปล I18n: โหนด i18ntk-validate.js [ตัวเลือก] ตัวเลือก: --source-dir <dir>     ไดเร็กทอรีต้นทางที่จะสแกน (ค่าเริ่มต้น: ./src) --i18n-dir <dir>       ไดเรกทอรี I18n (ค่าเริ่มต้น: ./src/locales) --output-report สร้างรายงานโดยละเอียด --output-dir <dir>     ไดเร็กทอรีเอาต์พุตสำหรับรายงาน (ค่าเริ่มต้น: ./reports) --help แสดงวิธีใช้นี้ ตัวอย่าง: โหนด i18ntk-validate.js --output-report node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales node i18ntk-validate.js --output-dir=./analysis --output-report",
    "title": "🔍 เครื่องมือตรวจสอบการแปล I18n",
    "message": "กำลังเริ่มกระบวนการตรวจสอบ...",
    "sourceDirectory": "📁 ไดเรกทอรีต้นทาง: {dir}",
    "sourceLanguage": "🌍 ภาษาต้นฉบับ: {sourceLanguage}",
    "strictMode": "⚙️ โหมดเข้มงวด: {mode}",
    "noTargetLanguages": "ไม่มีภาษาเป้าหมายที่กำหนดค่าไว้ ข้ามการตรวจสอบเป้าหมาย เพิ่มภาษาผ่าน \"i18ntk init -- languages=de,fr\"",
    "validatingLanguages": "🌍 กำลังตรวจสอบภาษา: {langs}",
    "validatingLanguage": "🔍 ภาษาในการตรวจสอบ: {lang}",
    "filesCount": "📄 ไฟล์: {count}",
    "keysCount": "🔑 กุญแจ: {count}",
    "missingFilesCount": "📁 ไฟล์ที่หายไป: {count}",
    "syntaxErrorsCount": "❌ ข้อผิดพลาดทางไวยากรณ์: {count}",
    "translationPercentage": "🎯 แปล: {percentage}% ({translated}/{total} กุญแจ)",
    "validationSummary": "📊 สรุปการตรวจสอบ",
    "validation_failed": "❌ การตรวจสอบล้มเหลว: {error}",
    "totalErrors": "❌ ข้อผิดพลาดทั้งหมด: {count}",
    "totalWarnings": "⚠️ คำเตือนทั้งหมด: {count}",
    "errorsSection": "❌ ERRORS",
    "warningsSection": "⚠️  WARNINGS",
    "recommendationsSection": "💡 คำแนะนำ",
    "fixErrorsFirst": "1. แก้ไขข้อผิดพลาดทั้งหมดก่อน",
    "resolveMissingFilesAndSyntaxErrors": "1. แก้ไขไฟล์ที่หายไปและข้อผิดพลาดทางไวยากรณ์",
    "fixStructuralInconsistencies": "2. แก้ไขความไม่สอดคล้องของโครงสร้าง",
    "completeMissingTranslations": "3. แปลคำแปลที่ขาดหายไปให้สมบูรณ์",
    "rerunValidation": "4. รันการตรวจสอบอีกครั้งเพื่อตรวจสอบการแก้ไข",
    "addressWarnings": "แจ้งเตือนเพื่อปรับปรุงคุณภาพ",
    "reviewWarnings": "ตรวจสอบคำเตือนและแก้ไขตามความเหมาะสม",
    "considerRunningWithStrict": "2. พิจารณาเรียกใช้ด้วยแฟล็ก --strict เพื่อการตรวจสอบที่เข้มงวดยิ่งขึ้น",
    "allValidationsPassed": "🎉 ผ่านการตรวจสอบทั้งหมดแล้ว!",
    "considerRunningUsageAnalysis": "พิจารณาเรียกใช้การวิเคราะห์การใช้งาน: node i18ntk-usage.js",
    "deletedOldReport": "🗑️ ลบรายงานการตรวจสอบเก่าแล้ว",
    "sourceDir": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
    "i18nDir": "🌐 ไดเรกทอรี I18n: {i18nDir}",
    "loadingTranslationFiles": "📋 กำลังโหลดไฟล์แปล...",
    "foundTranslationFilesCount": "✅พบ {count} ไฟล์แปล",
    "analyzingTranslations": "🔍 กำลังวิเคราะห์คำแปล...",
    "validationCompletedSuccessfully": "🎉 การตรวจสอบความถูกต้องเสร็จสมบูรณ์แล้ว!",
    "validationErrorsFound": "⚠️ พบข้อผิดพลาดในการตรวจสอบ: {count}",
    "validationWarningsFound": "⚠️ พบคำเตือนการตรวจสอบความถูกต้อง: {count}",
    "validationPassed": "✅ผ่านการตรวจสอบแล้วไม่มีข้อผิดพลาด",
    "validationFailed": "การตรวจสอบความถูกต้องล้มเหลว: {error}",
    "startingValidationProcess": "🔍 กำลังเริ่มกระบวนการตรวจสอบ...",
    "validationProcessCompletedSuccessfully": "✅ กระบวนการตรวจสอบเสร็จสมบูรณ์เรียบร้อยแล้ว",
    "stackTrace": "การติดตามสแต็ก: {stack}",
    "authenticationFailed": "❌ การรับรองความถูกต้องล้มเหลว การเข้าถึงถูกปฏิเสธ",
    "fatalValidationError": "❌ ข้อผิดพลาดในการตรวจสอบความถูกต้องร้ายแรง: {error}",
    "configAccess": "การเข้าถึงการกำหนดค่าเพื่อตรวจสอบความถูกต้อง",
    "configValidated": "ตรวจสอบการกำหนดค่าสำเร็จแล้ว",
    "configError": "ข้อผิดพลาดในการกำหนดค่า: {error}",
    "validatorInit": "กำลังเริ่มต้นเครื่องมือตรวจสอบ I18n",
    "validatorInitialized": "เริ่มต้นเครื่องมือตรวจสอบ I18n สำเร็จแล้ว",
    "validatorInitError": "ข้อผิดพลาดในการเริ่มต้นตัวตรวจสอบความถูกต้อง: {error}",
    "argsParsing": "การแยกวิเคราะห์อาร์กิวเมนต์บรรทัดคำสั่ง",
    "argsParsed": "อาร์กิวเมนต์บรรทัดคำสั่งแยกวิเคราะห์สำเร็จ",
    "argsParseError": "ข้อผิดพลาดในการแยกวิเคราะห์อาร์กิวเมนต์: {error}",
    "languagesScan": "กำลังสแกนภาษาที่ใช้ได้",
    "languagesFound": "พบ {count} ภาษา",
    "languagesScanError": "ข้อผิดพลาดในการสแกนภาษา: {error}",
    "filesScan": "พบ {count} ไฟล์ใน {language}",
    "filesScanError": "ข้อผิดพลาดในการสแกนไฟล์: {error}",
    "jsonValidated": "ตรวจสอบไวยากรณ์ JSON แล้ว: {filePath}",
    "jsonValidationError": "ข้อผิดพลาดในการตรวจสอบ JSON: {error}",
    "languageValidation": "กำลังตรวจสอบภาษา: {language}",
    "languageValidationError": "ข้อผิดพลาดในการตรวจสอบภาษา: {error}",
    "fileDeleted": "ลบไฟล์แล้ว",
    "runStarted": "กำลังเริ่มดำเนินการตรวจสอบความถูกต้อง",
    "runCompleted": "การตรวจสอบความถูกต้องเสร็จสมบูรณ์แล้ว",
    "runError": "การตรวจสอบความถูกต้องล้มเหลว: {error}",
    "scriptExecution": "การดำเนินการสคริปต์",
    "validationCompleted": "การตรวจสอบความถูกต้องเสร็จสมบูรณ์",
    "validationError": "ข้อผิดพลาดในการตรวจสอบ: {error}",
    "separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
    "languageHeader": "🌐 ภาษา: {language}",
    "validationResults": "📊 ผลการตรวจสอบ",
    "noErrors": "✅ไม่พบข้อผิดพลาด",
    "noWarnings": "✅ไม่พบคำเตือน",
    "summaryHeader": "📋 OVERALL SUMMARY",
    "progressIndicator": "⏳ กำลังประมวลผล...",
    "completedIndicator": "✅ จบ.",
    "errorIndicator": "❌เกิดข้อผิดพลาด",
    "warningIndicator": "⚠️คำเตือน",
    "infoIndicator": "ℹ️ข้อมูล",
    "sourceDirNotConfigured": "ไม่ได้กำหนดค่าไดเรกทอรีต้นทาง",
    "sourceLanguageNotConfigured": "ไม่ได้กำหนดค่าภาษาต้นฉบับ",
    "translationFunctionNotInitialized": "ฟังก์ชั่นการแปลไม่ได้เริ่มต้นอย่างถูกต้อง",
    "sourceLanguageDirectoryNotFound": "ไม่พบไดเรกทอรีภาษาต้นฉบับ",
    "specifiedLanguageNotFound": "ไม่พบภาษาที่ระบุ",
    "noJsonFilesFound": "ไม่พบไฟล์ JSON ในไดเรกทอรีต้นทาง: {sourceDir}",
    "i18nDirectoryNotFound": "ไม่พบไดเรกทอรี I18n: {i18nDir}",
    "invalidDirectoryPaths": "ตรวจพบเส้นทางไดเรกทอรีที่ไม่ถูกต้อง",
    "invalidSampleFilePath": "เส้นทางไฟล์ตัวอย่างไม่ถูกต้อง",
    "failedToCreateSampleTranslationFile": "ไม่สามารถสร้างไฟล์การแปลตัวอย่างได้",
    "invalidFilePathDetected": "ตรวจพบเส้นทางไฟล์ไม่ถูกต้อง",
    "failedToWriteFile": "ไม่สามารถเขียนไฟล์: {filePath}",
    "invalidSourceDirectory": "ไดเรกทอรีต้นทางไม่ถูกต้อง: {sourceDir}",
    "invalidSourceLanguageDirectory": "ไดเรกทอรีภาษาต้นฉบับไม่ถูกต้อง: {sourceDir}"
  },
  "adminCli": {
    "setupPinProtectionTitle": "🔐 การตั้งค่าการป้องกัน PIN ของผู้ดูแลระบบ",
    "setupPinProtectionDescription": "ซึ่งจะต้องใช้ PIN 4-6 หลักสำหรับการดำเนินการด้านผู้ดูแลระบบ",
    "enablePinProtectionPrompt": "คุณต้องการเปิดใช้งานการป้องกัน PIN ของผู้ดูแลระบบหรือไม่",
    "setupCancelled": "การตั้งค่าการป้องกัน PIN ของผู้ดูแลระบบถูกยกเลิก",
    "enterPinPrompt": "ป้อน PIN 4-6 หลัก:",
    "pinFormatError": "❌ PIN ต้องเป็นตัวเลข 4-6 หลัก โปรดลองอีกครั้ง",
    "confirmPinPrompt": "ยืนยันรหัส PIN:",
    "pinMismatchError": "❌ PIN ไม่ตรงกัน โปรดลองอีกครั้ง",
    "pinProtectionEnabledSuccess": "✅ เปิดใช้งานการป้องกัน PIN ของผู้ดูแลระบบเรียบร้อยแล้ว!",
    "pinRecoveryWarning": "⚠️ จำ PIN ของคุณ - ไม่สามารถกู้คืนได้หากสูญหาย",
    "setupPinProtectionFailed": "❌ ไม่สามารถตั้งค่าการป้องกัน PIN ของผู้ดูแลระบบได้",
    "errorSettingUpPin": "❌ เกิดข้อผิดพลาดในการตั้งค่า PIN ผู้ดูแลระบบ: {message}",
    "authRequiredForOperation": "🔐 ต้องมีการรับรองความถูกต้องของผู้ดูแลระบบสำหรับ: {operation}",
    "invalidPinFormat": "❌ รูปแบบ PIN ไม่ถูกต้อง PIN ต้องเป็นตัวเลข 4-6 หลัก",
    "authenticationSuccess": "✅ รับรองความถูกต้องสำเร็จ!",
    "invalidPinAttemptsRemaining": "❌ PIN ไม่ถูกต้อง {remaining} ความพยายามที่เหลืออยู่",
    "authenticationFailedAccessDenied": "❌ การรับรองความถูกต้องล้มเหลว การเข้าถึงถูกปฏิเสธ",
    "authenticationError": "❌ ข้อผิดพลาดในการรับรองความถูกต้อง: {message}",
    "pinProtectionNotEnabled": "การป้องกัน PIN ของผู้ดูแลระบบไม่ได้เปิดใช้งานอยู่ในขณะนี้",
    "disablingPinProtectionTitle": "🔓 ปิดการใช้งานการป้องกัน PIN ของผู้ดูแลระบบ",
    "confirmDisablePinProtection": "คุณแน่ใจหรือไม่ว่าต้องการปิดใช้งานการป้องกัน PIN ของผู้ดูแลระบบ",
    "operationCancelled": "การดำเนินการถูกยกเลิก",
    "pinProtectionDisabledSuccess": "✅ การป้องกัน PIN ของผู้ดูแลระบบถูกปิดใช้งาน",
    "disablePinProtectionFailed": "❌ ไม่สามารถปิดใช้งานการป้องกัน PIN ของผู้ดูแลระบบได้",
    "errorDisablingPinProtection": "❌ เกิดข้อผิดพลาดในการปิดใช้งานการป้องกันผู้ดูแลระบบ: {message}",
    "adminProtectionStatusTitle": "🔐 สถานะการคุ้มครองผู้ดูแลระบบ",
    "statusEnabled": "สถานะ: ✅เปิดใช้งานแล้ว",
    "protectionDetails": "การป้องกัน: ต้องใช้ PIN 4-6 หลักสำหรับการดำเนินงานของผู้ดูแลระบบ",
    "lockoutDetails": "การล็อก: ล้มเหลว 3 ครั้ง = การล็อก 15 นาที",
    "statusDisabled": "สถานะ: ❌ ปิดการใช้งาน",
    "noAuthRequired": "การป้องกัน: ไม่จำเป็นต้องมีการรับรองความถูกต้อง",
    "unprotectedRisk": "ความเสี่ยง: การดำเนินการด้านการบริหารไม่มีการป้องกัน",
    "errorCheckingAdminStatus": "❌ เกิดข้อผิดพลาดในการตรวจสอบสถานะผู้ดูแลระบบ: {message}",
    "authRequired": "🔐 ต้องมีการรับรองความถูกต้องของผู้ดูแลระบบ",
    "invalidPin": "❌ PIN ไม่ถูกต้อง",
    "authSuccess": "✅ รับรองความถูกต้องสำเร็จ!",
    "adminPinSetupCli": "admin_pin_setup_cli",
    "adminAuthFailedCli": "admin_auth_failed_cli",
    "adminAuthDisabledCli": "admin_auth_disabled_cli",
    "protectedAccess": "การเข้าถึงที่มีการป้องกัน: ต้องมีการรับรองความถูกต้องของผู้ดูแลระบบสำหรับการดำเนินการที่มีความละเอียดอ่อน",
    "enterPin": "ป้อน PIN ของผู้ดูแลระบบ:",
    "accessGranted": "ให้สิทธิ์การเข้าถึงแล้ว"
  },
  "adminPin": {
    "setup_title": "🔐 การตั้งค่า PIN ผู้ดูแลระบบ",
    "setup_separator": "============================================================",
    "setup_description": "สร้าง PIN 4-6 หลักสำหรับผู้ดูแลระบบในการเข้าถึงการตั้งค่าที่ละเอียดอ่อน",
    "required_for_title": "PIN นี้จำเป็นสำหรับ:",
    "required_for_1": "• การเปลี่ยนการตั้งค่าความปลอดภัย",
    "required_for_2": "• การปรับเปลี่ยนการกำหนดค่าขั้นสูง",
    "required_for_3": "• การเข้าถึงเครื่องมือแก้ไขข้อบกพร่อง",
    "required_for_4": "• การรีเซ็ตการตั้งค่า",
    "setup_note": "💡 หมายเหตุ: คุณจะเห็นเครื่องหมายดอกจัน (*) ขณะที่พิมพ์ - นี่เป็นเพียงการปิดบังอักขระ",
    "setup_digits_only": "ยอมรับเฉพาะตัวเลข 0-9 เท่านั้นที่เป็นตัวเลข PIN",
    "invalid_pin_length": "❌ PIN ไม่ถูกต้อง ต้องเป็นตัวเลข 4-6 หลัก (ตัวเลข 0-9 เท่านั้น)",
    "invalid_pin_example": "ตัวอย่าง: 1234 หรือ 567890",
    "pins_do_not_match": "❌ PIN ไม่ตรงกัน",
    "setup_success": "✅ ตั้งค่า PIN ของผู้ดูแลระบบสำเร็จแล้ว!",
    "setup_warning": "⚠️ รักษา PIN นี้ให้ปลอดภัย ไม่สามารถกู้คืนได้หากสูญหาย",
    "setup_error": "❌ เกิดข้อผิดพลาดในการตั้งค่า PIN:",
    "session_expired": "⏰ เซสชันผู้ดูแลระบบหมดอายุเนื่องจากไม่มีการใช้งาน",
    "no_pin_set_setting_up": "⚠️ ไม่มีการตั้ง PIN ของผู้ดูแลระบบ กำลังตั้งค่า PIN...",
    "no_pin_configured_access_denied": "⚠️ ไม่มีการกำหนดค่า PIN ของผู้ดูแลระบบ การเข้าถึงถูกปฏิเสธ",
    "use_admin_settings_to_set_pin": "💡 ใช้การตั้งค่าผู้ดูแลระบบเพื่อตั้งค่า PIN ก่อน",
    "locked_out": "🔒 การเข้าถึงของผู้ดูแลระบบถูกล็อคเนื่องจากการพยายามล้มเหลวหลายครั้งเกินไป",
    "wait_before_retry": "โปรดรอประมาณ 5 นาทีก่อนลองอีกครั้ง",
    "access_granted": "✅ ให้สิทธิ์การเข้าถึงของผู้ดูแลระบบแล้ว",
    "incorrect_pin": "❌ PIN ไม่ถูกต้อง {attempts} ความพยายามที่เหลืออยู่",
    "verify_pin_error": "❌ เกิดข้อผิดพลาดในการตรวจสอบ PIN:",
    "already_configured": "✅ PIN ผู้ดูแลระบบได้รับการกำหนดค่าแล้ว",
    "optional_setup_title": "🔐 การตั้งค่า PIN ผู้ดูแลระบบ (ไม่บังคับ)",
    "optional_setup_description": "การป้องกัน PIN ของผู้ดูแลระบบเพิ่มความปลอดภัยสำหรับการดำเนินการที่มีความละเอียดอ่อน เช่น:",
    "setup_prompt": "คุณต้องการตั้งค่า PIN ของผู้ดูแลระบบหรือไม่ (มี/ไม่มี):",
    "skipping_setup": "⏭️ ข้ามการตั้งค่า PIN ของผู้ดูแลระบบ คุณสามารถตั้งค่าได้ในภายหลังในการตั้งค่า",
    "setup_prompt_error": "❌ เกิดข้อผิดพลาดระหว่างการแจ้งการตั้งค่า PIN:",
    "protectedAccess": "การเข้าถึงที่มีการป้องกัน: ต้องมีการรับรองความถูกต้องของผู้ดูแลระบบสำหรับการดำเนินการที่มีความละเอียดอ่อน",
    "enterPin": "ป้อน PIN ของผู้ดูแลระบบ:",
    "accessGranted": "ให้สิทธิ์การเข้าถึงแล้ว",
    "invalidPin": "❌ PIN ไม่ถูกต้อง โปรดลองอีกครั้ง",
    "weak_pin_warning": "⚠️ คำเตือน: PIN นี้ดูเหมือนจะไม่รัดกุมหรือพบบ่อย",
    "weak_pin_suggestion": "💡 พิจารณาใช้ PIN ที่รัดกุมยิ่งขึ้นด้วยตัวเลขที่หลากหลาย",
    "use_anyway_prompt": "พิมพ์ \"ใช่\" เพื่อใช้ต่อไป หรือกด Enter เพื่อเลือก PIN อื่น:",
    "enter_new_pin": "ป้อน PIN ผู้ดูแลระบบใหม่ (4-6 หลัก):",
    "confirm_pin": "ยืนยัน PIN ของผู้ดูแลระบบ:",
    "not_set": "ไม่ได้ตั้งค่า",
    "pin_display_mask": "####"
  },
  "debug": {
    "title": "🏽 เครื่องมือแก้ไขข้อบกพร่อง",
    "separator": "============================================================",
    "mainDebuggerSystemDiagnostics": "1. การวินิจฉัยระบบ",
    "_consoleTranslationsCheck": "// 2. ตรวจสอบการแปลคอนโซล",
    "_exportMissingKeys": "// 3. ส่งออกคีย์การแปลที่หายไป",
    "_replaceHardcodedConsole": "// 4. แทนที่สตริงคอนโซลแบบฮาร์ดโค้ด",
    "_consoleKeyChecker": "// 5. ตัวตรวจสอบคีย์คอนโซล",
    "debugLogs": "2. บันทึกการแก้ไขข้อบกพร่อง",
    "backToMainMenu": "0. กลับสู่เมนูหลัก",
    "selectOption": "เลือกเครื่องมือแก้ไขข้อบกพร่อง:",
    "runningDebugTool": "วิ่ง {displayName}...",
    "debugToolNotFound": "❌ ไม่พบเครื่องมือแก้ไขข้อบกพร่อง: {toolName}",
    "errorRunningDebugTool": "เกิดข้อผิดพลาดในการเรียกใช้เครื่องมือแก้ไขข้อบกพร่อง '{displayName}': {error}",
    "recentDebugLogs": "📄 บันทึกการแก้ไขข้อบกพร่องล่าสุด",
    "noDebugLogsFound": "❌ ไม่พบบันทึกการแก้ไขข้อบกพร่อง",
    "debugLogsDirectoryNotFound": "❌ ไม่พบไดเรกทอรีบันทึกการแก้ไขข้อบกพร่อง",
    "selectLogPrompt": "เลือกไฟล์บันทึกเพื่อดู (1-{count}):",
    "invalidChoiceSelectRange": "ตัวเลือกไม่ถูกต้อง กรุณาเลือกจากช่วงที่มีอยู่",
    "contentOf": "📄 เนื้อหาของ {filename}:",
    "pressEnterToContinue": "กด Enter เพื่อดำเนินการต่อ..."
  },
  "detect_language_mismatches": {
    "tool_title": "🔍 เครื่องมือตรวจจับภาษาที่ไม่ตรงกัน",
    "separator": "=====================================",
    "analyzing_file": "📄 กำลังวิเคราะห์ {language}.json...",
    "error_analyzing_file": "❌ วิเคราะห์ผิดพลาด {filename}: {errorMessage}",
    "results_title": "📊 ผลการตรวจจับภาษาที่ไม่ตรงกัน",
    "results_separator": "========================================",
    "summary_title": "📋 SUMMARY:",
    "total_files_analyzed": "ไฟล์ทั้งหมดที่วิเคราะห์: {totalFiles}",
    "files_with_mismatches": "ไฟล์ที่ไม่ตรงกัน: {filesWithMismatches}",
    "total_mismatches_found": "พบข้อมูลที่ไม่ตรงกันทั้งหมด: {totalMismatches}",
    "no_mismatches_found": "✅ ไม่พบภาษาที่ไม่ตรงกัน! การแปลทั้งหมดดูเหมือนจะเป็นภาษาที่ถูกต้อง",
    "detailed_results_title": "🔍 DETAILED RESULTS:",
    "file_mismatch_header": "📄 {filename} ({language})",
    "mismatches_count": "พบ {count} ไม่ตรงกัน:",
    "mismatch_details": "{index}. สำคัญ: {key}",
    "mismatch_value": "ค่า: \"{value}\"",
    "mismatch_issue": "ปัญหา: {description}",
    "recommendations_title": "💡 คำแนะนำ:",
    "recommendation_1": "1. ตรวจสอบและแปลรายการทั้งหมดที่มีเครื่องหมาย [แปล]",
    "recommendation_2": "2. แทนที่คำนำหน้าภาษา (เช่น [DE], [FR]) ด้วยคำแปลที่เหมาะสม",
    "recommendation_3": "3. แปลข้อความภาษาอังกฤษเป็นภาษาเป้าหมายที่เหมาะสม",
    "recommendation_4": "4. ใช้ภาษาท้องถิ่นที่เทียบเท่ากับข้อความที่ผู้ใช้เห็นทั้งหมด",
    "recommendation_5": "5. เรียกใช้เครื่องมือนี้อีกครั้งหลังจากทำการแก้ไขเพื่อตรวจสอบการแก้ไข",
    "detailed_report_saved": "📄 รายงานโดยละเอียดบันทึกไว้ที่: {reportPath}",
    "error_saving_report": "❌ รายงานข้อผิดพลาดในการบันทึก: {errorMessage}",
    "auto_fix_mode": "🏽 โหมดแก้ไขอัตโนมัติ {dryRun}",
    "auto_fix_separator": "=====================================",
    "fixed_file": "✅แก้ไขแล้ว {filename}",
    "auto_fix_summary_title": "📊 สรุปการแก้ไขอัตโนมัติ:",
    "total_fixes_applied": "ใช้การแก้ไขทั้งหมด: {count}",
    "preview_fixes_title": "🔍 ดูตัวอย่างการแก้ไข:",
    "fix_details": "{file}: {key}      เก่า: \"{old}\"      ใหม่: \"{new}\"",
    "more_fixes": "... และ {count} การแก้ไขเพิ่มเติม",
    "run_with_apply_fixes": "💡 รันด้วย --apply เพื่อใช้การแก้ไขเหล่านี้",
    "error_general": "❌ ข้อผิดพลาด:",
    "mainDebuggerSystemDiagnostics": "ดีบักเกอร์หลัก / การวินิจฉัยระบบ",
    "exportMissingKeys": "ส่งออกคีย์ที่หายไป",
    "replaceHardcodedConsole": "แทนที่คอนโซลแบบฮาร์ดโค้ด",
    "consoleKeyChecker": "ตัวตรวจสอบคีย์คอนโซล",
    "debugLogs": "บันทึกการแก้ไขข้อบกพร่อง",
    "backToMainMenu": "กลับไปที่เมนูหลัก",
    "invalidChoiceSelectRange": "❌ตัวเลือกไม่ถูกต้อง. โปรดเลือกหมายเลขภายในช่วงที่แสดง",
    "runningDebugTool": "เรียกใช้เครื่องมือแก้ไขข้อบกพร่อง: {displayName}",
    "debugToolNotFound": "เครื่องมือแก้ไขข้อบกพร่อง '{toolName}' ไม่พบ.",
    "recentDebugLogs": "บันทึกการแก้ไขข้อบกพร่องล่าสุด",
    "noDebugLogsFound": "ไม่พบบันทึกการแก้ไขข้อบกพร่อง",
    "logEntry": "รายการบันทึก: {timestamp} - {message}",
    "debugLogsDirectoryNotFound": "ไม่พบไดเรกทอรีบันทึกการแก้ไขข้อบกพร่อง"
  },
  "help": {
    "title": "📊 ความช่วยเหลือด้านการจัดการ I18NTK",
    "usage": "การใช้งาน: โหนด main/manage/index.js [ตัวเลือก]",
    "interactiveMode": "💡 การใช้งาน: โหนด main/manage/index.js --command=<command> เพื่อการดำเนินการโดยตรง",
    "showHelp": "📖 ใช้: node main/manage/index.js --help สำหรับคำสั่งที่มีอยู่",
    "availableCommands": "📖 คำสั่งที่ใช้ได้:",
    "initProject": "🚀 เริ่มต้นภาษาใหม่",
    "analyzeTranslations": "🔍 วิเคราะห์การแปล",
    "validateTranslations": "✅ ตรวจสอบการแปล",
    "checkUsage": "📊 ตรวจสอบการใช้งานกุญแจ",
    "initCommand": "init - เริ่มต้นภาษาใหม่",
    "analyzeCommand": "วิเคราะห์ - วิเคราะห์การแปล",
    "validateCommand": "ตรวจสอบ - ตรวจสอบการแปล",
    "usageCommand": "การใช้งาน - ตรวจสอบการใช้งานคีย์",
    "sizingCommand": "การปรับขนาด - วิเคราะห์ขนาด",
    "completeCommand": "เสร็จสมบูรณ์ - การแปลเสร็จสมบูรณ์ (ครอบคลุม 100%)",
    "summaryCommand": "สรุป - แสดงสถานะโครงการ",
    "debugCommand": "ดีบัก - ดีบักปัญหาการแปล",
    "scannerCommand": "เครื่องสแกน - สแกนหากุญแจ",
    "translateCommand": "แปล - แปลไฟล์ภาษาอัตโนมัติ",
    "menu": {
      "pressEnterToContinue": "กด Enter เพื่อดำเนินการต่อ...",
      "title": "🌐 เมนูการจัดการ I18NTK",
      "description": "เมนูแบบโต้ตอบสำหรับการจัดการความเป็นสากล",
      "exit": "🚪 ออก"
    },
    "commands": {
      "init": "init - เริ่มต้นภาษาใหม่",
      "analyze": "วิเคราะห์ - วิเคราะห์การแปล",
      "validate": "ตรวจสอบ - ตรวจสอบการแปล",
      "usage": "การใช้งาน - ตรวจสอบการใช้งานคีย์",
      "sizing": "การปรับขนาด - วิเคราะห์ขนาด",
      "complete": "เสร็จสมบูรณ์ - การแปลเสร็จสมบูรณ์ (ครอบคลุม 100%)",
      "summary": "สรุป - แสดงสถานะโครงการ",
      "debug": "ดีบัก - ดีบักปัญหาการแปล"
    },
    "options": {
      "sourceDir": "--source-dir <dir>     ไดเรกทอรีต้นทางที่จะวิเคราะห์",
      "output": "--เอาท์พุท <file>        ไฟล์เอาต์พุตสำหรับรายงาน",
      "verbose": "--verbose, -v แสดงข้อมูลโดยละเอียด",
      "keepReports": "--keep-reports เก็บรายงานที่มีอยู่",
      "deleteReports": "--delete-reports ลบรายงานที่มีอยู่",
      "help": "--help, -h แสดงความช่วยเหลือนี้"
    },
    "examples": {
      "title": "ตัวอย่าง:",
      "example1": "โหนด i18ntk-manage.js",
      "example2": "โหนด i18ntk-manage.js --source-dir ./locales",
      "example3": "โหนด i18ntk-manage.js --สรุปเอาต์พุต-report.txt",
      "example4": "โหนด i18ntk-manage.js --verbose",
      "example5": "โหนด i18ntk-manage.js --source-dir ./locales --output report.json"
    },
    "features": {
      "initProject": "🚀 เริ่มต้นภาษาใหม่",
      "analyzeTranslations": "🔍 วิเคราะห์การแปล",
      "validateTranslations": "✅ ตรวจสอบการแปล",
      "checkUsage": "📊 ตรวจสอบการใช้งานกุญแจ",
      "completeTranslations": "🎯 การแปลที่สมบูรณ์ (ครอบคลุม 100%)",
      "showSizing": "📏 วิเคราะห์ขนาด",
      "runWorkflow": "🔄 รันเวิร์กโฟลว์เต็มรูปแบบ",
      "showStatus": "📋 แสดงสถานะโครงการ",
      "deleteReports": "🗑️ ลบรายงานทั้งหมด",
      "changeLanguage": "🌍 เปลี่ยนภาษา UI",
      "settings": "⚙️ การตั้งค่า",
      "showHelp": "❓ช่วยเหลือ",
      "debugTools": "🏽 เครื่องมือแก้ไขข้อบกพร่อง"
    },
    "messages": {
      "selectOption": "เลือกตัวเลือก:",
      "invalidOption": "ตัวเลือกไม่ถูกต้อง โปรดลองอีกครั้ง",
      "operationCompleted": "✅ ปฏิบัติการสำเร็จลุล่วงด้วยดี!",
      "pressEnter": "กด Enter เพื่อดำเนินการต่อ...",
      "goodbye": "😏 ลาก่อน!",
      "unknownCommand": "คำสั่งที่ไม่รู้จัก: {command}",
      "nonInteractive": "⚠️ ตรวจพบโหมดที่ไม่โต้ตอบ เมนูที่แสดงสำหรับการอ้างอิงเท่านั้น"
    },
    "i18n_helper": {
      "translation_file_not_found": "ไม่พบไฟล์การแปล: {translationFile}",
      "error_loading_translations": "เกิดข้อผิดพลาดในการโหลดคำแปล: {errorMessage}",
      "translation_not_found": "ไม่พบคำแปลสำหรับคีย์: {key}",
      "translation_key_not_string": "คีย์การแปลไม่สามารถแปลงเป็นสตริงได้: {key}",
      "error_reading_locales_directory": "เกิดข้อผิดพลาดในการอ่านไดเรกทอรีสถานที่: {errorMessage}"
    }
  },
  "init": {
    "initializationTitle": "🚀 ชุดเครื่องมือการจัดการ i18n - การเริ่มต้นโครงการ",
    "initializationCancelled": "🚫 การเริ่มต้นถูกยกเลิกโดยผู้ใช้",
    "sourceDirectoryLabel": "📁 ไดเรกทอรีที่มา: {dir}",
    "requiredTitle": "จำเป็นต้องมีการเริ่มต้น",
    "requiredBody": "ต้องเริ่มต้นโปรเจ็กต์นี้ก่อนที่จะรันคำสั่งนี้",
    "promptRunNow": "คุณต้องการเรียกใช้การเริ่มต้นตอนนี้หรือไม่? (มี/ไม่มี):",
    "sourceLanguageLabel": "🌍 ภาษาต้นฉบับ: {language}",
    "detectedI18nFrameworks": "🔍 ตรวจพบเฟรมเวิร์ก i18n: {frameworks}",
    "pinMustBe4Digits": "🔐 PIN ต้องเป็นตัวเลข 4 หลัก",
    "existingDirectoriesFound": "📁 พบไดเรกทอรีการแปลที่มีอยู่:",
    "useExistingDirectoryPrompt": "คุณต้องการใช้ไดเร็กทอรีที่มีอยู่หรือไม่? (มี/ไม่มี)",
    "selectDirectoryPrompt": "เลือกไดเร็กทอรีโดยป้อนหมายเลข (หรือเลือก 'สร้างไดเร็กทอรีใหม่')",
    "enterNewDirectoryName": "ป้อนชื่อสำหรับไดเรกทอรีการแปลใหม่ของคุณ",
    "createdNewDirectory": "✅ สร้างไดเรกทอรีใหม่: {dir}",
    "directoryAlreadyExists": "⚠️ มีไดเร็กทอรีอยู่แล้ว: {dir}",
    "invalidDirectoryName": "❌ ชื่อไดเรกทอรีที่ระบุไม่ถูกต้อง",
    "usingExistingDirectory": "การใช้ไดเร็กทอรีที่มีอยู่: {dir}",
    "adminPinSetupOptional": "🔐 การตั้งค่า PIN ผู้ดูแลระบบเป็นตัวเลือก (แนะนำเพื่อความปลอดภัย)",
    "adminPinSeparator": "------------------------------",
    "adminPinDescription1": "PIN ผู้ดูแลระบบ: หมายเลข 4 หลักเพื่อการเข้าถึงที่ปลอดภัย",
    "adminPinDescription2": "เว้นว่างไว้เพื่อข้ามการตั้งค่า PIN",
    "adminPinDescription3": "หากคุณตั้งค่า PIN จะต้องใช้สำหรับการดำเนินการที่ปลอดภัยทั้งหมดในอนาคต",
    "adminPinDescription4": "การเข้ารหัส AES-256-GCM ใช้สำหรับการจัดเก็บ PIN ที่ปลอดภัย",
    "adminPinSetupPrompt": "ป้อน PIN ของผู้ดูแลระบบ (4 หลัก) หรือเว้นว่างไว้เพื่อข้าม:",
    "skippingAdminPinSetup": "กำลังข้ามการตั้งค่า PIN ของผู้ดูแลระบบ...",
    "settingUpAdminPin": "🔐 การตั้งค่า PIN ผู้ดูแลระบบ...",
    "enterAdminPin": "ป้อน PIN ผู้ดูแลระบบ:",
    "confirmAdminPin": "ยืนยัน PIN ผู้ดูแลระบบ:",
    "pinMismatch": "PIN ไม่ตรงกัน โปรดลองอีกครั้ง",
    "adminPinSetupSuccess": "🔐 การตั้งค่า PIN ผู้ดูแลระบบสำเร็จแล้ว!",
    "adminPinSetupFailure": "🔐 การตั้งค่า PIN ผู้ดูแลระบบล้มเหลว โปรดลองอีกครั้ง",
    "adminProtectionEnabled": "🔐 เปิดใช้งานการป้องกันผู้ดูแลระบบแล้ว การดำเนินการทั้งหมดต้องมีการตรวจสอบสิทธิ์ PIN",
    "adminProtectionDisabled": "🔐 การป้องกันผู้ดูแลระบบถูกปิดใช้งาน การดำเนินการทั้งหมดสามารถทำได้โดยไม่ต้องใช้ PIN",
    "autoDetectedI18nDirectory": "ไดเร็กทอรี i18n ที่ตรวจพบอัตโนมัติ: {directory}",
    "initializingProject": "⚙️ กำลังเริ่มต้นการกำหนดค่าโปรเจ็กต์...",
    "createdSampleTranslationFile": "✅ สร้างไฟล์แปลตัวอย่าง: {file}",
    "languageSelectionTitle": "🌐 การกำหนดค่าภาษา",
    "available": "มีอยู่",
    "defaultLanguages": "⏩ ภาษาเริ่มต้น: {languages}",
    "enterLanguageCodes": "🎯 กรอกรหัสภาษาเป้าหมาย (คั่นด้วยเครื่องหมายจุลภาค เช่น de, es, fr, ru):",
    "targetLanguages": "🌍 ภาษาเป้าหมาย",
    "foundSourceFiles": "📄 พบแล้ว {count} ไฟล์ต้นฉบับที่จะวิเคราะห์",
    "processingLanguage": "🔄 ภาษาการประมวลผล: {language}",
    "fileProcessingResult": "✅แปรรูปแล้ว {file}: {translated}/{total} กุญแจ ({percentage}%)",
    "overallProgress": "📊 ความคืบหน้าโดยรวม: {translated}/{total} คีย์ที่ประมวลผล ({percentage}%)",
    "initializationSummaryTitle": "📋 สรุปการเริ่มต้น",
    "languageSummary": "{icon} {name} ({code}): {percentage}% สมบูรณ์",
    "languageFiles": "📄 ไฟล์: {count}",
    "languageKeys": "🔤 กุญแจ: {translated}/{total}",
    "languageMissing": "⚠️ ขาดหายไป: {count}",
    "initializationCompletedSuccessfully": "🎉 การเริ่มต้นโครงการเสร็จสมบูรณ์แล้ว!",
    "nextStepsTitle": "🚀 ขั้นตอนต่อไป",
    "nextStep1": "1. ตรวจสอบไฟล์การแปลที่สร้างขึ้นในไดเร็กทอรี locales/ ของคุณ",
    "nextStep2": "2. เพิ่มคำแปลสำหรับแต่ละภาษาเป้าหมาย",
    "nextStep3": "3. เรียกใช้ 'npm run i18ntk' อีกครั้งเพื่อตรวจสอบความถูกต้องของการแปล",
    "detectedFrameworks": "✅ ตรวจพบเฟรมเวิร์ก i18n: {frameworks}",
    "setup": {
      "title": "ตั้งค่า",
      "question": "ตั้งคำถาม",
      "opt_single": "ไฟล์เดียว",
      "opt_modular": "แบบโมดูลาร์",
      "opt_existing": "ที่มีอยู่เดิม",
      "choice_prompt": "เลือกตัวเลือก:",
      "opt_confirm": "ยืนยัน",
      "opt_cancel": "ยกเลิก",
      "apply_all_prompt": "ใช้โครงสร้างนี้กับทุกภาษาใช่ไหม (มี/ไม่มี):",
      "per_language_intro": "คุณได้เลือกที่จะกำหนดค่าภาษาแยกกัน นี่คือภาษาที่ใช้ได้:",
      "available_languages": "ภาษาที่ใช้ได้: {languages}",
      "include_prompt": "ป้อนรหัสภาษาที่คั่นด้วยเครื่องหมายจุลภาคเพื่อรวม (เช่น 'de,fr,es'):"
    },
    "warnings": {
      "noPackageJson": "ไม่พบ package.json ไม่สามารถตรวจจับเฟรมเวิร์ก i18n อัตโนมัติได้"
    },
    "errorsPackageJsonRead": "เกิดข้อผิดพลาดในการอ่าน package.json: {error}",
    "errorsNoFramework": "ไม่พบเฟรมเวิร์ก i18n โปรดติดตั้งหรือระบุด้วยตนเอง",
    "suggestions": {
      "noFramework": "ไม่พบเฟรมเวิร์ก i18n พิจารณาใช้อย่างใดอย่างหนึ่งต่อไปนี้:",
      "installFramework": "หากต้องการติดตั้งเฟรมเวิร์ก ให้รัน: npm install <package-name>"
    },
    "frameworks": {
      "react": "- ตอบสนอง i18next (ตอบสนอง-i18next)",
      "vue": "- วู i18n (วู-i18n)",
      "i18next": "- i18next (ไอ18เน็กซ์)",
      "nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
      "svelte": "- สเวลเต้ i18n (svelte-i18n)"
    },
    "continueWithoutI18nPrompt": "ไม่พบเฟรมเวิร์ก i18n คุณต้องการดำเนินการต่อโดยไม่มีใครหรือไม่? (มี/ไม่มี):",
    "detectedI18nFramework": "ตรวจพบเฟรมเวิร์ก i18n: {frameworks}",
    "existingDirectoryItem": "{index}. {location}",
    "usingExistingStructure": "การใช้โครงสร้างที่มีอยู่: {dir}",
    "creatingSourceDirectory": "การสร้างไดเรกทอรีต้นทาง: {dir}",
    "creatingSourceLanguageDirectory": "การสร้างไดเร็กทอรีภาษาต้นฉบับ: {dir}",
    "errors": {
      "errorExecutingCommand": "เกิดข้อผิดพลาดในการดำเนินการคำสั่ง: {error}",
      "sourceDirectoryNotFound": "ไม่พบไดเรกทอรีต้นทาง: {dir}",
      "sourceLanguageDirectoryNotFound": "ไม่พบไดเร็กทอรีภาษาต้นฉบับ: {dir}",
      "noJsonFilesInSourceDirectory": "ไม่พบไฟล์ JSON ในไดเรกทอรีต้นทาง: {dir}",
      "invalidFilePathDetected": "ตรวจพบเส้นทางไฟล์ไม่ถูกต้อง",
      "initializationFailed": "การเริ่มต้นล้มเหลว: {error}",
      "noFramework": "ไม่พบเฟรมเวิร์ก i18n ดำเนินการต่อด้วยโหมดทั่วไป",
      "packageJsonRead": "เกิดข้อผิดพลาดในการอ่าน package.json"
    },
    "processingFile": "กำลังประมวลผล {file} สำหรับ {language}...",
    "fileAlreadyExistsMerging": "ไฟล์ {file} มีอยู่แล้ว การรวมคีย์ใหม่",
    "createdNewFile": "สร้างไฟล์ใหม่: {file}",
    "updatedFile": "ไฟล์ที่อัปเดต: {file}",
    "skippingExcludedFile": "กระโดดข้าม {file} สำหรับ {language} ตามที่ยกเว้นไว้",
    "continuingWithoutAdminPin": "ดำเนินการต่อโดยไม่ต้องตั้งค่า PIN ของผู้ดูแลระบบ",
    "createdSourceLanguageDirectory": "สร้างไดเร็กทอรีภาษาต้นฉบับ: {dir}",
    "errorSettingUpAdminPin": "เกิดข้อผิดพลาดในการตั้งค่า PIN ผู้ดูแลระบบ: {error}",
    "noTargetLanguagesSpecified": "ไม่ได้ระบุภาษาเป้าหมาย",
    "translationFilesCreatedWarning": "ไฟล์การแปลถูกสร้างขึ้นโดยใช้ตัวยึดตำแหน่ง ตรวจสอบก่อนการใช้งานจริง",
    "warningCannotReadSourceDir": "คำเตือน: ไม่สามารถอ่านไดเรกทอรีต้นทางได้ {dir}: {error}",
    "warningInvalidLanguageCodes": "คำเตือน: รหัสภาษาที่ไม่ถูกต้องถูกละเว้น: {languages}",
    "warningProceedingWithoutFramework": "ดำเนินการโดยตรวจไม่พบเฟรมเวิร์ก i18n",
    "backup": {
      "title": "การตั้งค่าการสำรองข้อมูล",
      "description": "การสำรองข้อมูลจะถูกปิดใช้งานตามค่าเริ่มต้นเพื่อหลีกเลี่ยงการเรียกซ้ำของการสำรองข้อมูลและมลภาวะจากการซื้อคืน",
      "enablePrompt": "เปิดใช้งานการสำรองข้อมูลอัตโนมัติหรือไม่ (มี/ไม่มี):",
      "keepPrompt": "จำนวนการสำรองข้อมูลที่ควรเก็บไว้โดยอัตโนมัติ (1-3, ค่าเริ่มต้น 1):"
    },
    "completionSummaryTitle": "สรุปความสมบูรณ์",
    "completionSummaryBasicTitle": "สรุปความสมบูรณ์ (พื้นฐาน)",
    "totalChanges": "การเปลี่ยนแปลงทั้งหมด: {count}",
    "languagesProcessed": "ภาษาที่ประมวลผล: {count}",
    "missingKeysAdded": "เพิ่มคีย์ที่หายไป: {count}",
    "reportPrompt": "คุณต้องการสร้างรายงานหรือไม่? (มี/ไม่มี):",
    "reportGenerated": "สร้างรายงานแล้ว: {reportPath}",
    "reportFailed": "ไม่สามารถสร้างรายงาน: {error}",
    "completionError": "เกิดข้อผิดพลาดระหว่างดำเนินการเสร็จสิ้น: {error}",
    "optimize": {
      "title": "การเพิ่มประสิทธิภาพขนาดบรรจุภัณฑ์",
      "preview": "กำลังเรียกใช้การแสดงตัวอย่างการเพิ่มประสิทธิภาพสถานที่...",
      "reduceTip": "คุณสามารถลดขนาดแพ็คเกจได้โดยเลือกเฉพาะภาษาที่คุณต้องการ",
      "prompt": "คุณต้องการใช้การเพิ่มประสิทธิภาพเชิงโต้ตอบทันทีหรือไม่ (มี/ไม่มี):",
      "starting": "กำลังเริ่มต้นการเพิ่มประสิทธิภาพสถานที่เชิงโต้ตอบ...",
      "completed": "การเพิ่มประสิทธิภาพแพ็คเกจเสร็จสมบูรณ์",
      "later": "คุณสามารถเรียกใช้การเพิ่มประสิทธิภาพสถานที่ได้ในภายหลังด้วย:",
      "unavailable": "ไม่สามารถเสนอการเพิ่มประสิทธิภาพสถานที่ได้: {error}"
    }
  },
  "language": {
    "title": "🌍 เปลี่ยนภาษา",
    "separator": "============================================================",
    "current": "ภาษาปัจจุบัน: {language}",
    "available": "ภาษาที่ใช้ได้:",
    "languageOption": "{index}. {displayName}{current}",
    "backToMainMenu": "กลับไปที่เมนูหลัก",
    "prompt": "เลือกภาษา (0-8):",
    "cancelled": "การเปลี่ยนแปลงภาษาถูกยกเลิก",
    "invalid": "ตัวเลือกไม่ถูกต้อง โปรดลองอีกครั้ง",
    "changed": "ภาษาเปลี่ยนเป็น: {language}",
    "changeFailed": "ไม่สามารถเปลี่ยนภาษา: {error}",
    "pressEnterToContinue": "กด Enter เพื่อดำเนินการต่อ..."
  },
  "maintainLanguagePurity": {
    "workflow_title": "🚀 ขั้นตอนการบำรุงรักษาความบริสุทธิ์ของภาษา",
    "step1_title": "📊 ขั้นตอนที่ 1: การประเมินความบริสุทธิ์ของภาษาเริ่มต้น",
    "step2_title": "🏽 ขั้นตอนที่ 2: ตรวจจับและแก้ไขภาษาที่ไม่ตรงกันโดยอัตโนมัติ",
    "step3_title": "🌐 ขั้นตอนที่ 3: ใช้การแปลอัตโนมัติ",
    "step4_title": "✅ ขั้นตอนที่ 4: การประเมินความบริสุทธิ์ของภาษาขั้นสุดท้าย",
    "workflow_error": "❌ ข้อผิดพลาดขั้นตอนการทำงาน: {errorMessage}",
    "running_initial_validation": "กำลังเรียกใช้การตรวจสอบความบริสุทธิ์ของภาษาเริ่มต้น...",
    "initial_assessment_complete": "✅ การประเมินเบื้องต้นเสร็จสมบูรณ์: {count} พบการละเมิด",
    "initial_assessment_warnings": "⚠️ การประเมินเบื้องต้นเสร็จสมบูรณ์พร้อมคำเตือน",
    "detecting_fixing_mismatches": "กำลังตรวจจับและแก้ไขภาษาที่ไม่ตรงกัน...",
    "detection_complete_applying_fixes": "การตรวจจับเสร็จสมบูรณ์ กำลังใช้การแก้ไขอัตโนมัติ...",
    "mismatch_fixes_complete": "✅ แก้ไขภาษาที่ไม่ตรงกันเสร็จสมบูรณ์: {count} ใช้การแก้ไขแล้ว",
    "mismatch_fixes_warnings": "⚠️ แก้ไขภาษาที่ไม่ตรงกันเสร็จสมบูรณ์พร้อมคำเตือน",
    "applying_automatic_translations": "กำลังใช้การแปลอัตโนมัติ...",
    "translation_preview_complete": "ดูตัวอย่างการแปลเสร็จสมบูรณ์ กำลังใช้คำแปล..."
  },
  "menu": {
    "title": "🌐 เมนูการจัดการ I18NTK",
    "separator": "============================================================",
    "options": {
      "init": "🚀 เริ่มต้นภาษาใหม่",
      "analyze": "🔍 วิเคราะห์การแปล",
      "validate": "✅ ตรวจสอบการแปล",
      "usage": "📊 ตรวจสอบการใช้งานกุญแจ",
      "complete": "🎯 การแปลที่สมบูรณ์ (ครอบคลุม 100%)",
      "sizing": "📏 วิเคราะห์ขนาด",
      "fix": "🛠️ แก้ไขการแปลตัวยึดตำแหน่ง",
      "scanner": "🔍 สแกนหาปัญหา i18n",
      "translate": "🌐 แปลอัตโนมัติ",
      "workflow": "🔄 รันเวิร์กโฟลว์เต็มรูปแบบ",
      "status": "📋 แสดงสถานะโครงการ",
      "delete": "🗑️ ลบรายงานทั้งหมด",
      "language": "🌍 เปลี่ยนภาษา UI",
      "settings": "⚙️ การตั้งค่า",
      "help": "❓ช่วยเหลือ",
      "debug": "🏽 เครื่องมือแก้ไขข้อบกพร่อง",
      "exit": "🚪 ออก"
    },
    "update": "📦 อัพเดตแพ็คเกจ",
    "goodbye": "😏 ลาก่อน!",
    "invalidChoice": "ตัวเลือกไม่ถูกต้อง กรุณาเลือก 0-15",
    "returning": "กลับสู่เมนูหลัก...",
    "invalidOption": "ตัวเลือกไม่ถูกต้อง โปรดลองอีกครั้ง",
    "nonInteractiveModeWarning": "ตรวจพบโหมดที่ไม่โต้ตอบ เมนูที่แสดงสำหรับการอ้างอิงเท่านั้น",
    "useDirectExecution": "ใช้: โหนด main/manage/index.js --command=<command> เพื่อการดำเนินการโดยตรง",
    "useHelpForCommands": "ใช้: node main/manage/index.js --help สำหรับคำสั่งที่มีอยู่",
    "returnToMainMenu": "กด Enter เพื่อกลับสู่เมนูหลัก",
    "pressEnterToContinue": "กด Enter เพื่อดำเนินการต่อ...",
    "selectOptionPrompt": "เลือกตัวเลือก:",
    "selectDebugToolPrompt": "เลือกเครื่องมือแก้ไขข้อบกพร่อง:",
    "selectLogPrompt": "เลือกไฟล์บันทึก (1-{count}):",
    "autoDetectedI18nDirectory": "ไดเร็กทอรี i18n ที่ตรวจพบอัตโนมัติ: {directory}",
    "executingCommand": "การดำเนินการคำสั่ง: {command}",
    "unknownCommand": "คำสั่งที่ไม่รู้จัก: {command}",
    "languageOption": "{index}. {displayName}{current}",
    "debugTools": {
      "1": "การวิเคราะห์ไฟล์บันทึก",
      "2": "การวิเคราะห์การใช้คีย์การแปล",
      "3": "การวิเคราะห์ความสมบูรณ์ของการแปล",
      "4": "การวิเคราะห์รูปแบบการแปล",
      "5": "การวิเคราะห์ประเภทการแปล",
      "6": "การวิเคราะห์โครงสร้างการแปล"
    },
    "native_translations": {
      "exact_translation_found": "✅ {keyPath}: {value}",
      "no_exact_translation": "⚠️ ไม่มีคำแปลที่แน่นอนสำหรับ '{keyPath}' พบคีย์ที่คล้ายกัน:",
      "similar_key": "- {key} ({similarity}% จับคู่)",
      "processing_language_files": "🔄 กำลังประมวลผล {count} ไฟล์ภาษา...",
      "file_not_found": "⚠️ ไม่พบไฟล์: {file}",
      "processing_translations": "🌍 กำลังประมวลผล {code} การแปล...",
      "backup_created": "📋 สร้างการสำรองข้อมูลแล้ว: {filename}",
      "error_parsing_json": "❌ เกิดข้อผิดพลาดในการแยกวิเคราะห์ {code}.json: {errorMessage}",
      "existing_keys_found": "📊 {code}: พบ {count} คีย์ที่มีอยู่",
      "error_writing_json": "❌เขียนผิด. {code}.json: {errorMessage}",
      "translations_replaced": "📊 {code}: {count} การแปลแทนที่",
      "translation_replacement_complete": "✅ เปลี่ยนคำแปลเรียบร้อยแล้ว!",
      "total_replacements": "📊 การทดแทนทั้งหมด: {count}",
      "dry_run_mode": "⚠️ โหมด DRY RUN - ไม่มีการแก้ไขไฟล์",
      "tool_title": "🌍 ตัวแทนที่การแปลดั้งเดิม v1.9.1",
      "tool_separator": "======================================",
      "dry_run_warning": "⚠️ ทำงานในโหมด DRY RUN - ไม่มีไฟล์ใดที่จะได้รับการแก้ไข",
      "error_during_replacement": "❌ เกิดข้อผิดพลาดระหว่างการเปลี่ยนคำแปล:"
    }
  },
  "config": {
    "dirFallbackWarning": "⚠️ไดเร็กทอรี {dir} ไม่พบ โดยใช้ {fallback}.",
    "dirInvalidError": "❌ ไดเรกทอรีไม่ถูกต้อง: {dir}"
  },
  "operations": {
    "completed": "✅ ปฏิบัติการสำเร็จลุล่วงด้วยดี!",
    "deleteReportsTitle": "🗑️ ลบรายงาน บันทึก และแคช",
    "scanningForFiles": "🔍 กำลังสแกนหาไฟล์ที่จะลบ...",
    "noFilesFoundToDelete": "✅ไม่พบไฟล์ที่จะลบ",
    "availableDirectories": "📁 ไดเรกทอรีที่มีอยู่:",
    "allDirectories": "ไดเรกทอรีทั้งหมด",
    "andMore": "และอื่นๆ...",
    "cancelOption": "ยกเลิก",
    "cancelReportOption": "ยกเลิก / กลับสู่เมนู",
    "invalidSelection": "❌ การเลือกไม่ถูกต้อง",
    "foundFilesInSelectedDirectories": "📊 พบแล้ว {count} ไฟล์ในไดเร็กทอรีที่เลือก:",
    "deletionOptions": "🗑️ ตัวเลือกการลบ:",
    "deleteAllFiles": "ลบไฟล์ทั้งหมด",
    "keepLast3Files": "เก็บไฟล์ล่าสุด 3 ไฟล์ (ตามวันที่)",
    "keepLast5Files": "เก็บไฟล์ล่าสุด 5 ไฟล์ (ตามวันที่)",
    "noFilesToDelete": "✅ไม่มีไฟล์ให้ลบ",
    "filesToDeleteCount": "📋 ไฟล์ที่จะลบ: {count}",
    "filesToKeepCount": "📋 ไฟล์ที่จะเก็บไว้: {count}",
    "confirmDeletion": "⚠️ คุณแน่ใจหรือไม่ว่าต้องการลบไฟล์เหล่านี้ (มี/ไม่มี):",
    "deletedFile": "✅ ลบแล้ว: {filename}",
    "failedToDeleteFile": "❌ไม่สามารถลบได้ {filename}: {error}",
    "cancelled": "❌ การดำเนินการถูกยกเลิก",
    "init": {
      "title": "🚀 เริ่มต้นภาษาใหม่"
    },
    "usage": {
      "title": "📊 ตรวจสอบการใช้คีย์",
      "noUsedKeysHint": "พบการแปล แต่ไม่มีการใช้งานในแหล่งที่มา ตรวจสอบ --source-dir และ TranslationPatterns"
    },
    "analyze": {
      "title": "🔍 วิเคราะห์การแปล"
    },
    "validate": {
      "title": "✅ ตรวจสอบการแปล"
    },
    "settings": {
      "title": "⚙️ การจัดการการตั้งค่า",
      "separator": "============================================================"
    },
    "complete": {
      "deletingOldReport": "🗑️ ลบรายงานการใช้งานเก่าเพื่อวิเคราะห์ใหม่",
      "generatingFreshAnalysis": "🔄 กำลังสร้างการวิเคราะห์การใช้งานใหม่...",
      "couldNotGenerate": "⚠️ ไม่สามารถสร้างการวิเคราะห์การใช้งานได้ การใช้คีย์ที่หายไปทั่วไป",
      "reportNotFound": "⚠️ ไม่พบรายงานการใช้งาน กำลังสร้างการวิเคราะห์ใหม่...",
      "foundMissingKeys": "🔍 พบแล้ว {count} คีย์หายไปจากการวิเคราะห์การใช้งาน",
      "couldNotParse": "⚠️ ไม่สามารถแยกวิเคราะห์รายงานการใช้งานได้ การใช้คีย์ที่หายไปทั่วไป",
      "title": "🎯 การแปลให้เสร็จสิ้น",
      "separator": "============================================================",
      "sourceDir": "📁 ไดเรกทอรีต้นทาง: {sourceDir}",
      "sourceLanguage": "🔤 ภาษาต้นฉบับ: {sourceLanguage}",
      "dryRunMode": "🧪 โหมด DRY RUN - ไม่มีไฟล์ใดที่จะได้รับการแก้ไข",
      "languages": "🎯 ภาษาเป้าหมาย: {languages}",
      "addingMissingKeys": "➕ การเพิ่มคีย์ที่หายไปให้กับไฟล์การแปล...",
      "processing": "🔄 กำลังประมวลผล {language}...",
      "addedKeys": "✅เข้าเพิ่ม {count} กุญแจ",
      "changeDetails": "📝 {file}: {key}",
      "noChangesNeeded": "✅ไม่จำเป็นต้องเปลี่ยนแปลงใดๆ {language}",
      "summaryTitle": "📊 สรุปผลสำเร็จ",
      "totalChanges": "แปลก การเปลี่ยนแปลงทั้งหมด: {totalChanges}",
      "languagesProcessed": "🌐 ภาษาที่ประมวลผล: {languagesProcessed}",
      "missingKeysAdded": "➕ เพิ่มคีย์ที่หายไป: {missingKeysAdded}",
      "nextStepsTitle": "📋 NEXT STEPS",
      "nextStep1": "1. เรียกใช้การวิเคราะห์การใช้งาน:",
      "nextStep2": "2. ตรวจสอบการแปล:",
      "nextStep3": "3. วิเคราะห์ความสมบูรณ์:",
      "allKeysAvailable": "🎉 คีย์การแปลทั้งหมดพร้อมใช้งานแล้ว!",
      "runWithoutDryRun": "💡 ทำงานโดยไม่ต้อง --dry-run เพื่อใช้การเปลี่ยนแปลง",
      "pressEnterToContinue": "กด Enter เพื่อดำเนินการต่อ..."
    },
    "updatePackage": {
      "title": "📦 อัพเดทแพ็คเกจ i18n-toolkit",
      "description": "สิ่งนี้จะอัปเดตแพ็คเกจ i18n-toolkit เป็นเวอร์ชันล่าสุดที่มีอยู่ในเวลา 23.00 น.",
      "command": "คำสั่งให้รัน",
      "confirm": "คุณแน่ใจหรือไม่ว่าต้องการดำเนินการอัปเดตต่อไป (มี/ไม่มี):",
      "updating": "กำลังอัปเดตแพ็คเกจ... อาจใช้เวลาสักครู่",
      "success": "✅ อัปเดต i18n-toolkit สำเร็จแล้ว!",
      "error": "❌ ไม่สามารถอัปเดต i18n-toolkit",
      "cancelled": "❌ ยกเลิกการอัพเดตแล้ว"
    }
  },
  "security": {
    "pathValidationFailed": "path_validation_failed",
    "invalidInputType": "invalid_input_type",
    "pathTraversalAttempt": "path_traversal_attempt",
    "pathValidated": "✅ ตรวจสอบเส้นทางสำเร็จแล้ว",
    "pathValidationError": "path_validation_error",
    "fileTooLarge": "ความปลอดภัย: ไฟล์มีขนาดใหญ่เกินไป: {filePath}",
    "fileReadError": "ความปลอดภัย: ข้อผิดพลาดในการอ่านไฟล์: {errorMessage}",
    "contentTooLargeForFile": "ความปลอดภัย: เนื้อหามีขนาดใหญ่เกินไปสำหรับไฟล์: {filePath}",
    "fileWriteError": "ความปลอดภัย: ข้อผิดพลาดในการเขียนไฟล์: {errorMessage}",
    "jsonStringTooLarge": "ความปลอดภัย: สตริง JSON ใหญ่เกินไป",
    "jsonParseError": "ความปลอดภัย: ข้อผิดพลาดในการแยกวิเคราะห์ JSON: {errorMessage}",
    "inputContainsDisallowedCharacters": "ความปลอดภัย: อินพุตมีอักขระที่ไม่ได้รับอนุญาต",
    "unknownCommandArgument": "ความปลอดภัย: อาร์กิวเมนต์คำสั่งที่ไม่รู้จัก: {key}",
    "unknown_command_argument": "ความปลอดภัย: อาร์กิวเมนต์คำสั่งที่ไม่รู้จัก: {key}",
    "unknownConfigKey": "ความปลอดภัย: คีย์การกำหนดค่าที่ไม่รู้จัก: {key}",
    "unknown_config_key": "ความปลอดภัย: คีย์การกำหนดค่าที่ไม่รู้จัก: {key}",
    "securityAlert": "[การแจ้งเตือนด้านความปลอดภัย] {timestamp}: {event}",
    "contentTooLarge": "ความปลอดภัย: เนื้อหามีขนาดใหญ่เกินไปสำหรับไฟล์: {validatedPath}",
    "inputDisallowedCharacters": "ความปลอดภัย: อินพุตมีอักขระที่ไม่ได้รับอนุญาต",
    "unknownCommandArg": "อาร์กิวเมนต์คำสั่งที่ไม่รู้จัก",
    "logMessage": "[ความปลอดภัย {level}] {timestamp}: {event}",
    "alertMessage": "[การแจ้งเตือนด้านความปลอดภัย] {timestamp}: {event}",
    "securityWarning": "[คำเตือนด้านความปลอดภัย] {timestamp}: {event}",
    "json_parse_error": "ความปลอดภัย: ข้อผิดพลาดในการแยกวิเคราะห์ JSON: {errorMessage}",
    "file_too_large": "ไฟล์มีขนาดใหญ่เกินไป",
    "file_read_error": "ข้อผิดพลาดในการอ่านไฟล์",
    "content_too_large_for_file": "เนื้อหาใหญ่เกินไปสำหรับไฟล์",
    "file_write_error": "เกิดข้อผิดพลาดในการเขียนไฟล์",
    "json_string_too_large": "สตริง Json ใหญ่เกินไป",
    "recursion_detected": "ตรวจพบการเรียกซ้ำใน {operation}",
    "operation_timeout": "หมดเวลาดำเนินการ: {operation}",
    "operation_error": "การดำเนินการผิดพลาดใน {operation}: {error}",
    "directory_read_error": "ข้อผิดพลาดในการอ่านไดเรกทอรี: {errorMessage}",
    "security_alert": "การแจ้งเตือนความปลอดภัย"
  },
  "settings-cli": {
    "settings": {
      "mainMenu": {
        "title": "เมนูหลัก:",
        "uiSettings": "การตั้งค่า UI",
        "uiSettingsDesc": "ตัวเลือกภาษา ธีม และอินเทอร์เฟซ",
        "directorySettings": "การตั้งค่าไดเรกทอรี",
        "directorySettingsDesc": "เส้นทางไดเร็กทอรีต้นทางและเอาต์พุต",
        "scriptDirectorySettings": "การตั้งค่าไดเรกทอรีสคริปต์",
        "scriptDirectorySettingsDesc": "เส้นทางไดเร็กทอรีสำหรับการดำเนินการสคริปต์แต่ละรายการ",
        "processingSettings": "การตั้งค่าการประมวลผล",
        "processingSettingsDesc": "ขนาดแบตช์ ความสอดคล้อง และประสิทธิภาพ",
        "advancedSettings": "การตั้งค่าขั้นสูง",
        "advancedSettingsDesc": "การตรวจสอบความถูกต้อง การบันทึก และตัวเลือกของผู้เชี่ยวชาญ",
        "viewAllSettings": "ดูการตั้งค่าทั้งหมด",
        "viewAllSettingsDesc": "แสดงการกำหนดค่าปัจจุบัน",
        "importExport": "นำเข้า/ส่งออก",
        "importExportDesc": "สำรองและกู้คืนการตั้งค่า",
        "resetToDefaults": "รีเซ็ตเป็นค่าเริ่มต้น",
        "resetToDefaultsDesc": "คืนค่าการตั้งค่าจากโรงงาน",
        "reportBug": "รายงานข้อผิดพลาด",
        "reportBugDesc": "ส่งรายงานปัญหาบน GitHub",
        "saveChanges": "บันทึกการเปลี่ยนแปลง",
        "saveChangesDesc": "บันทึกการตั้งค่าปัจจุบันลงในไฟล์",
        "updatePackage": "อัพเดตแพ็คเกจ",
        "updatePackageDesc": "อัพเดตแพ็คเกจ i18n-toolkit ผ่าน npm",
        "help": "ช่วย",
        "helpDesc": "แสดงข้อมูลความช่วยเหลือโดยละเอียด",
        "quit": "ล้มเลิก",
        "quitDesc": "ออกจากการตั้งค่า (พร้อมแจ้งบันทึกหากจำเป็น)",
        "unsavedChangesWarning": "⚠️ คุณยังไม่ได้บันทึกการเปลี่ยนแปลง",
        "saveChangesBeforeQuit": "คุณต้องการบันทึกการเปลี่ยนแปลงก่อนที่จะออกหรือไม่ (มี/ไม่มี):",
        "selectOption": "เลือกตัวเลือก:",
        "goodbyeMessage": "ขอขอบคุณที่ใช้ตัวจัดการการตั้งค่า i18n!"
      },
      "goodbyeMessage": "ขอขอบคุณที่ใช้ตัวจัดการการตั้งค่า i18n!",
      "relativePathHint": "ใช้เส้นทางสัมพันธ์จากไดเรกทอรีนี้ (เช่น ./src/i18n/locales)",
      "currentDirectory": "ไดเรกทอรีโครงการปัจจุบัน"
    },
    "settings_manager": {
      "error_loading_settings": "❌ เกิดข้อผิดพลาดในการโหลดการตั้งค่า:",
      "error_saving_settings": "❌ เกิดข้อผิดพลาดในการบันทึกการตั้งค่า:",
      "error_setting_value": "❌ การตั้งค่าผิดพลาด:",
      "missing_required_setting": "❌ ขาดการตั้งค่าที่จำเป็น: {prop}",
      "invalid_language": "❌ ภาษาไม่ถูกต้อง: {language}",
      "invalid_source_language": "❌ ภาษาต้นฉบับไม่ถูกต้อง: {sourceLanguage}",
      "default_languages_must_be_array": "❌ defaultLanguages ​​ต้องเป็นอาร์เรย์",
      "invalid_date_format": "❌ รูปแบบวันที่ไม่ถูกต้อง: {dateFormat}. รูปแบบที่ถูกต้อง: {validFormats}",
      "invalid_time_format": "❌ รูปแบบเวลาไม่ถูกต้อง: {timeFormat}. รูปแบบที่ถูกต้อง: {validFormats}",
      "notifications_types_must_be_object": "❌การแจ้งเตือนประเภทจะต้องเป็นวัตถุ",
      "exclude_files_must_be_array": "❌excludeFiles ต้องเป็นอาร์เรย์",
      "exclude_dirs_must_be_array": "❌ ยกเว้น Dirs จะต้องเป็นอาร์เรย์",
      "include_extensions_must_be_array": "❌ includeExtensions ต้องเป็นอาร์เรย์",
      "invalid_batch_size": "❌ ขนาดชุดไม่ถูกต้อง ต้องเป็นจำนวนบวก",
      "invalid_max_concurrent_files": "❌ ไฟล์พร้อมกันสูงสุดไม่ถูกต้อง ต้องเป็นจำนวนบวก",
      "invalid_sizing_threshold": "❌เกณฑ์ขนาดไม่ถูกต้อง ต้องเป็นจำนวนบวก",
      "invalid_timeout": "❌ หมดเวลาไม่ถูกต้อง ต้องมีอย่างน้อย 1,000ms",
      "invalid_sizing_format": "❌ รูปแบบขนาดไม่ถูกต้อง: {sizingFormat}. รูปแบบที่ถูกต้อง: {validFormats}",
      "error_validating_settings": "❌ เกิดข้อผิดพลาดในการตรวจสอบการตั้งค่า:",
      "backup_created": "📋 สร้างการสำรองข้อมูลแล้ว: {backupPath}",
      "error_creating_backup": "❌ เกิดข้อผิดพลาดในการสร้างข้อมูลสำรอง:",
      "language_not_supported": "ภาษา '{language}' ไม่รองรับ มีอยู่: {availableLanguages}",
      "ui_language_set": "🌍 ตั้งค่าภาษา UI เป็น: {language}"
    }
  },
  "settings": {
    "title": "⚙️ การจัดการการตั้งค่า",
    "separator": "============================================================",
    "goodbyeMessage": "ขอขอบคุณที่ใช้ตัวจัดการการตั้งค่า i18ntk!",
    "relativePathHint": "ใช้เส้นทางสัมพันธ์จากไดเรกทอรีนี้ (เช่น ./src/i18n/locales)",
    "currentDirectory": "ไดเรกทอรีโครงการปัจจุบัน",
    "startingSettings": "การตั้งค่าเริ่มต้น:",
    "pin": "PIN:",
    "reportBug": {
      "title": "รายงานข้อผิดพลาด",
      "description": "รายงานปัญหาหรือข้อบกพร่องใด ๆ ที่คุณพบ",
      "guidance": "หากต้องการรายงานปัญหาอย่างมีประสิทธิภาพ:",
      "checkLogs": "1. ตรวจสอบบันทึกการแก้ไขข้อบกพร่องในไดเรกทอรีโครงการของคุณ",
      "documentIssue": "2. บันทึกปัญหาพร้อมขั้นตอนในการทำซ้ำ",
      "contactSupport": "3. ติดต่อผู้ดูแลระบบหรือทีมสนับสนุนของคุณ",
      "completed": "คำแนะนำการรายงานข้อผิดพลาดปรากฏขึ้น",
      "instructions": "ปฏิบัติตามคำแนะนำข้างต้นเพื่อรายงานจุดบกพร่อง"
    },
    "mainMenu": {
      "title": "เมนูหลัก:",
      "uiSettings": "การตั้งค่า UI",
      "uiSettingsDesc": "ตัวเลือกภาษา ธีม และอินเทอร์เฟซ",
      "directorySettings": "การตั้งค่าไดเรกทอรี",
      "directorySettingsDesc": "เส้นทางไดเร็กทอรีต้นทางและเอาต์พุต",
      "processingSettings": "การตั้งค่าการประมวลผล",
      "processingSettingsDesc": "ขนาดแบตช์ ความสอดคล้อง และประสิทธิภาพ",
      "advancedSettings": "การตั้งค่าขั้นสูง",
      "advancedSettingsDesc": "การตรวจสอบความถูกต้อง การบันทึก และตัวเลือกของผู้เชี่ยวชาญ",
      "viewAllSettings": "ดูการตั้งค่าทั้งหมด",
      "viewAllSettingsDesc": "แสดงการกำหนดค่าปัจจุบัน",
      "importExport": "นำเข้า/ส่งออก",
      "updatePackage": "อัพเดตแพ็คเกจ",
      "updatePackageDesc": "อัพเดตแพ็คเกจ i18n-toolkit ผ่าน npm",
      "importExportDesc": "สำรองและกู้คืนการตั้งค่า",
      "resetToDefaults": "รีเซ็ตเป็นค่าเริ่มต้น",
      "resetToDefaultsDesc": "คืนค่าการตั้งค่าจากโรงงาน",
      "reportBug": "รายงานข้อผิดพลาด",
      "reportBugDesc": "ส่งรายงานปัญหาบน GitHub",
      "saveChanges": "บันทึกการเปลี่ยนแปลง",
      "saveChangesDesc": "บันทึกการตั้งค่าปัจจุบันลงในไฟล์",
      "help": "ช่วย",
      "helpDesc": "แสดงข้อมูลความช่วยเหลือโดยละเอียด",
      "quit": "ล้มเลิก",
      "quitDesc": "ออกจากการตั้งค่า (พร้อมแจ้งบันทึกหากจำเป็น)",
      "unsavedChangesWarning": "⚠️ คุณยังไม่ได้บันทึกการเปลี่ยนแปลง",
      "saveChangesBeforeQuit": "คุณต้องการบันทึกการเปลี่ยนแปลงก่อนที่จะออกหรือไม่ (มี/ไม่มี):",
      "selectOption": "เลือกตัวเลือก:",
      "goodbyeMessage": "ขอขอบคุณที่ใช้ตัวจัดการการตั้งค่า i18n!",
      "selectSettingPrompt": "เลือกการตั้งค่าที่จะแก้ไข (หรือ 'b' เพื่อย้อนกลับ):",
      "enterNewValue": "ป้อนค่าใหม่:",
      "updatedSuccessfully": "{setting} อัปเดตเรียบร้อยแล้ว!",
      "scriptDirectorySettings": "การตั้งค่าไดเรกทอรีสคริปต์",
      "scriptDirectoryDesc": "ระบุไดเร็กทอรีที่กำหนดเองสำหรับแต่ละสคริปต์",
      "scriptDirectorySettingsDesc": "คุณสามารถตั้งค่าไดเร็กทอรีที่กำหนดเองสำหรับแต่ละสคริปต์ได้ หากไม่ได้ตั้งค่า ระบบจะใช้การตั้งค่าส่วนกลาง",
      "currentDirectory": "ไดเรกทอรีโครงการปัจจุบัน",
      "securitySettings": "การตั้งค่าความปลอดภัย",
      "securitySettingsDesc": "PIN ผู้ดูแลระบบและตัวเลือกความปลอดภัยอื่นๆ",
      "backupSettings": "การตั้งค่าการสำรองข้อมูล",
      "backupSettingsDesc": "สำรองและกู้คืนการตั้งค่าการกำหนดค่า",
      "autoTranslate": "แปลอัตโนมัติ",
      "autoTranslateDesc": "ปรับแต่งการจัดการตัวยึดตำแหน่ง การทำงานพร้อมกัน การแบ่งกลุ่ม และรายงาน"
    },
    "updatePackage": {
      "title": "อัพเดตแพ็คเกจ",
      "description": "อัพเดตแพ็คเกจ i18n-toolkit ผ่าน npm",
      "command": "อัพเดต npm i18ntk -g",
      "success": "การอัปเดตเสร็จสมบูรณ์แล้ว",
      "failed": "การอัปเดตล้มเหลว",
      "prompt": "คุณต้องการอัปเดตแพ็คเกจตอนนี้หรือไม่? (มี/ไม่มี):",
      "promptDesc": "หมายเหตุ: สิ่งนี้จะอัปเดตแพ็คเกจ i18ntk เป็นเวอร์ชันล่าสุด",
      "confirm": "ย",
      "cancelled": "การอัปเดตถูกยกเลิก",
      "error": "ไม่สามารถอัปเดตแพ็คเกจได้",
      "updating": "กำลังอัปเดตแพ็กเกจ..."
    },
    "admin": {
      "selectOption": "เลือกตัวเลือก:",
      "updateSuccess": "อัปเดต PIN ผู้ดูแลระบบเรียบร้อยแล้ว!",
      "updateFailed": "อัปเดต PIN ของผู้ดูแลระบบไม่สำเร็จ",
      "protectionRemoved": "การป้องกัน PIN ของผู้ดูแลระบบถูกลบออก",
      "configSuccess": "กำหนดค่า PIN ผู้ดูแลระบบเรียบร้อยแล้ว!",
      "configFailed": "กำหนดค่า PIN ของผู้ดูแลระบบไม่สำเร็จ",
      "setupPinPrompt": "คุณต้องการตั้งค่า PIN ของผู้ดูแลระบบหรือไม่ (มี/ไม่มี):",
      "pinUpdatedSuccess": "อัปเดต PIN ผู้ดูแลระบบเรียบร้อยแล้ว!",
      "pinUpdatedFailed": "อัปเดต PIN ของผู้ดูแลระบบไม่สำเร็จ",
      "pinRemoved": "การป้องกัน PIN ของผู้ดูแลระบบถูกลบออก",
      "pinConfiguredSuccess": "กำหนดค่า PIN ผู้ดูแลระบบเรียบร้อยแล้ว!",
      "pinConfiguredFailed": "กำหนดค่า PIN ของผู้ดูแลระบบไม่สำเร็จ",
      "accessDenied": "❌ การเข้าถึงถูกปฏิเสธ กำลังกลับเข้าสู่เมนู",
      "setupPin": "🔐 การตั้งค่า PIN ผู้ดูแลระบบ...",
      "setupFailed": "❌ ไม่สามารถตั้งค่า PIN ผู้ดูแลระบบได้ การตั้งค่าไม่เปลี่ยนแปลง",
      "pinConfigured": "📌 PIN ผู้ดูแลระบบได้รับการกำหนดค่าแล้ว",
      "options": "ตัวเลือก:",
      "changePin": "1) เปลี่ยน PIN ที่มีอยู่",
      "removePin": "2) ลบการป้องกัน PIN",
      "cancel": "3) ยกเลิก",
      "verifyCurrentPin": "🔐 ตรวจสอบ PIN ปัจจุบันก่อน:",
      "settingNewPin": "🔄 การตั้งค่า PIN ใหม่...",
      "verifyToRemove": "🔐 ตรวจสอบ PIN ปัจจุบันเพื่อลบการป้องกัน:",
      "noPinConfigured": "🔓 ขณะนี้ไม่มีการกำหนดค่า PIN ของผู้ดูแลระบบ",
      "pinBenefits": "การตั้งค่า PIN ของผู้ดูแลระบบจะเพิ่มความปลอดภัยสำหรับ:",
      "benefitSecurity": "• การเปลี่ยนการตั้งค่าความปลอดภัย",
      "benefitAdvanced": "• การปรับเปลี่ยนการกำหนดค่าขั้นสูง",
      "benefitDebug": "• การเข้าถึงเครื่องมือแก้ไขข้อบกพร่อง",
      "benefitReset": "• การรีเซ็ตการตั้งค่า",
      "setupCancelled": "⏭️ การตั้งค่า PIN ผู้ดูแลระบบถูกยกเลิก",
      "operationCancelled": "❌ การดำเนินการถูกยกเลิก",
      "startingSettings": "🎛️ กำลังเริ่มการตั้งค่า CLI...",
      "authRequired": "🔒 ต้องมีการรับรองความถูกต้องของผู้ดูแลระบบสำหรับ: {label}",
      "pinSetupTitle": "การตั้งค่า PIN ผู้ดูแลระบบ",
      "browserOpenFailed": "ไม่สามารถเปิดเบราว์เซอร์โดยอัตโนมัติได้",
      "manualVisit": "กรุณาเยี่ยมชมด้วยตนเอง: {url}",
      "browserOpened": "✅ เปิดเบราว์เซอร์สำเร็จแล้ว!"
    },
    "importExport": {
      "title": "การตั้งค่าการนำเข้า/ส่งออก",
      "export": "การตั้งค่าการส่งออก",
      "import": "นำเข้าการตั้งค่า",
      "backup": "สร้างข้อมูลสำรอง",
      "enterFilename": "ป้อนชื่อไฟล์ (หรือกด Enter เป็นค่าเริ่มต้น):",
      "exportSuccess": "การตั้งค่าที่ส่งออกไปที่ {file}",
      "exportFailed": "ไม่สามารถส่งออกการตั้งค่า: {error}",
      "importFilename": "ป้อนชื่อไฟล์ที่จะนำเข้า:",
      "fileNotFound": "ไม่พบไฟล์.",
      "invalidFormat": "รูปแบบไฟล์การตั้งค่าไม่ถูกต้อง",
      "confirmImport": "สิ่งนี้จะแทนที่การตั้งค่าปัจจุบันทั้งหมด ดำเนินการต่อ? (มี/ไม่มี):",
      "importSuccess": "นำเข้าการตั้งค่าเรียบร้อยแล้ว",
      "importFailed": "ไม่สามารถนำเข้าการตั้งค่า: {error}",
      "backupSuccess": "สร้างข้อมูลสำรองแล้ว: {file}",
      "backupFailed": "ไม่สามารถสร้างข้อมูลสำรองได้: {error}",
      "exportFilenamePrompt": "ป้อนชื่อไฟล์ส่งออก:",
      "importConfirm": "นำเข้าไฟล์การตั้งค่านี้หรือไม่ (มี/ไม่มี):",
      "importFilenamePrompt": "ป้อนชื่อไฟล์นำเข้า:",
      "manageBackups": "จัดการการสำรองข้อมูล",
      "restore": "คืนค่าการตั้งค่า"
    },
    "selectOption": "เลือกตัวเลือก:",
    "resetToDefaultsTitle": "รีเซ็ตการตั้งค่าเป็นค่าเริ่มต้น",
    "resetWarning1": "⚠️การดำเนินการนี้จะรีเซ็ตการตั้งค่าทั้งหมดเป็นค่าเริ่มต้น",
    "resetWarning2": "การดำเนินการนี้ไม่สามารถยกเลิกได้",
    "resetConfirm": "คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ? (มี/ไม่มี):",
    "resetSuccess": "รีเซ็ตการตั้งค่าเป็นค่าเริ่มต้นสำเร็จ",
    "resetFailed": "ไม่สามารถรีเซ็ตการตั้งค่าได้: {error}",
    "resetDone": "รีเซ็ตการตั้งค่าเป็นค่าเริ่มต้นสำเร็จ",
    "resetScriptDirsDone": "ไดเร็กทอรีสคริปต์รีเซ็ตเป็นค่าเริ่มต้นของระบบสำเร็จ",
    "saveSuccess": "บันทึกการตั้งค่าเรียบร้อยแล้ว",
    "saveFailed": "ไม่สามารถบันทึกการตั้งค่า",
    "saveError": "การตั้งค่าที่ให้มาไม่ถูกต้อง",
    "pressEnter": "กด Enter เพื่อดำเนินการต่อ...",
    "initFailed": "ไม่สามารถเริ่มต้นการตั้งค่าได้: {error}",
    "invalidValueFormat": "รูปแบบค่าไม่ถูกต้อง",
    "help": {
      "title": "วิธีใช้การตั้งค่า",
      "navigationTitle": "การนำทาง",
      "navigation1": "1. การตั้งค่าทั่วไป - กำหนดค่าภาษา UI ธีม และการตั้งค่าพื้นฐาน",
      "navigation2": "2. การตั้งค่าไดเร็กทอรี - ตั้งค่าไดเร็กทอรีต้นทางและเอาต์พุตสำหรับไฟล์การแปล",
      "navigation3": "3. การตั้งค่าการประมวลผล - กำหนดขนาดแบทช์ การทำงานพร้อมกัน และตัวเลือกประสิทธิภาพ",
      "navigation4": "4. การตั้งค่าขั้นสูง - ตัวเลือกการตรวจสอบการเข้าถึง การบันทึก และการกำหนดค่าของผู้เชี่ยวชาญ",
      "categoriesTitle": "หมวดหมู่การตั้งค่า",
      "categoryUI": "• การตั้งค่า UI: ภาษาอินเทอร์เฟซ ธีมสี และการตั้งค่าการแสดงผล",
      "categoryDirectory": "• การตั้งค่าไดเร็กทอรี: ตำแหน่งไฟล์ต้นฉบับและไดเร็กทอรีรายงานเอาต์พุต",
      "categoryProcessing": "• การตั้งค่าการประมวลผล: การประมวลผลเป็นชุด ขีดจำกัดไฟล์ และการปรับแต่งประสิทธิภาพ",
      "categoryAdvanced": "• การตั้งค่าขั้นสูง: โหมดแก้ไขข้อบกพร่อง การบันทึกการตรวจสอบ และตัวเลือกความปลอดภัย",
      "envVarsTitle": "ตัวแปรสภาพแวดล้อม",
      "envVar1": "• I18N_SOURCE_DIR: แทนที่เส้นทางไดเรกทอรีต้นทางเริ่มต้น",
      "envVar2": "• I18N_OUTPUT_DIR: แทนที่เส้นทางไดเรกทอรีเอาต์พุตเริ่มต้น",
      "envVar3": "• I18N_DEBUG: เปิดใช้งานโหมดดีบัก (จริง/เท็จ)",
      "cliUsageTitle": "ตัวอย่างการใช้งาน CLI",
      "cliUsage1": "• npx i18ntk --settings: เปิดเมนูการตั้งค่าแบบโต้ตอบ",
      "cliUsage2": "• npx i18ntk --settings --lang de: เปิดการตั้งค่าเป็นภาษาเยอรมัน",
      "cliUsage3": "• npx i18ntk --reset-settings: รีเซ็ตการตั้งค่าทั้งหมดเป็นค่าเริ่มต้น",
      "navigation": "ใช้ปุ่มตัวเลขเพื่อเลือกตัวเลือก 'b' เพื่อย้อนกลับ",
      "editing": "ป้อนค่าใหม่เมื่อได้รับแจ้ง หรือกด Enter เพื่อให้เป็นค่าปัจจุบัน",
      "saving": "ใช้ 's' เพื่อบันทึกการเปลี่ยนแปลงก่อนที่จะออก",
      "reset": "ใช้ตัวเลือก 7 เพื่อรีเซ็ตการตั้งค่าทั้งหมดเป็นค่าเริ่มต้น"
    },
    "categories": {
      "uiSettings": "การตั้งค่า UI",
      "directorySettings": "การตั้งค่าไดเรกทอรี",
      "processingSettings": "การตั้งค่าการประมวลผล",
      "advancedSettings": "การตั้งค่าขั้นสูง",
      "scriptDirectorySettings": "การตั้งค่าไดเรกทอรีสคริปต์",
      "securitySettings": "การตั้งค่าความปลอดภัย",
      "autoTranslate": "การตั้งค่าการแปลอัตโนมัติ"
    },
    "security": {
      "title": "🔐 การตั้งค่าความปลอดภัย",
      "description": "กำหนดค่าตัวเลือกการป้องกัน PIN และความปลอดภัยของผู้ดูแลระบบ",
      "currentPin": "รหัส PIN ปัจจุบัน:",
      "pinConfigured": "✅ กำหนดค่าแล้ว",
      "pinNotConfigured": "❌ไม่ได้กำหนดค่า",
      "pinDisplay": "จอแสดงผลพิน:",
      "menu": {
        "enableDisable": "1) เปิด/ปิดการใช้งาน PIN ผู้ดูแลระบบ",
        "setupChange": "2) ตั้งค่า/เปลี่ยน PIN ผู้ดูแลระบบ",
        "sessionTimeout": "3) หมดเวลาเซสชัน",
        "maxAttempts": "4) ความพยายามสูงสุดที่ล้มเหลว",
        "lockoutDuration": "5) ระยะเวลาการล็อก",
        "back": "b) กลับสู่เมนูหลัก"
      },
      "prompts": {
        "enablePin": "เปิดใช้งานการป้องกัน PIN ของผู้ดูแลระบบไหม (มี/ไม่มี):",
        "disablePin": "ปิดใช้งานการป้องกัน PIN ของผู้ดูแลระบบใช่ไหม (มี/ไม่มี):",
        "enterTimeout": "ป้อนการหมดเวลาเซสชัน (นาที):",
        "enterMaxAttempts": "ป้อนความพยายามที่ล้มเหลวสูงสุด:",
        "enterLockoutDuration": "ป้อนระยะเวลาการล็อค (นาที):"
      },
      "messages": {
        "pinEnabled": "เปิดใช้งานการป้องกัน PIN ของผู้ดูแลระบบแล้ว",
        "pinDisabled": "การป้องกัน PIN ของผู้ดูแลระบบถูกปิดใช้งาน",
        "timeoutUpdated": "หมดเวลาเซสชันอัปเดตเป็น {minutes} นาที",
        "maxAttemptsUpdated": "ความพยายามที่ล้มเหลวสูงสุดได้รับการอัปเดตเป็น {attempts}",
        "lockoutDurationUpdated": "ระยะเวลาการล็อคได้รับการอัปเดตเป็น {minutes} นาที"
      }
    },
    "fields": {
      "backup.enabled": {
        "label": "Enable Backup",
        "description": "Enable automatic backup of settings",
        "help": "Enable/disable backup feature"
      },
      "backup.singleFileMode": {
        "label": "Single File Mode",
        "description": "Use single file for backups",
        "help": "Backup settings in a single file"
      },
      "backup.singleBackupFile": {
        "label": "Backup File Path",
        "description": "Path to the backup file",
        "help": "Path to the single backup file"
      },
      "backup.retentionDays": {
        "label": "Retention Period",
        "description": "Days to keep backup files",
        "help": "Number of days to retain old backup files"
      },
      "backup.maxBackups": {
        "label": "Maximum Backups",
        "description": "Maximum backup files to keep",
        "help": "Maximum number of backup files to keep"
      },
      "backup.confirm": {
        "label": "Confirm Backup",
        "description": "Require confirmation for backup operations",
        "help": "Confirm backup operation"
      },
      "i18nDir": {
        "label": "ไดเรกทอรี I18n",
        "description": "ไดเร็กทอรีที่มีไฟล์การแปล",
        "current": "ปัจจุบัน: {value}",
        "help": "พาธไปยังไดเร็กทอรีที่มีไฟล์การแปล"
      },
      "projectRoot": {
        "label": "รากของโครงการ",
        "description": "ไดเรกทอรีรากของโครงการ",
        "current": "ปัจจุบัน: {value}",
        "help": "พาธไปยังไดเร็กทอรีรากของโปรเจ็กต์"
      },
      "checkUsage": {
        "usage_analysis_failed": "การวิเคราะห์การใช้งานล้มเหลว",
        "usage_analysis_success": "วิเคราะห์การใช้งานสำเร็จ",
        "usage_analysis_complete": "การวิเคราะห์การใช้งานเสร็จสมบูรณ์",
        "usage_analysis_in_progress": "อยู่ระหว่างการวิเคราะห์การใช้งาน",
        "usage_analysis_started": "การวิเคราะห์การใช้งานเริ่มต้นขึ้น",
        "usage_analysis_skipped": "ข้ามการวิเคราะห์การใช้งานแล้ว"
      },
      "language": {
        "label": "ภาษาอินเทอร์เฟซ",
        "description": "ภาษาสำหรับอินเทอร์เฟซผู้ใช้",
        "current": "ปัจจุบัน: {value}",
        "help": "เลือกภาษาอินเทอร์เฟซที่คุณต้องการ"
      },
      "scriptDirectories": {
        "analyzeLabel": "วิเคราะห์ไดเร็กทอรีสคริปต์",
        "analyzeHelp": "วิเคราะห์ไดเรกทอรีสคริปต์สำหรับปัญหา",
        "completeLabel": "ไดเรกทอรีการตั้งค่าเสร็จสมบูรณ์",
        "initLabel": "เริ่มต้นไดเร็กทอรีสคริปต์",
        "manageLabel": "จัดการไดเรกทอรีสคริปต์",
        "sizingLabel": "การปรับขนาดไดเร็กทอรีสคริปต์",
        "summaryLabel": "ไดเรกทอรีรายงานสรุป",
        "usageLabel": "ไดเรกทอรีรายงานการใช้งาน",
        "validateLabel": "ตรวจสอบไดเรกทอรีสคริปต์"
      },
      "theme": {
        "label": "ธีมสี",
        "description": "การตั้งค่าธีม UI",
        "current": "ปัจจุบัน: {value}",
        "help": "เลือกระหว่างธีมสว่างและธีมมืด"
      },
      "dateFormat": {
        "label": "รูปแบบวันที่",
        "description": "รูปแบบการแสดงวันที่",
        "current": "ปัจจุบัน: {value}",
        "help": "เลือกวิธีแสดงวันที่ในรายงาน"
      },
      "notifications": {
        "enabled": {
          "label": "เปิดใช้งานการแจ้งเตือน",
          "description": "แสดงการแจ้งเตือนบนเดสก์ท็อป",
          "current": "ปัจจุบัน: {value}",
          "help": "เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อปสำหรับการดำเนินการที่เสร็จสมบูรณ์"
        }
      },
      "sourceDir": {
        "label": "ไดเรกทอรีต้นทาง",
        "description": "ไดเร็กทอรีที่มีไฟล์การแปล",
        "current": "ปัจจุบัน: {value}",
        "help": "พาธไปยังไดเร็กทอรีที่มีไฟล์การแปลต้นฉบับ"
      },
      "sourceLanguage": {
        "label": "ภาษาต้นฉบับ",
        "description": "ภาษาหลักสำหรับการแปล",
        "current": "ปัจจุบัน: {value}",
        "help": "ภาษาหลักที่ใช้เป็นแหล่งที่มาในการแปล"
      },
      "outputDir": {
        "label": "ไดเร็กทอรีเอาท์พุต",
        "description": "ไดเร็กทอรีสำหรับรายงานที่สร้างขึ้น",
        "current": "ปัจจุบัน: {value}",
        "help": "ตำแหน่งที่รายงานและไฟล์ที่ประมวลผลจะถูกบันทึก"
      },
      "batchSize": {
        "label": "ขนาดแบทช์",
        "description": "จำนวนสินค้าที่ประมวลผลต่อชุด",
        "current": "ปัจจุบัน: {value}",
        "help": "จำนวนไฟล์ที่ต้องประมวลผลในแต่ละชุด"
      },
      "maxConcurrentFiles": {
        "label": "ไฟล์สูงสุดที่เกิดขึ้นพร้อมกัน",
        "description": "ไฟล์สูงสุดที่ประมวลผลพร้อมกัน",
        "current": "ปัจจุบัน: {value}",
        "help": "จำนวนไฟล์สูงสุดที่จะประมวลผลในเวลาเดียวกัน"
      },
      "sizingThreshold": {
        "label": "เกณฑ์การกำหนดขนาด (%)",
        "description": "เกณฑ์สำหรับคำเตือนการเปลี่ยนแปลงขนาด",
        "current": "ปัจจุบัน: {value}%",
        "help": "เกณฑ์เปอร์เซ็นต์สำหรับการตรวจหาขนาดที่ไม่ตรงกัน"
      },
      "strictMode": {
        "label": "โหมดการตรวจสอบอย่างเข้มงวด",
        "description": "เปิดใช้งานโหมดการตรวจสอบที่เข้มงวด",
        "current": "ปัจจุบัน: {value}",
        "help": "เปิดใช้งานการตรวจสอบอย่างเข้มงวดสำหรับไฟล์การแปล"
      },
      "enableAuditLog": {
        "label": "เปิดใช้งานบันทึกการตรวจสอบ",
        "description": "ติดตามการเปลี่ยนแปลงการแปลทั้งหมด",
        "current": "ปัจจุบัน: {value}",
        "help": "บันทึกการเปลี่ยนแปลงทั้งหมดที่ทำกับไฟล์การแปล"
      },
      "backupBeforeChanges": {
        "label": "การสำรองข้อมูลอัตโนมัติ",
        "description": "สร้างการสำรองข้อมูลก่อนที่จะแก้ไข",
        "current": "ปัจจุบัน: {value}",
        "help": "สร้างการสำรองข้อมูลโดยอัตโนมัติก่อนทำการเปลี่ยนแปลง"
      },
      "advanced_maxConcurrentFiles": {
        "label": "ไฟล์สูงสุดที่เกิดขึ้นพร้อมกัน",
        "description": "ไฟล์สูงสุดที่ประมวลผลพร้อมกัน",
        "current": "ปัจจุบัน: {value}",
        "help": "จำนวนไฟล์สูงสุดที่จะประมวลผลในเวลาเดียวกัน"
      },
      "advanced_strictMode": {
        "label": "โหมดการตรวจสอบอย่างเข้มงวด",
        "description": "เปิดใช้งานโหมดการตรวจสอบที่เข้มงวด",
        "current": "ปัจจุบัน: {value}",
        "help": "เปิดใช้งานการตรวจสอบอย่างเข้มงวดสำหรับไฟล์การแปล"
      },
      "adminPinEnabled": {
        "label": "การป้องกัน PIN ของผู้ดูแลระบบ",
        "description": "เปิดใช้งานการตรวจสอบสิทธิ์ PIN ของผู้ดูแลระบบสำหรับการตั้งค่าที่ละเอียดอ่อน",
        "current": "ปัจจุบัน: {value}",
        "help": "ต้องใช้ PIN ของผู้ดูแลระบบเพื่อเปลี่ยนความปลอดภัยและการตั้งค่าขั้นสูง"
      },
      "sessionTimeout": {
        "label": "หมดเวลาเซสชัน",
        "description": "หมดเวลาเซสชันผู้ดูแลระบบในไม่กี่นาที",
        "current": "ปัจจุบัน: {value} นาที",
        "help": "ระยะเวลาที่เซสชันผู้ดูแลระบบยังคงใช้งานได้ก่อนที่จะต้องมีการตรวจสอบสิทธิ์อีกครั้ง"
      },
      "maxFailedAttempts": {
        "label": "ความพยายามสูงสุดล้มเหลว",
        "description": "จำนวนครั้งในการพยายาม PIN ที่ล้มเหลวสูงสุดก่อนการล็อก",
        "current": "ปัจจุบัน: {value} ความพยายาม",
        "help": "จำนวนครั้งในการพยายามป้อน PIN ที่ล้มเหลวที่อนุญาตก่อนการล็อกชั่วคราว"
      },
      "lockoutDuration": {
        "label": "ระยะเวลาการล็อค",
        "description": "ระยะเวลาของการล็อกหลังจากพยายามล้มเหลว",
        "current": "ปัจจุบัน: {value} นาที",
        "help": "ระยะเวลาที่ระบบยังคงล็อคอยู่หลังจากพยายามล้มเหลวสูงสุดแล้ว"
      },
      "scriptDirectories_analyze": {
        "label": "วิเคราะห์ไดเร็กทอรีสคริปต์",
        "description": "ไดเร็กทอรีที่กำหนดเองสำหรับสคริปต์วิเคราะห์",
        "current": "ปัจจุบัน: {value}",
        "help": "ระบุไดเร็กทอรีต้นทางที่กำหนดเองสำหรับสคริปต์วิเคราะห์ เว้นว่างไว้เพื่อใช้การตั้งค่าส่วนกลาง"
      },
      "scriptDirectories_complete": {
        "label": "ไดเรกทอรีการตั้งค่าเสร็จสมบูรณ์",
        "description": "ไดเร็กทอรีที่กำหนดเองสำหรับสคริปต์การตั้งค่าที่สมบูรณ์",
        "current": "ปัจจุบัน: {value}",
        "help": "ระบุไดเร็กทอรีต้นทางที่กำหนดเองสำหรับสคริปต์การตั้งค่าที่สมบูรณ์ เว้นว่างไว้เพื่อใช้การตั้งค่าส่วนกลาง"
      },
      "scriptDirectories_init": {
        "label": "เริ่มต้นไดเร็กทอรีสคริปต์",
        "description": "ไดเร็กทอรีที่กำหนดเองสำหรับการเริ่มต้นสคริปต์",
        "current": "ปัจจุบัน: {value}",
        "help": "ระบุไดเร็กทอรีต้นทางที่กำหนดเองสำหรับสคริปต์เตรียมใช้งาน เว้นว่างไว้เพื่อใช้การตั้งค่าส่วนกลาง"
      },
      "scriptDirectories_manage": {
        "label": "จัดการไดเรกทอรีสคริปต์",
        "description": "ไดเร็กทอรีที่กำหนดเองสำหรับจัดการสคริปต์",
        "current": "ปัจจุบัน: {value}",
        "help": "ระบุไดเร็กทอรีต้นทางที่กำหนดเองสำหรับสคริปต์จัดการ เว้นว่างไว้เพื่อใช้การตั้งค่าส่วนกลาง"
      },
      "scriptDirectories_sizing": {
        "label": "การปรับขนาดไดเร็กทอรีสคริปต์",
        "description": "ไดเร็กทอรีที่กำหนดเองสำหรับการปรับขนาดสคริปต์",
        "current": "ปัจจุบัน: {value}",
        "help": "ระบุไดเร็กทอรีต้นทางที่กำหนดเองสำหรับสคริปต์การกำหนดขนาด เว้นว่างไว้เพื่อใช้การตั้งค่าส่วนกลาง"
      },
      "scriptDirectories_summary": {
        "label": "ไดเรกทอรีรายงานสรุป",
        "description": "ไดเร็กทอรีที่กำหนดเองสำหรับสคริปต์รายงานสรุป",
        "current": "ปัจจุบัน: {value}",
        "help": "ระบุไดเร็กทอรีต้นทางที่กำหนดเองสำหรับสคริปต์รายงานสรุป เว้นว่างไว้เพื่อใช้การตั้งค่าส่วนกลาง"
      },
      "scriptDirectories_usage": {
        "label": "ไดเรกทอรีรายงานการใช้งาน",
        "description": "ไดเร็กทอรีที่กำหนดเองสำหรับสคริปต์รายงานการใช้งาน",
        "current": "ปัจจุบัน: {value}",
        "help": "ระบุไดเร็กทอรีต้นทางที่กำหนดเองสำหรับสคริปต์รายงานการใช้งาน เว้นว่างไว้เพื่อใช้การตั้งค่าส่วนกลาง"
      },
      "scriptDirectories_validate": {
        "label": "ตรวจสอบไดเรกทอรีสคริปต์",
        "description": "ไดเร็กทอรีที่กำหนดเองสำหรับตรวจสอบสคริปต์",
        "current": "ปัจจุบัน: {value}",
        "help": "ระบุไดเร็กทอรีต้นทางที่กำหนดเองสำหรับสคริปต์ตรวจสอบ เว้นว่างไว้เพื่อใช้การตั้งค่าส่วนกลาง"
      },
      "security_adminPinEnabled": {
        "label": "การป้องกัน PIN ของผู้ดูแลระบบ",
        "description": "เปิดใช้งานการตรวจสอบสิทธิ์ PIN ของผู้ดูแลระบบสำหรับการตั้งค่าที่ละเอียดอ่อน",
        "current": "ปัจจุบัน: {value}",
        "help": "ต้องใช้ PIN ของผู้ดูแลระบบเพื่อเปลี่ยนความปลอดภัยและการตั้งค่าขั้นสูง"
      },
      "fields": {
        "adminPinEnabled": {
          "label": "การป้องกัน PIN ของผู้ดูแลระบบ",
          "description": "เปิดใช้งานการตรวจสอบสิทธิ์ PIN ของผู้ดูแลระบบสำหรับการตั้งค่าที่ละเอียดอ่อน",
          "help": "ต้องใช้ PIN ของผู้ดูแลระบบเพื่อเปลี่ยนความปลอดภัยและการตั้งค่าขั้นสูง"
        }
      },
      "security_pinProtection_enabled": {
        "label": "การป้องกันรหัส PIN",
        "description": "เปิดใช้งานการป้องกัน PIN สำหรับการตั้งค่าที่ละเอียดอ่อน",
        "current": "ปัจจุบัน: {value}",
        "help": "ต้องใช้ PIN เพื่อเปลี่ยนความปลอดภัยและการตั้งค่าขั้นสูง"
      },
      "pinProtection_configure": {
        "label": "กำหนดค่าสคริปต์ที่ป้องกันด้วย PIN",
        "description": "กำหนดค่าสคริปต์ที่ต้องการการป้องกันด้วย PIN",
        "help": "เลือกสคริปต์แต่ละรายการที่ต้องมีการตรวจสอบสิทธิ์ PIN"
      },
      "pinProtection_debugMenu": {
        "label": "เมนูเครื่องมือแก้ไขข้อบกพร่อง",
        "description": "ต้องใช้ PIN สำหรับเมนูเครื่องมือแก้ไขข้อบกพร่อง",
        "current": "ปัจจุบัน: {value}",
        "help": "เปิดใช้งานการป้องกัน PIN สำหรับการเข้าถึงเครื่องมือแก้ไขข้อบกพร่อง"
      },
      "pinProtection_deleteReports": {
        "label": "ลบรายงาน",
        "description": "ต้องใช้ PIN สำหรับการลบรายงาน",
        "current": "ปัจจุบัน: {value}",
        "help": "เปิดใช้งานการป้องกัน PIN สำหรับการลบรายงาน"
      },
      "pinProtection_summaryReports": {
        "label": "รายงานสรุป",
        "description": "ต้องใช้ PIN สำหรับรายงานสรุป",
        "current": "ปัจจุบัน: {value}",
        "help": "เปิดใช้งานการป้องกัน PIN เพื่อสร้างรายงานสรุป"
      },
      "pinProtection_settingsMenu": {
        "label": "เมนูการตั้งค่า",
        "description": "ต้องใช้ PIN สำหรับเมนูการตั้งค่า",
        "current": "ปัจจุบัน: {value}",
        "help": "เปิดใช้งานการป้องกัน PIN สำหรับการเข้าถึงการตั้งค่า"
      },
      "pinProtection_initScript": {
        "label": "เริ่มต้นสคริปต์",
        "description": "ต้องใช้ PIN เพื่อเริ่มต้นสคริปต์",
        "current": "ปัจจุบัน: {value}",
        "help": "เปิดใช้งานการป้องกัน PIN สำหรับการเรียกใช้สคริปต์เริ่มต้น"
      },
      "pinProtection_resetDefaults": {
        "label": "รีเซ็ตการป้องกัน PIN",
        "description": "รีเซ็ตการตั้งค่าการป้องกัน PIN ทั้งหมดเป็นค่าเริ่มต้น",
        "help": "รีเซ็ตการป้องกัน PIN สคริปต์แต่ละรายการทั้งหมดเป็นค่าเริ่มต้น"
      },
      "removeUiLanguages": {
        "label": "ลบภาษา UI",
        "description": "ลบภาษา UI ที่ไม่ได้ติดตั้ง",
        "help": "ลบภาษา UI ที่ไม่ได้ติดตั้งบนระบบ"
      },
      "${helperKey}": {
        "help": "ช่วย"
      },
      "reports_format": {
        "label": "รูปแบบรายงาน",
        "help": "เลือกมาร์กดาวน์สำหรับรายงานที่อ่านได้, json สำหรับการทำงานอัตโนมัติ หรือข้อความสำหรับบันทึกธรรมดา"
      },
      "autoTranslate_placeholderMode": {
        "label": "โหมดการจัดการตัวยึดตำแหน่ง",
        "help": "วิธีจัดการสตริงที่มีตัวยึดตำแหน่งระหว่างการแปลอัตโนมัติ"
      },
      "autoTranslate_concurrency": {
        "label": "การร้องขอการแปลพร้อมกัน",
        "help": "คำขอของผู้ให้บริการพร้อมกันสูงสุด Google รองรับมากถึง 100 รายการใน i18ntk DeepL และ LibreTranslate ถูกจำกัดไว้ด้านล่าง"
      },
      "autoTranslate_batchSize": {
        "label": "ส่วนข้อความต่อชุด",
        "help": "จำนวนส่วนของข้อความที่กำหนดเวลาไว้ต่อชุด"
      },
      "autoTranslate_progressInterval": {
        "label": "ช่วงการอัพเดตความคืบหน้า",
        "help": "ส่วนข้อความที่สมบูรณ์ระหว่างการอัปเดตความคืบหน้า"
      },
      "autoTranslate_retryCount": {
        "label": "ลองนับอีกครั้ง",
        "help": "การลองใหม่สูงสุดต่อคำขอที่ล้มเหลว"
      },
      "autoTranslate_retryDelay": {
        "label": "ความล่าช้าในการลองอีกครั้ง (มิลลิวินาที)",
        "help": "ความล่าช้าในการลองพื้นฐานอีกครั้งในหน่วยมิลลิวินาที"
      },
      "autoTranslate_timeout": {
        "label": "คำขอหมดเวลา (มิลลิวินาที)",
        "help": "คำขอของผู้ให้บริการแปลหมดเวลา"
      },
      "autoTranslate_dryRunFirst": {
        "label": "ดูตัวอย่างการทดลองเรียกใช้ก่อน",
        "help": "ดูตัวอย่างสิ่งที่จะแปลก่อนที่จะเขียนไฟล์"
      },
      "autoTranslate_onlyMissingOrEnglish": {
        "label": "ขาดหายไปหรือคีย์ภาษาอังกฤษเท่านั้น",
        "help": "เก็บค่าเป้าหมายที่แปลที่มีอยู่และแปลเฉพาะค่าที่หายไป เครื่องหมาย สำเนาต้นฉบับ หรือค่าภาษาอังกฤษที่เป็นไปได้"
      },
      "autoTranslate_reportStdout": {
        "label": "พิมพ์รายงานไปยังเทอร์มินัล",
        "help": "พิมพ์รายงานหลังการแปลไปที่ stdout"
      },
      "autoTranslate_bom": {
        "label": "เขียน UTF-8 BOM",
        "help": "เขียนไฟล์ JSON ที่แปลแล้วด้วย UTF-8 BOM"
      },
      "autoTranslate_protectionEnabled": {
        "label": "ปกป้องเงื่อนไข กุญแจ ค่านิยมของแบรนด์",
        "help": "เปิดใช้งานคำ คีย์ ค่า และรูปแบบที่ได้รับการป้องกันซึ่งผู้ใช้แก้ไขได้"
      },
      "autoTranslate_protectionFile": {
        "label": "ไฟล์ JSON การป้องกัน",
        "help": "ไฟล์โปรเจ็กต์ JSON ที่มีกฎการป้องกันการแปลอัตโนมัติ"
      },
      "autoTranslate_promptProtectionSetup": {
        "label": "ขอให้สร้างไฟล์ป้องกัน",
        "help": "ขอให้สร้างไฟล์ป้องกันเมื่อการแปลอัตโนมัติทำงานครั้งแรก"
      },
      "autoTranslate_promptProtectionUpdate": {
        "label": "ขอให้ปรับปรุงกฎการป้องกัน",
        "help": "ถามว่าจะอัปเดตกฎการป้องกันก่อนการแปลโดยผู้จัดการหรือไม่"
      },
      "backup": {
        "enabled": {
          "label": "เปิดใช้งานการสำรองข้อมูล",
          "description": "เปิดใช้งานการสำรองข้อมูลการตั้งค่าอัตโนมัติ",
          "help": "เปิด/ปิดคุณสมบัติการสำรองข้อมูล"
        },
        "singleFileMode": {
          "label": "โหมดไฟล์เดี่ยว",
          "description": "ใช้ไฟล์เดียวในการสำรองข้อมูล",
          "help": "สำรองข้อมูลการตั้งค่าในไฟล์เดียว"
        },
        "singleBackupFile": {
          "label": "เส้นทางไฟล์สำรอง",
          "description": "เส้นทางไปยังไฟล์สำรอง",
          "help": "เส้นทางไปยังไฟล์สำรองข้อมูลเดียว"
        },
        "retentionDays": {
          "label": "ระยะเวลาการเก็บรักษา",
          "description": "จำนวนวันในการเก็บไฟล์สำรอง",
          "help": "จำนวนวันในการเก็บรักษาไฟล์สำรองข้อมูลเก่า"
        },
        "maxBackups": {
          "label": "การสำรองข้อมูลสูงสุด",
          "description": "จำนวนไฟล์สำรองสูงสุดที่จะเก็บไว้",
          "help": "จำนวนไฟล์สำรองข้อมูลสูงสุดที่จะเก็บไว้"
        },
        "confirm": {
          "label": "ยืนยันการสำรองข้อมูล",
          "description": "ต้องมีการยืนยันสำหรับการดำเนินการสำรองข้อมูล",
          "help": "ยืนยันการดำเนินการสำรองข้อมูล"
        }
      }
    },
    "actions": {
      "editSetting": "แก้ไข {setting}:",
      "settingUpdated": "✅ {setting} อัปเดตเรียบร้อยแล้ว!",
      "invalidValue": "❌ค่าไม่ถูกต้อง. โปรดลองอีกครั้ง",
      "pressEnter": "กด Enter เพื่อดำเนินการต่อ...",
      "backToMenu": "กลับสู่เมนูหลัก",
      "saveSuccess": "✅ บันทึกการตั้งค่าเรียบร้อยแล้ว!",
      "saveFailed": "❌ ไม่สามารถบันทึกการตั้งค่า: {error}",
      "resetConfirm": "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตการตั้งค่าทั้งหมดเป็นค่าเริ่มต้น (มี/ไม่มี):",
      "resetSuccess": "✅ รีเซ็ตการตั้งค่าเป็นค่าเริ่มต้นสำเร็จแล้ว!",
      "importSuccess": "✅ นำเข้าการตั้งค่าเรียบร้อยแล้ว!",
      "exportSuccess": "✅ ส่งออกการตั้งค่าเรียบร้อยแล้ว!",
      "fileNotFound": "❌ ไม่พบไฟล์: {path}",
      "invalidFormat": "❌ รูปแบบไฟล์การตั้งค่าไม่ถูกต้อง",
      "pinProtectionUpdated": "✅ การป้องกัน PIN สำหรับ {script} อัปเดตเรียบร้อยแล้ว!",
      "pinProtectionReset": "✅ การตั้งค่าการป้องกัน PIN ทั้งหมดรีเซ็ตเป็นค่าเริ่มต้น!",
      "pinProtectionConfigure": "กำหนดค่าการป้องกัน PIN สำหรับแต่ละสคริปต์",
      "pinProtectionSelectScript": "เลือกสคริปต์เพื่อสลับการป้องกัน PIN:",
      "pinProtectionCurrentStatus": "สถานะปัจจุบัน: {status}",
      "pinProtectionEnabled": "เปิดใช้งานแล้ว",
      "pinProtectionDisabled": "พิการ",
      "pinProtectionToggle": "สลับการป้องกัน PIN",
      "pinProtectionResetAll": "รีเซ็ตทั้งหมดเป็นค่าเริ่มต้น",
      "pinProtectionBack": "กลับไปที่การตั้งค่าความปลอดภัย"
    },
    "themes": {
      "light": "แสงสว่าง",
      "dark": "มืด",
      "system": "ระบบ"
    },
    "languages": {
      "en": "ภาษาอังกฤษ",
      "de": "เยอรมัน",
      "es": "สเปน",
      "fr": "ภาษาฝรั่งเศส",
      "ru": "ภาษารัสเซีย",
      "ja": "ญี่ปุ่น",
      "zh": "ชาวจีน",
      "it": "อิตาลี",
      "pt": "โปรตุเกส",
      "nl": "ดัตช์",
      "pl": "โปแลนด์",
      "sv": "สวีเดน",
      "uk": "ยูเครน",
      "cs": "เช็ก",
      "tr": "ตุรกี",
      "ko": "เกาหลี",
      "ar": "อาหรับ",
      "hi": "ฮินดี",
      "th": "ไทย",
      "vi": "เวียดนาม",
      "he": "ฮิบรู",
      "el": "กรีก",
      "hu": "ฮังการี"
    },
    "viewAll": {
      "title": "ดูการตั้งค่าทั้งหมด"
    },
    "current": "ปัจจุบัน",
    "back": "กลับสู่เมนูหลัก",
    "selectSettingPrompt": "เลือกการตั้งค่าที่จะแก้ไข (หรือ b สำหรับด้านหลัง, r สำหรับรีเซ็ต):",
    "invalidOption": "ตัวเลือกไม่ถูกต้อง",
    "editing": "การแก้ไข",
    "enterNewValue": "ป้อนค่าใหม่ (หรือกด Enter เพื่อรักษาค่าปัจจุบัน พิมพ์ 'default' เพื่อใช้ค่าเริ่มต้นของระบบ):",
    "validOptions": "ตัวเลือกที่ถูกต้อง",
    "updatedSuccessfully": "อัปเดตเรียบร้อยแล้ว!",
    "noHelp": "ไม่มีความช่วยเหลือสำหรับการตั้งค่านี้",
    "resetScriptDirectories": "รีเซ็ตเป็นค่าเริ่มต้น",
    "resetScriptDirectoriesTitle": "รีเซ็ตไดเร็กทอรีสคริปต์เป็นค่าเริ่มต้น",
    "resetScriptDirectoriesWarning1": "การดำเนินการนี้จะรีเซ็ตการกำหนดค่าไดเรกทอรีสคริปต์ทั้งหมดเป็นค่าเริ่มต้นของระบบ",
    "resetScriptDirectoriesWarning2": "เส้นทางไดเรกทอรีที่กำหนดเองทั้งหมดจะถูกล้าง การดำเนินการนี้ไม่สามารถยกเลิกได้",
    "resetScriptDirectoriesConfirm": "คุณแน่ใจหรือไม่ว่าต้องการรีเซ็ตไดเรกทอรีสคริปต์ทั้งหมดเป็นค่าเริ่มต้น (มี/ไม่มี):",
    "backup": {
      "title": "การตั้งค่าการสำรองข้อมูล",
      "description": "สำรองการตั้งค่าปัจจุบันไปยังไฟล์",
      "confirm": "คุณแน่ใจหรือไม่ว่าต้องการสำรองข้อมูลการตั้งค่าปัจจุบัน (มี/ไม่มี):",
      "success": "✅ สำรองข้อมูลการตั้งค่าเรียบร้อยแล้ว {backupFile}",
      "failed": "❌ การตั้งค่าการสำรองข้อมูลล้มเหลว: {error}",
      "enabled": "เปิดใช้งานการสำรองข้อมูล",
      "enabledHelp": "เปิด/ปิดคุณสมบัติการสำรองข้อมูล",
      "singleFileMode": "โหมดไฟล์เดี่ยว",
      "singleFileModeHelp": "สำรองข้อมูลการตั้งค่าในไฟล์เดียว",
      "singleBackupFile": "ไฟล์สำรองข้อมูลเดี่ยว",
      "singleBackupFileHelp": "เส้นทางไปยังไฟล์สำรองข้อมูลเดียว",
      "retentionDays": "วันเก็บรักษา",
      "retentionDaysHelp": "จำนวนวันในการเก็บรักษาไฟล์สำรองข้อมูลเก่า",
      "maxBackups": "การสำรองข้อมูลสูงสุด",
      "maxBackupsHelp": "จำนวนไฟล์สำรองข้อมูลสูงสุดที่จะเก็บไว้",
      "confirmHelp": "ยืนยันการดำเนินการสำรองข้อมูล",
      "confirmYes": "ใช่",
      "confirmNo": "เลขที่"
    },
    "validation": {
      "valid": "ถูกต้อง",
      "validatingPaths": "กำลังตรวจสอบเส้นทางที่กำหนดค่า...",
      "validationComplete": "การตรวจสอบเส้นทางเสร็จสมบูรณ์: {valid}/{total} ถูกต้อง."
    }
  },
  "summary": {
    "separator": "============================================================",
    "configurationTitle": "???? การกำหนดค่า:",
    "sourceLanguage": "ภาษาต้นฉบับ: {sourceLanguage}",
    "supportedExtensions": "ส่วนขยายที่รองรับ: {extensions}",
    "excludedFiles": "ไฟล์ที่ยกเว้น: {files}",
    "reportContent": "{report}",
    "fatalError": "❌ ข้อผิดพลาดร้ายแรง: {error}",
    "helpTitle": "📊 เครื่องกำเนิดรายงานสรุป I18NTK",
    "helpDescription": "วิเคราะห์โครงสร้างโฟลเดอร์ i18n และสร้างรายงานสรุปที่ครอบคลุม รวมถึงสถิติที่สำคัญ การวิเคราะห์โครงสร้างไฟล์ และการตรวจสอบความถูกต้อง",
    "helpUsage": "การใช้งาน: โหนด i18ntk-summary.js [ตัวเลือก]",
    "helpOptions": "--source-dir <dir>     ไดเรกทอรีต้นทางที่จะวิเคราะห์",
    "helpSourceDir": "--source-dir <dir>     ไดเรกทอรีต้นทางที่จะวิเคราะห์",
    "helpOutput": "--เอาท์พุท <file>        ไฟล์เอาต์พุตสำหรับรายงาน",
    "helpVerbose": "--verbose, -v แสดงข้อมูลโดยละเอียด",
    "helpKeepReports": "--keep-reports เก็บรายงานที่มีอยู่",
    "helpDeleteReports": "--delete-reports ลบรายงานที่มีอยู่",
    "helpHelp": "--help, -h แสดงความช่วยเหลือนี้",
    "helpExamples": "ตัวอย่าง:",
    "helpExample1": "โหนด i18ntk-summary.js",
    "helpExample2": "โหนด i18ntk-summary.js --source-dir ./locales",
    "helpExample3": "โหนด i18ntk-summary.js --สรุปเอาต์พุต-report.txt",
    "helpExample4": "โหนด i18ntk-summary.js --verbose",
    "helpExample5": "โหนด i18ntk-summary.js --source-dir ./locales --output report.json",
    "couldNotReadFile": "⚠️ ไม่สามารถอ่านไฟล์ได้: {filePath}",
    "couldNotParseJSFile": "⚠️ ไม่สามารถแยกวิเคราะห์ไฟล์ JS/TS: {filePath}",
    "errorReadingFile": "⚠️ เกิดข้อผิดพลาดในการอ่านไฟล์ {filePath}: {error}",
    "analyzingFolder": "🔍 กำลังวิเคราะห์โครงสร้างโฟลเดอร์...",
    "noLanguageDirectoriesFound": "❌ ไม่พบไดเรกทอรีภาษาในไดเรกทอรีต้นทางที่ระบุ",
    "foundLanguages": "✅พบ {count} ภาษา: {languages}",
    "referenceLanguageFiles": "📁 ภาษาอ้างอิง '{language}' มี {count} ไฟล์",
    "analyzingLanguage": "🌍 กำลังวิเคราะห์ภาษา: {language}",
    "keysInFiles": "📊 พบแล้ว {keys} กุญแจข้าม {files} ไฟล์",
    "checkingInconsistentKeys": "🔍 กำลังตรวจสอบคีย์ที่ไม่สอดคล้องกันในภาษาต่างๆ...",
    "generatingSummaryReport": "⏩ กำลังสร้างรายงานสรุป...",
    "reportTitle": "📊 I18NTK SUMMARY REPORT",
    "generated": "สร้าง: {timestamp}",
    "sourceDirectory": "ไดเรกทอรีต้นทาง: {dir}",
    "overview": "📈 OVERVIEW",
    "languagesCount": "ภาษา: {count}",
    "totalFiles": "ไฟล์ทั้งหมด: {count}",
    "totalKeys": "คีย์ทั้งหมด: {count}",
    "avgKeysPerLanguage": "คีย์เฉลี่ยต่อภาษา: {count}",
    "languagesBreakdown": "🌍 รายละเอียดภาษา",
    "languageBreakdown": "{language}: {files} ไฟล์, {keys} กุญแจ",
    "fileStructure": "📁 โครงสร้างไฟล์",
    "fileKeys": "{file}: {keys} กุญแจ",
    "missingInLanguages": "⚠️ ขาดหายไปใน: {languages}",
    "issuesFound": "❌ ISSUES FOUND",
    "missingFiles": "📁 ไฟล์ที่หายไป:",
    "emptyFiles": "📄 ไฟล์เปล่า:",
    "malformedFiles": "⚠️ ไฟล์มีรูปแบบไม่ถูกต้อง:",
    "duplicateKeys": "🔑 คีย์ที่ซ้ำกัน:",
    "inconsistentKeys": "🔍 คีย์ไม่สอดคล้องกัน:",
    "missingKeys": "หายไป: {keys}{more}",
    "extraKeys": "พิเศษ: {keys}{more}",
    "noIssuesFound": "✅ NO ISSUES FOUND",
    "allFilesConsistent": "ไฟล์การแปลทั้งหมดมีความสอดคล้องกันในทุกภาษา",
    "recommendations": "💡 คำแนะนำ",
    "createMissingFiles": "• สร้างไฟล์การแปลที่หายไป",
    "addContentToEmptyFiles": "• เพิ่มเนื้อหาลงในไฟล์การแปลที่ว่างเปล่า",
    "fixMalformedFiles": "• แก้ไขไฟล์ JSON/JS ที่มีรูปแบบไม่ถูกต้อง",
    "removeDuplicateKeys": "• ลบคีย์ที่ซ้ำกันออกจากไฟล์",
    "synchronizeKeys": "• ประสานคีย์ในทุกภาษา",
    "splitLargeFiles": "• พิจารณาแยกไฟล์ขนาดใหญ่ออกเป็นเนมสเปซที่เล็กลง",
    "addMoreLanguages": "• พิจารณาเพิ่มภาษาเพิ่มเติม",
    "nextSteps": "🎯 NEXT STEPS",
    "nextStep1": "1. แก้ไขปัญหาใดๆ ที่ระบุไว้ข้างต้น",
    "nextStep2": "2. ดำเนินการตรวจสอบความถูกต้องเพื่อให้มั่นใจว่ามีความสอดคล้องกัน",
    "nextStep3": "3. พิจารณาใช้ i18ntk-validate สำหรับการตรวจสอบโดยละเอียด",
    "nextStep4": "4. แนะนำให้มีการตรวจสอบอย่างสม่ำเสมอ",
    "couldNotFindI18nDirectory": "❌ ไม่พบไดเรกทอรี i18n โปรดระบุ --source-dir",
    "sourceDirectoryDoesNotExist": "❌ ไม่มีไดเรกทอรีต้นทาง: {dir}",
    "i18nSummaryReportGenerator": "📊 เครื่องมือสร้างรายงานสรุป I18N",
    "analysisComplete": "✅ การวิเคราะห์เสร็จสมบูรณ์",
    "analyzedLanguages": "📊 ภาษาที่วิเคราะห์: {count}",
    "processedFiles": "📁 ไฟล์ที่ประมวลผล: {count}",
    "foundTranslationKeys": "🔑 พบคีย์การแปล: {count}",
    "foundIssues": "❌พบ {count} ปัญหา",
    "noIssuesConsole": "✅ ไม่พบปัญหา - ไฟล์ทั้งหมดสอดคล้องกัน!",
    "errorDuringAnalysis": "❌ ข้อผิดพลาดระหว่างการวิเคราะห์: {error}",
    "usageReportTitle": "📊 I18NTK USAGE REPORT",
    "usageReportGenerated": "สร้าง: {timestamp}",
    "usageReportSourceDir": "ไดเรกทอรีต้นทาง: {sourceDir}",
    "usageReportI18nDir": "ไดเรกทอรี I18n: {i18nDir}",
    "usageReportSummary": "📈 SUMMARY",
    "usageReportSourceFilesScanned": "ไฟล์ต้นฉบับที่สแกน: {count}",
    "usageReportTranslationFilesFound": "พบไฟล์แปล: {count}",
    "usageReportAvailableKeys": "คีย์การแปลที่มีอยู่: {count}",
    "usageReportUsedKeys": "คีย์การแปลที่ใช้: {count}",
    "usageReportDynamicKeys": "คีย์การแปลแบบไดนามิก: {count}",
    "usageReportUnusedKeys": "คีย์การแปลที่ไม่ได้ใช้: {count}",
    "usageReportMissingKeys": "คีย์การแปลหายไป: {count}",
    "usageReportNotTranslatedKeys": "คีย์ที่ไม่ได้แปล: {count}",
    "usageReportTranslationCompleteness": "🌍 ความสมบูรณ์ของการแปล",
    "usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
    "usageReportNotTranslatedInLanguage": "ไม่ได้แปล: {count} กุญแจ",
    "usageReportTranslationFilesDiscovered": "📁 ไฟล์คำแปล",
    "usageReportFileInfo": "{relativePath} (เนมสเปซ: {namespace}, พิมพ์: {type})",
    "usageReportUnusedTranslationKeys": "🗑️ คีย์การแปลที่ไม่ได้ใช้",
    "usageReportUnusedKeysDescription": "คีย์เหล่านี้มีอยู่ในไฟล์การแปล แต่ไม่ได้ใช้ในซอร์สโค้ด:",
    "usageReportUnusedKey": "• {key}",
    "usageReportMoreUnusedKeys": "... และ {count} คีย์ที่ไม่ได้ใช้มากขึ้น",
    "usageReportMissingTranslationKeys": "❌ ไม่มีคีย์การแปล",
    "usageReportMissingKeysDescription": "คีย์เหล่านี้ใช้ในซอร์สโค้ด แต่ไม่มีไฟล์การแปล:",
    "usageReportMissingKey": "• {key}",
    "usageReportUsedIn": "ใช้ใน: {filePath}",
    "usageReportMoreFiles": "... และ {count} ไฟล์เพิ่มเติม",
    "usageReportDynamicTranslationKeys": "⚡ ปุ่มแปลแบบไดนามิก",
    "usageReportDynamicKeysDescription": "คีย์เหล่านี้ถูกใช้แบบไดนามิก (สร้างที่รันไทม์):",
    "usageReportDynamicKey": "• {key}",
    "usageReportFileUsageBreakdown": "📊 รายละเอียดการใช้ไฟล์",
    "usageReportFileUsage": "{filePath}: {count} กุญแจ",
    "status": {
      "generating": "⏳ กำลังสร้าง...",
      "completed": "✅ จบ."
    },
    "help": {
      "usage": "การใช้งาน: โหนด main/manage/index.js [ตัวเลือก]",
      "interactiveMode": "💡 การใช้งาน: โหนด main/manage/index.js --command=<command> เพื่อการดำเนินการโดยตรง",
      "initProject": "🚀 เริ่มต้นภาษาใหม่",
      "analyzeTranslations": "🔍 วิเคราะห์การแปล",
      "validateTranslations": "✅ ตรวจสอบการแปล",
      "checkUsage": "📊 ตรวจสอบการใช้งานกุญแจ",
      "showHelp": "📖 ใช้: node main/manage/index.js --help สำหรับคำสั่งที่มีอยู่",
      "availableCommands": "📖 คำสั่งที่ใช้ได้:",
      "initCommand": "init - เริ่มต้นภาษาใหม่",
      "analyzeCommand": "วิเคราะห์ - วิเคราะห์การแปล",
      "validateCommand": "ตรวจสอบ - ตรวจสอบการแปล",
      "usageCommand": "การใช้งาน - ตรวจสอบการใช้งานคีย์",
      "sizingCommand": "การปรับขนาด - วิเคราะห์ขนาด",
      "completeCommand": "เสร็จสมบูรณ์ - การแปลเสร็จสมบูรณ์ (ครอบคลุม 100%)",
      "summaryCommand": "สรุป - แสดงสถานะโครงการ",
      "scannerCommand": "เครื่องสแกนเนอร์ - สแกนหาปัญหา i18n",
      "translateCommand": "แปล - แปลไฟล์ภาษาอัตโนมัติ",
      "debugCommand": "ดีบัก - ดีบักปัญหาการแปล"
    },
    "test_complete_system": {
      "starting_test": "🧪 เริ่มการทดสอบระบบให้เสร็จสมบูรณ์",
      "separator": "=",
      "testing_ui_translations": "⏩ ทดสอบการแปล UI...",
      "testing_settings_manager": "⚙️ ตัวจัดการการตั้งค่าการทดสอบ...",
      "testing_main_scripts": "🏽 ทดสอบสคริปต์หลัก...",
      "checking_translation_consistency": "🌐 กำลังตรวจสอบความสอดคล้องของการแปล...",
      "non_critical_missing_keys": "ℹ️ {file}: {count} คีย์หายไปที่ไม่สำคัญ",
      "extra_keys": "ℹ️ {file}: {count} กุญแจพิเศษ",
      "generating_report": "📊 กำลังสร้างรายงาน...",
      "final_test_report_title": "📋 FINAL TEST REPORT",
      "passed": "✅ผ่าน: {passed}",
      "failed": "❌ ล้มเหลว: {failed}",
      "warnings": "⚠️คำเตือน: {warnings}",
      "missing_translations_title": "🔍 ไม่มีคำแปล ({count}):",
      "missing_translation_key": "- {key}",
      "missing_translations_more": "... และ {count} มากกว่า",
      "errors_title": "❌ ข้อผิดพลาด:",
      "error_message": "- {error}",
      "overall_status": "📊 สถานะโดยรวม: {status}",
      "success_message": "✅ {message}",
      "failure_message": "❌ {message}",
      "failure_error_message": "{errorMessage}",
      "warning_message": "⚠️  {message}",
      "test_runner_failed": "❌ นักวิ่งทดสอบล้มเหลว:",
      "recommendations": {
        "add_missing_translation_keys": "เพิ่มคีย์การแปลที่ขาดหายไปเพื่อรักษาความสอดคล้อง",
        "fix_failing_scripts": "แก้ไขสคริปต์ที่ล้มเหลวก่อนที่จะปรับใช้",
        "review_warning_messages": "ตรวจสอบและแก้ไขข้อความเตือน",
        "system_ready_for_deployment": "ระบบพร้อมสำหรับการใช้งานแล้ว"
      },
      "hardcodedTexts": {
        "addMissingTranslationKeys": "เพิ่มคีย์การแปลที่ขาดหายไปเพื่อรักษาความสอดคล้อง",
        "fixFailingScripts": "แก้ไขสคริปต์ที่ล้มเหลวก่อนที่จะปรับใช้",
        "reviewWarningMessages": "ตรวจสอบและแก้ไขข้อความเตือน",
        "systemReadyForDeployment": "ระบบพร้อมสำหรับการใช้งานแล้ว"
      }
    },
    "testConsoleI18n": {
      "found_target_file": "พบไฟล์เป้าหมาย: {fileName}",
      "scanning_files_for_console_statements": "กำลังสแกนไฟล์เพื่อหาคำสั่งคอนโซล...",
      "found_javascript_files": "พบ {count} ไฟล์จาวาสคริปต์",
      "console_i18n_analysis_results": "ผลการวิเคราะห์คอนโซล I18n",
      "total_console_statements": "คำสั่งคอนโซลทั้งหมด: {count}",
      "translated_statements": "ข้อความที่แปล: {count}",
      "hardcoded_statements": "คำสั่งฮาร์ดโค้ด: {count}",
      "translation_coverage": "ความครอบคลุมการแปล: {percentage}%",
      "coverage_by_file": "ความครอบคลุมตามไฟล์:",
      "file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
      "hardcoded_console_statements": "คำสั่งคอนโซลแบบฮาร์ดโค้ด:",
      "file_header": "ไฟล์: {file}",
      "line_statement": "เส้น {line}: {statement}",
      "suggested_key": "รหัสที่แนะนำ: {key}",
      "suggested_replacement": "การเปลี่ยนที่แนะนำ: {replacement}",
      "recommendations": "คำแนะนำ:",
      "recommendation_1": "1. แทนที่สตริงฮาร์ดโค้ดด้วยการเรียก i18n.t()",
      "recommendation_2": "2. เพิ่มคีย์ใหม่ให้กับไฟล์ JSON การแปลที่เกี่ยวข้อง",
      "recommendation_3": "3. ตรวจสอบให้แน่ใจว่าข้อความคอนโซลทั้งหมดปรากฏต่อหน้าผู้ใช้และต้องมีการแปล",
      "recommendation_4": "4. ใช้เทมเพลตตัวอักษรหรือการต่อสตริงสำหรับข้อความไดนามิก โดยส่งตัวแปรไปที่ i18n.t()",
      "translation_keys_to_add": "คีย์การแปลที่แนะนำให้เพิ่ม:",
      "add_keys_instruction": "คัดลอกโครงสร้าง JSON ต่อไปนี้ลงในไฟล์แปลของคุณ:",
      "perfect_translation_coverage": "ครอบคลุมการแปลที่สมบูรณ์แบบ!",
      "all_statements_using_translation": "คำสั่งคอนโซลทั้งหมดใช้ระบบการแปล",
      "i18n_console_translation_checker": "เครื่องมือตรวจสอบการแปลคอนโซล I18n",
      "script_description_line1": "สคริปต์นี้จะสแกนไฟล์ JavaScript ทั้งหมดเพื่อหาคำสั่งคอนโซล",
      "script_description_line2": "และตรวจสอบว่าพวกเขากำลังใช้ระบบการแปลหรือไม่",
      "analysis_completed_in_duration": "วิเคราะห์เสร็จเมื่อ พ.ศ {duration} วินาที",
      "report_saved_to_path": "บันทึกรายงานไปที่: {path}",
      "found_hardcoded_messages": "พบ {count} ข้อความฮาร์ดโค้ด ออกด้วยรหัสข้อผิดพลาด 1",
      "all_console_messages_use_translation": "ข้อความคอนโซลทั้งหมดใช้การแปล ออกด้วยรหัส 0",
      "consoleTranslationsCheck": "ตรวจสอบการแปลคอนโซล"
    },
    "translate_mismatches": {
      "title": "🌐 ตัวช่วยแปล {dryRun}",
      "separator": "=====================================",
      "processing_file": "📄 กำลังประมวลผล {language}.json...",
      "translation_summary_title": "📊 สรุปการแปล:",
      "total_translations_applied": "ใช้คำแปลทั้งหมด: {totalTranslations}",
      "run_with_apply_instruction": "💡 รันด้วย --apply เพื่อใช้คำแปลเหล่านี้",
      "no_translation_mappings": "⚠️ ไม่มีการแมปการแปลสำหรับ {language}",
      "translation_applied": "✅ {key}: \"{oldValue}\" → \"{newValue}\"",
      "saved_translations": "💾 บันทึกแล้ว {count} แปลเป็น {filename}",
      "found_translatable_items": "🔍 พบแล้ว {count} รายการที่สามารถแปลได้",
      "no_automatic_translations": "✨ ไม่มีการแปลอัตโนมัติ",
      "error_processing_file": "❌ เกิดข้อผิดพลาดในการประมวลผล {filename}: {errorMessage}",
      "coverage_report_title": "📊 รายงานความครอบคลุมการแปล",
      "coverage_report_separator": "===============================",
      "file_header": "📄 {filename}:",
      "total_keys": "คีย์ทั้งหมด: {total}",
      "translated_keys": "แปล: {translated}",
      "untranslated_markers": "เครื่องหมายที่ไม่ได้แปล: {untranslated}",
      "contains_english": "ประกอบด้วยภาษาอังกฤษ: {hasEnglish}",
      "coverage_percentage": "ความคุ้มครอง: {coverage}%",
      "error_general": "❌ ข้อผิดพลาด:",
      "use_help": "ใช้ --help สำหรับข้อมูลการใช้งาน"
    },
    "cleaningUpReportFiles": "กำลังล้างไฟล์รายงานเก่า...",
    "couldNotDelete": "ไม่สามารถลบได้ {file}: {error}",
    "deletedOldReportFiles": "ลบแล้ว {count} ไฟล์รายงานเก่า",
    "errorCleaningUpReports": "เกิดข้อผิดพลาดในการล้างรายงาน: {error}",
    "noOldReportFilesToDelete": "ไม่มีไฟล์รายงานเก่าที่จะลบ",
    "reportFilesPreserved": "ไฟล์รายงานที่เก็บรักษาไว้",
    "reportSaveFailed": "ไม่สามารถบันทึกรายงานไปที่: {reportPath}",
    "reportSaved": "บันทึกรายงานไปที่: {reportPath}"
  },
  "ui": {
    "autoDetectedI18nDirectory": "ไดเร็กทอรี i18n ที่ตรวจพบอัตโนมัติ: {path}",
    "executingCommand": "การดำเนินการคำสั่ง: {command}",
    "unknownCommand": "คำสั่งที่ไม่รู้จัก: {command}",
    "errorExecutingCommand": "เกิดข้อผิดพลาดในการดำเนินการคำสั่ง: {error}",
    "errorLoadingTranslationFile": "เกิดข้อผิดพลาดในการโหลดไฟล์การแปลสำหรับ '{language}': {error}",
    "errorSavingLanguagePreference": "เกิดข้อผิดพลาดในการบันทึกการตั้งค่าภาษา: {error}",
    "noActiveReadlineInterface": "ไม่มีอินเทอร์เฟซบรรทัดอ่านที่ใช้งานอยู่",
    "uiLanguageUpdated": "ภาษา UI อัปเดตเป็น: {language}",
    "selectOptionPrompt": "เลือกตัวเลือก:",
    "pressEnterToReturn": "กด Enter เพื่อกลับสู่เมนูหลัก...",
    "detectedSourceDirectory": "ไดเรกทอรีต้นทางที่ตรวจพบ: {sourceDir}",
    "detectedI18nDirectory": "ตรวจพบไดเร็กทอรี i18n: {directory}",
    "toolkitTitle": "i18ntk - ชุดเครื่องมือการจัดการ Enterprise i18n",
    "versionInfo": "เวอร์ชัน: {version}",
    "releaseDate": "วันที่วางจำหน่าย: {date}",
    "maintainer": "ผู้ดูแล: {maintainer}",
    "nodeVersion": "โหนด js: {version}",
    "license": "ใบอนุญาต: {license}",
    "whatsNew": "✨ มีอะไรใหม่ใน v{version}:",
    "changeItem": "{change}",
    "documentation": "📚 เอกสารประกอบ: {url}",
    "issues": "🐛 ปัญหา: {url}",
    "versionInfoUnavailable": "ไม่มีข้อมูลเวอร์ชัน i18ntk",
    "versionInfoError": "ข้อผิดพลาด: {error}"
  },
  "validateLanguagePurity": {
    "phrase_debug_tools": "เครื่องมือแก้ไขข้อบกพร่อง",
    "phrase_settings": "การตั้งค่า",
    "phrase_configuration": "การกำหนดค่า",
    "phrase_invalid_choice": "ตัวเลือกที่ไม่ถูกต้อง",
    "phrase_please_select": "กรุณาเลือก",
    "phrase_back_to_main_menu": "กลับสู่เมนูหลัก",
    "phrase_error": "ข้อผิดพลาด",
    "phrase_warning": "คำเตือน",
    "phrase_success": "ความสำเร็จ",
    "phrase_failed": "ล้มเหลว",
    "phrase_loading": "กำลังโหลด",
    "phrase_saving": "ประหยัด",
    "phrase_full_system_debug": "การแก้ปัญหาระบบเต็มรูปแบบ",
    "phrase_configuration_debug": "ดีบักการกำหนดค่า",
    "phrase_translation_debug": "การแก้ไขข้อบกพร่องการแปล",
    "phrase_performance_debug": "การแก้ไขข้อบกพร่องด้านประสิทธิภาพ",
    "phrase_admin_pin_setup": "การตั้งค่าพินผู้ดูแลระบบ",
    "phrase_enter_admin_pin": "ใส่พินผู้ดูแลระบบ",
    "phrase_confirm_admin_pin": "ยืนยันพินผู้ดูแลระบบ",
    "phrase_authentication_failed": "การรับรองความถูกต้องล้มเหลว",
    "phrase_access_denied": "การเข้าถึงถูกปฏิเสธ",
    "phrase_security_log": "บันทึกความปลอดภัย",
    "language_german": "เยอรมัน",
    "language_french": "ภาษาฝรั่งเศส",
    "language_spanish": "สเปน",
    "language_russian": "ภาษารัสเซีย",
    "language_japanese": "ญี่ปุ่น",
    "language_chinese": "ชาวจีน",
    "validator_title": "🔍 เครื่องมือตรวจสอบความบริสุทธิ์ของภาษา",
    "validating_file": "📄 กำลังตรวจสอบ {language}.json ({name})...",
    "valid_file_message": "✅ถูกต้อง - ไม่มีการละเมิดความบริสุทธิ์ของภาษา",
    "invalid_file_message": "❌ไม่ถูกต้อง - {count} พบการละเมิด",
    "no_validation_rules": "ไม่มีกฎการตรวจสอบที่กำหนดไว้สำหรับภาษา: {language}",
    "error_reading_file": "เกิดข้อผิดพลาดในการอ่านไฟล์: {errorMessage}",
    "issue_forbidden_marker": "มีเครื่องหมายต้องห้าม: {marker}",
    "issue_english_phrase": "มีวลีภาษาอังกฤษ: \"{phrase}\"",
    "issue_english_words": "ประกอบด้วยคำภาษาอังกฤษ: {words}",
    "issue_missing_cyrillic": "ข้อความแบบยาวควรมีอักขระซีริลลิกสำหรับภาษารัสเซีย",
    "issue_missing_japanese": "ข้อความแบบยาวควรมีอักขระภาษาญี่ปุ่น",
    "issue_missing_chinese": "ข้อความยาวควรมีตัวอักษรจีน",
    "summary_title": "📊 สรุปการตรวจสอบ",
    "overall_results_header": "📋 ผลลัพธ์โดยรวม:",
    "total_files_validated": "ตรวจสอบไฟล์ทั้งหมดแล้ว: {count}",
    "valid_files": "ไฟล์ที่ถูกต้อง: {count}",
    "invalid_files": "ไฟล์ไม่ถูกต้อง: {count}",
    "total_violations": "การละเมิดทั้งหมด: {count}",
    "violations_by_file_header": "❌ การละเมิดตามไฟล์:"
  },
  "workflow": {
    "title": "การจัดการเวิร์กโฟลว์",
    "description": "จัดการเวิร์กโฟลว์ i18n",
    "select_workflow_file": "เลือกไฟล์เวิร์กโฟลว์ที่จะรัน:",
    "no_workflow_files": "ไม่พบไฟล์เวิร์กโฟลว์ในไดเร็กทอรีเวิร์กโฟลว์",
    "invalid_selection": "การเลือกไม่ถูกต้อง โปรดป้อนตัวเลขที่สอดคล้องกับไฟล์เวิร์กโฟลว์",
    "workflow_execution_started": "เริ่มต้นเวิร์กโฟลว์: {workflowName}",
    "workflow_execution_completed": "ขั้นตอนการทำงานเสร็จสมบูรณ์: {workflowName}",
    "workflow_execution_failed": "เวิร์กโฟลว์ล้มเหลว: {workflowName} - {error}",
    "workflow_cancelled": "การดำเนินการเวิร์กโฟลว์ถูกยกเลิก",
    "press_enter_to_continue": "กด Enter เพื่อดำเนินการต่อ!",
    "starting": "🚀 กำลังเริ่มเวิร์กโฟลว์...",
    "completed": "✅ ขั้นตอนการทำงานสำเร็จลุล่วงไปด้วยดี!",
    "checkReports": "📄 ตรวจสอบรายงานเพื่อดูรายละเอียด",
    "exitingCompleted": "📝 ขั้นตอนการทำงานเสร็จสมบูรณ์ กำลังออก...",
    "summary": {
      "title": "📋 WORKFLOW SUMMARY",
      "separator": "===================",
      "completedAt": "🕐 ขั้นตอนการทำงานเสร็จสิ้นเมื่อ: {timestamp}",
      "initialViolations": "📊 การละเมิดครั้งแรก: {count}",
      "finalViolations": "📉 การละเมิดขั้นสุดท้าย: {count}",
      "totalFixes": "🏽 แก้ไขทั้งหมดที่ใช้: {count}",
      "improvement": "📈 การปรับปรุง: {percentage}%",
      "stepResults": "📝 STEP RESULTS:",
      "stepDetail": "{number}. {status} {stepName}",
      "violations": "การละเมิด: {count}",
      "fixesApplied": "ใช้การแก้ไข: {count}",
      "nextSteps": "💡 NEXT STEPS:",
      "congratulations": "🎉 ขอแสดงความยินดีด้วย! ไฟล์โลแคลทั้งหมดมีความบริสุทธิ์ของภาษาที่สมบูรณ์แบบแล้ว!",
      "cicdIntegration": "✅ พิจารณารวมเครื่องมือตรวจสอบความถูกต้องเข้ากับไปป์ไลน์ CI/CD ของคุณ",
      "automatedChecks": "✅ ตั้งค่าการตรวจสอบอัตโนมัติสำหรับการแปลใหม่",
      "greatProgress": "🎯 ก้าวหน้ายิ่งใหญ่! ปัญหาส่วนใหญ่ได้รับการแก้ไขแล้ว",
      "manualReview": "🔍 ตรวจสอบการละเมิดที่เหลือด้วยตนเอง",
      "addMappings": "🌐 พิจารณาเพิ่มการแมปการแปลเพิ่มเติมสำหรับเคส Edge",
      "goodProgress": "📈 มีความก้าวหน้าไปด้วยดี แต่จำเป็นต้องมีการทำงานเพิ่มเติม",
      "expandMappings": "🏽 ขยายการแมปการแปลอัตโนมัติ",
      "professionalReview": "👥 พิจารณาการตรวจสอบการแปลที่ซับซ้อนด้วยตนเอง",
      "runAgain": "🔄 เรียกใช้เวิร์กโฟลว์อีกครั้งหลังจากเพิ่มการแมปเพิ่มเติม",
      "limitedProgress": "⚠️ ความคืบหน้ามีจำกัด อาจจำเป็นต้องมีการแทรกแซงด้วยตนเอง",
      "reviewMappings": "🔍 ตรวจสอบการแมปการแปลและเพิ่มรายการที่ขาดหายไป",
      "professionalServices": "👥 พิจารณาบริการแปลโดยมืออาชีพ",
      "checkIssues": "🏽 ตรวจสอบปัญหาที่เป็นระบบในไฟล์โลแคล",
      "success": "✅",
      "warning": "⚠️"
    }
  },
  "consoleI18nTester": {
    "found_target_file": "พบไฟล์เป้าหมาย",
    "scanning_files_for_console_statements": "กำลังสแกนไฟล์เพื่อหาคำสั่งคอนโซล",
    "found_javascript_files": "พบไฟล์จาวาสคริปต์",
    "console_i18n_analysis_results": "ผลการวิเคราะห์คอนโซล i18n",
    "total_console_statements": "คำสั่งคอนโซลทั้งหมด",
    "translated_statements": "ข้อความที่แปลแล้ว",
    "hardcoded_statements": "คำสั่งฮาร์ดโค้ด",
    "translation_coverage": "ครอบคลุมการแปล",
    "coverage_by_file": "ความคุ้มครองตามไฟล์",
    "file_coverage_stats": "สถิติความครอบคลุมของไฟล์",
    "hardcoded_console_statements": "คำสั่งคอนโซลแบบฮาร์ดโค้ด",
    "file_header": "ส่วนหัวของไฟล์",
    "line_statement": "คำสั่งบรรทัด",
    "suggested_key": "คีย์แนะนำ",
    "suggested_replacement": "แนะนำให้เปลี่ยน",
    "recommendations": "ข้อแนะนำ",
    "recommendation_1": "คำแนะนำ 1",
    "recommendation_2": "คำแนะนำ 2",
    "recommendation_3": "คำแนะนำ 3",
    "recommendation_4": "คำแนะนำ 4",
    "translation_keys_to_add": "คีย์การแปลที่จะเพิ่ม",
    "add_keys_instruction": "เพิ่มคำสั่งคีย์",
    "perfect_translation_coverage": "ความครอบคลุมการแปลที่สมบูรณ์แบบ",
    "all_statements_using_translation": "ข้อความทั้งหมดที่ใช้การแปล",
    "i18n_console_translation_checker": "เครื่องมือตรวจสอบการแปลคอนโซล I18n",
    "script_description_line1": "บรรทัดคำอธิบายสคริปต์1",
    "script_description_line2": "คำอธิบายสคริปต์บรรทัดที่ 2",
    "analysis_completed_in_duration": "การวิเคราะห์เสร็จสิ้นภายในระยะเวลา",
    "report_saved_to_path": "บันทึกรายงานไปยังเส้นทางแล้ว",
    "found_hardcoded_messages": "พบข้อความฮาร์ดโค้ด",
    "all_console_messages_use_translation": "ข้อความคอนโซลทั้งหมดใช้การแปล"
  },
  "exportTranslations": {
    "createdDirectory": "สร้างไดเรกทอรีแล้ว",
    "foundFiles": "พบไฟล์",
    "createdTemplate": "สร้างเทมเพลตแล้ว",
    "skippedExisting": "ข้ามที่มีอยู่",
    "title": "ชื่อ",
    "creatingTemplates": "การสร้างเทมเพลต",
    "summary": "สรุป",
    "summaryLanguages": "ภาษาสรุป",
    "summaryFilesPerLanguage": "ไฟล์สรุปต่อภาษา",
    "summaryTotalFiles": "สรุปไฟล์ทั้งหมด",
    "success": "ความสำเร็จ",
    "location": "ที่ตั้ง",
    "nextSteps": "ขั้นตอนต่อไป"
  },
  "dashboard": {
    "title": "ชื่อ",
    "overview": "ภาพรวม"
  },
  "auth": {
    "title": "ชื่อ",
    "email": "อีเมล",
    "password": "รหัสผ่าน",
    "signIn": "เข้าสู่ระบบ",
    "forgotPassword": "ลืมรหัสผ่าน",
    "signUp": "ลงทะเบียน"
  },
  "checkUsage": {
    "usage_analysis_failed": "การวิเคราะห์การใช้งานล้มเหลว"
  },
  "completeTranslations": {
    "warning_could_not_parse_filepa": "คำเตือน: ไม่สามารถแยกวิเคราะห์เส้นทางของไฟล์: {filePath}"
  },
  "pressEnterToContinue": "กด Enter เพื่อดำเนินการต่อ...",
  "status": {
    "exitingCompleted": "ขั้นตอนการทำงานเสร็จสมบูรณ์ กำลังออก..."
  },
  "prompt": {
    "yesTokens": [
      "ย",
      "ใช่"
    ],
    "noTokens": [
      "n",
      "เลขที่"
    ]
  },
  "translate": {
    "title": "แปลอัตโนมัติ",
    "sourceDirectory": {
      "title": "ไดเรกทอรีสถานที่ต้นทาง",
      "currentProject": "โครงการปัจจุบัน: {dir}",
      "accepted": "ยอมรับแล้ว: เส้นทางสัมบูรณ์ หรือเส้นทางที่เกี่ยวข้องกับโครงการปัจจุบัน",
      "localeRootExample": "./locales (จากนั้นเลือกภาษาต้นฉบับ: en)",
      "folderHint": "โฟลเดอร์นี้สามารถมีไฟล์ JSON ได้โดยตรง หรือโฟลเดอร์ภาษา เช่น ./locales/en",
      "defaultNotFound": "ไม่พบไดเรกทอรีเริ่มต้น: {dir}",
      "enterExisting": "โปรดป้อนไดเรกทอรีที่มีอยู่ด้วยไฟล์ภาษา JSON",
      "directoryNotFound": "ไม่พบไดเรกทอรี: {dir}",
      "enterFolderExample": "ป้อนโฟลเดอร์ที่มีอยู่ เช่น ./locales/en",
      "notDirectory": "ไม่ใช่ไดเรกทอรี: {dir}",
      "using": "การใช้ไดเร็กทอรีต้นทาง: {dir}"
    },
    "targetLanguages": {
      "title": "ภาษาเป้าหมาย",
      "allConfigured": "ก) ภาษาเป้าหมายที่กำหนดค่าทั้งหมด: {languages}",
      "noneConfigured": "ก) ภาษาเป้าหมายที่กำหนดค่าทั้งหมด: ไม่มีการกำหนดค่า",
      "enterCodes": "หรือป้อนรหัสภาษาที่คั่นด้วยเครื่องหมายจุลภาค/ช่องว่างอย่างน้อยหนึ่งรหัส",
      "sourceExcluded": "ภาษาต้นทาง \"{lang}\" จะถูกยกเว้นโดยอัตโนมัติ",
      "noneSelected": "ไม่ได้เลือกภาษาเป้าหมายที่ถูกต้อง กำลังยกเลิก",
      "configureHint": "กำหนดค่า defaultLanguages ​​ใน .i18ntk-config หรือป้อนรหัสเป้าหมายด้วยตนเอง",
      "selected": "ภาษาเป้าหมาย: {languages}"
    },
    "protection": {
      "title": "ข้อกำหนดและกุญแจที่ได้รับการคุ้มครอง"
    },
    "common": {
      "default": "ค่าเริ่มต้น: {value}",
      "examples": "ตัวอย่าง:",
      "exampleValue": "ตัวอย่าง: {value}",
      "examplesInline": "ตัวอย่าง: {examples}",
      "pressEnterDefault": "กด Enter เพื่อใช้ค่าเริ่มต้น",
      "usingDefault": "ใช้ค่าเริ่มต้น: {value}"
    },
    "sourceLanguage": {
      "title": "รหัสภาษาต้นฉบับ",
      "hint": "ซึ่งควรตรงกับภาษาของค่า JSON ต้นทาง",
      "using": "การใช้ภาษาต้นฉบับ: {lang}",
      "invalid": "รหัสภาษาไม่ถูกต้อง ใช้อักขระ 2 ตัวขึ้นไป (เช่น en, de, fr)"
    },
    "files": {
      "title": "ไฟล์ใดที่จะแปล?",
      "all": "ก) ไฟล์ JSON ทั้งหมด ({count}: {files})",
      "choicePrompt": "ตัวเลือก [a/all หรือหมายเลขไฟล์]:",
      "invalidChoice": "ตัวเลือกไม่ถูกต้อง กำลังยกเลิก"
    },
    "dryRun": {
      "previewFor": "การแสดงตัวอย่างการทดลองเรียกใช้สำหรับ \"{lang}\"..."
    },
    "confirm": {
      "proceed": "ดำเนินการแปลจริงต่อหรือไม่?",
      "yesNoPrompt": "[y]es / [n]o:",
      "cancelled": "การแปลถูกยกเลิก"
    },
    "run": {
      "translatingTo": "แปลเป็น \"{lang}\"...",
      "failedFor": "ล้มเหลวสำหรับ \"{lang}\": {error}"
    },
    "summary": {
      "title": "สรุป:",
      "complete": "แปลเสร็จแล้ว!"
    },
    "nonInteractive": {
      "useDirect": "โหมดไม่โต้ตอบ ใช้ direct CLI แทน:"
    },
    "errors": {
      "sourceDirectoryNotFound": "ไม่พบไดเรกทอรีสถานที่ต้นทาง: {dir}"
    }
  }
}
