{
  "meta": {
    "version": "3.1.2",
    "updated": "2026-05-07"
  },
  "common": {
    "welcome": "Welcome",
    "hello": "Hello",
    "goodbye": "Goodbye",
    "yes": "Yes",
    "no": "No",
    "save": "Save",
    "cancel": "Cancel",
    "delete": "Delete",
    "edit": "Edit",
    "loading": "Loading...",
    "offlineTitle": "You are offline",
    "offlineMessage": "Please check your internet connection",
    "tryReconnect": "Try to reconnect",
    "logout": "Logout",
    "login": "Login",
    "amount": "Amount",
    "success": "Success",
    "error": "Error",
    "warning": "Warning",
    "info": "Info:",
    "debug": "Debug",
    "progress": "Progress:",
    "remaining": "Remaining:",
    "total": "Total:",
    "completed": "7. Completed successfully!",
    "missing": "Missing",
    "partial": "Partial",
    "sameAsSource": "Same as source:",
    "formatMismatch": "Format mismatch:",
    "typeMismatch": "Type mismatch:",
    "structureMismatch": "Structure mismatch:",
    "invalidOption": "Invalid option",
    "separator": "==================================================",
    "initializationFailed": "❌ Initialization failed: {error}",
    "stackTrace": "Stack trace: {stack}",
    "pressEnterToContinue": "Press Enter to continue...",
    "pressEnterToReturn": "Press Enter to return to main menu...",
    "stepCompleted": "Step '{stepName}' completed.",
    "stepFailed": "Step '{stepName}' failed.",
    "runningStep": "Running step: {stepName}",
    "command": "Command: {command}",
    "startingWorkflow": "Starting workflow...",
    "workflowCompleted": "Workflow completed.",
    "checkReports": "Check reports for details.",
    "errorExecutingCommand": "Error executing command: {error}",
    "genericError": "❌ Error: {error}",
    "errors": {
      "errors": "Errors:",
      "genericError": "❌ Error: {error}",
      "initializationFailed": "❌ Initialization failed: {error}",
      "initializationCancelled": "❌ Initialization cancelled by user.",
      "translationKeyNotFound": "Translation key not found: {key}",
      "sourceDirectoryNotFound": "Source directory not found: {directory}",
      "configLoadingFailed": "Configuration loading failed",
      "invalidSourceDirectory": "Invalid source directory: {directory}",
      "securityViolation": "Security violation detected",
      "authenticationFailed": "Authentication failed",
      "sourceEqualsI18nWarn": "⚠️ sourceDir equals i18nDir ({sourceDir}). Falling back to {fallback} for source scanning."
    },
    "errorGeneratingStatusSummary": "Error generating status summary: {error}",
    "errorRunningDebugTool": "Error running debug tool '{displayName}': {error}",
    "errorReadingDebugLogs": "Error reading debug logs: {error}",
    "errorAnalyzingLogFile": "Error analyzing log file: {error}",
    "errorAnalyzingTranslationKeys": "Error analyzing translation keys: {error}",
    "errorAnalyzingTranslationCompleteness": "Error analyzing translation completeness: {error}",
    "analyzingTranslationCompleteness": "Analyzing translation completeness across all languages...",
    "i18nDirectoryNotFound": "⚠️  i18n directory not found: {i18nDir}",
    "translationCompletenessAnalysisFailed": "⚠️  Translation completeness analysis failed: {error}",
    "failedToAnalyzeLanguage": "❌ Failed to analyze language {language}: {error}",
    "errorReadingI18nDirectory": "❌ Error reading i18n directory:",
    "languageCompletenessTitle": "📈 TRANSLATION COMPLETENESS BY LANGUAGE",
    "errorAnalyzingTranslationFormat": "Error analyzing translation format: {error}",
    "errorAnalyzingTranslationType": "Error analyzing translation type: {error}",
    "errorAnalyzingTranslationStructure": "Error analyzing translation structure: {error}",
    "errorAnalyzingTranslationFormatMismatch": "Error analyzing translation format mismatch: {error}",
    "errorAnalyzingTranslationTypeMismatch": "Error analyzing translation type mismatch: {error}",
    "errorAnalyzingTranslationStructureMismatch": "Error analyzing translation structure mismatch: {error}",
    "errorAnalyzingTranslationSameAsSource": "Error analyzing translation same as source: {error}",
    "title": "Status",
    "nextStep1": "1. Check usage analysis:",
    "nextStep2": "2. Validate translations:",
    "nextStep3": "3. Analyze completeness:",
    "nextStep4": "4. Complete missing translations:",
    "nextStep5": "5. Generate summary report:",
    "nextStep6": "6. Review and finalize translations:",
    "generating": "Generating summary report...",
    "review": "Reviewing translations...",
    "finalizing": "Finalizing translations...",
    "finalized": "Finalized successfully!",
    "warnings": "Warnings:",
    "completedKeys": "Completed keys:",
    "missingKeys": "Missing keys:",
    "partialKeys": "Partial keys:",
    "home": "Home",
    "settings": "Settings",
    "startingSettings": "🎛️  Starting Settings CLI...",
    "confirm": "Confirm",
    "errorExiting": "Error while exiting."
  },
  "errors": {
    "invalidOption": "❌ Invalid option: {option}. Please try again.",
    "readlineClosed": "Input stream is closed; running in non-interactive mode.",
    "noPackageJson": "No package.json found. Cannot auto-detect i18n framework.",
    "noI18nDir": "No i18n directory found in the project root.",
    "noI18nConfig": "No i18n configuration file found in the project root.",
    "errorReadingDebugLogs": "Error reading debug logs: {error}"
  },
  "scanner": {
    "help_message": "I18n Text Scanner  Usage: node i18ntk-scanner.js [options]  Options:   --source-dir <dir>     Source directory to scan (default: ./src)   --output <file>        Output file for scan results (default: ./i18ntk-scanner-report.json)   --framework <name>     Framework to target (react, vue, angular, vanilla)   --patterns <patterns>  Custom regex patterns (comma-separated)   --include-tests        Include test files in scan   --exclude-dirs <dirs>  Directories to exclude (comma-separated)   --help                Show this help  Examples:   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": "Source directory to scan for i18n issues",
      "output_dir": "Directory for scan reports and results",
      "framework": "Target framework (react, vue, angular, vanilla)",
      "patterns": "Custom regex patterns for text detection",
      "exclude": "File patterns to exclude from scanning",
      "output_report": "Generate detailed scan report",
      "min_length": "Minimum text length to consider for translation",
      "max_length": "Maximum text length to consider for translation",
      "include_tests": "Include test files in the scanning process"
    },
    "starting": "🔍 Starting text scanner for framework: {framework}",
    "sourceDirectory": "📁 Scanning directory: {sourceDir}",
    "frameworkDetected": "🎯 Detected framework: {framework}",
    "scanningFiles": "📊 Scanning {fileCount} files...",
    "foundTexts": "📝 Found {textCount} texts requiring translation",
    "generatingReport": "📊 Generating detailed report...",
    "reportSaved": "💾 Scan report saved to: {reportPath}",
    "noTextsFound": "✅ No hardcoded English texts found",
    "scanComplete": "🎉 Scan completed successfully!",
    "analysisTitle": "🔍 TRANSLATION SCAN ANALYSIS",
    "fileSummary": "📄 {file}: {count} texts found",
    "textLocation": "📍 Line {line}: {text}",
    "foundText": "Found {count} potential hardcoded text instances",
    "context": "📝 Context: {context}",
    "severity": "⚠️  Severity: {severity}",
    "recommendation": "💡 Recommendation: {recommendation}",
    "welcome": {
      "title": "🎯 Welcome to the Text Scanner!",
      "description": "This tool scans your source code for hardcoded English text that may need translation."
    },
    "frameworkPrompt": {
      "title": "🎯 Select Framework",
      "available": "Available frameworks: react, vue, angular, vanilla",
      "description": "Enter the framework type (or press Enter for auto-detection):",
      "input": "Framework:"
    },
    "directoryPrompt": {
      "title": "📁 Select Source Directory",
      "current": "Current directory: {dir}",
      "description": "Enter the directory to scan (or press Enter for current):",
      "input": "Directory:"
    },
    "options": {
      "includeTests": "Include test files?",
      "excludeDirs": "Directories to exclude (comma-separated):",
      "customPatterns": "Custom patterns to scan for (regex):"
    },
    "reportGenerated": "Scan report generated: {path}"
  },
  "fixer": {
    "help_message": "I18n Translation Fixer  Usage: node i18ntk-fixer.js [options]  Options:   --source-dir <dir>     Source directory to scan (default: ./locales)   --languages <langs>    Comma separated list of languages to fix   --markers <markers>    Comma separated markers to treat as untranslated   --no-backup           Skip automatic backup creation   --help                Show this help  Examples:   node i18ntk-fixer.js --languages de,fr   node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED   node i18ntk-fixer.js --no-backup",
    "starting": "🚀 Starting translation fixing for languages: {languages}",
    "sourceDirectory": "📁 Source directory: {sourceDir}",
    "sourceLanguage": "🔤 Source language: {sourceLanguage}",
    "markers": "🏷️  Markers to fix: {markers}",
    "scanningLanguage": "📊 Scanning {language}...",
    "noLanguages": "❌ No languages specified for fixing.",
    "allComplete": "🎉 All translations are already complete!",
    "fullReportSaved": "📊 Full report saved to: {reportPath}",
    "reviewReport": "Please review the report before proceeding.",
    "backupCreated": "💾 Backup created successfully.",
    "applyingFixes": "🔄 Applying fixes...",
    "fixingComplete": "✅ Translation fixing complete!",
    "operationCancelled": "❌ Operation cancelled by user.",
    "analysisTitle": "🔍 TRANSLATION FIXING ANALYSIS",
    "analysisSeparator": "==================================================",
    "totalIssues": "Total issues found: {totalIssues}",
    "missingTranslations": "Missing translations: {missing}",
    "placeholderTranslations": "Placeholder translations: {placeholder}",
    "noIssues": "✅ No issues found. All translations are complete.",
    "detailedIssues": "📋 DETAILED ISSUES:",
    "detailedSeparator": "--------------------------------------------------",
    "filePath": "📄 {file} → {path}",
    "missingKey": "❌ MISSING: {source} → {new}",
    "placeholderKey": "⚠️  PLACEHOLDER: \"{target}\" → \"{new}\"",
    "moreIssues": "... and {count} more issues. Check the report file for complete details.",
    "confirmationTitle": "🤔 Do you want to proceed with these fixes?",
    "confirmationOptions": "Options:",
    "optionYes": "y - Yes, apply all fixes",
    "optionNo": "n - No, cancel operation",
    "optionShow": "s - Show detailed issues",
    "choicePrompt": "Your choice (y/n/s):",
    "nonInteractiveMode": "⚡ Non-interactive mode detected - applying fixes automatically...",
    "reportGenerated": "📊 Fixer report generated: {path}",
    "summary": "Fixer summary:",
    "welcome": {
      "title": "🎯 Welcome to the Translation Fixer!",
      "description": "This tool will help you fix broken translations and placeholders across your locale files."
    },
    "markerPrompt": {
      "title": "🏷️ Configure Placeholder Markers",
      "description": "Enter the markers that indicate untranslated text (comma-separated):",
      "currentDefaults": "Default markers: {markers}",
      "input": "Markers (or press Enter for defaults):"
    },
    "languagePrompt": {
      "title": "🌍 Select Languages to Fix",
      "available": "Available languages: {languages}",
      "description": "Enter languages to fix (comma-separated) or press Enter for all:",
      "input": "Languages:",
      "noLanguages": "No languages found to fix."
    },
    "directoryPrompt": {
      "title": "📁 Select Directory",
      "current": "Current directory: {dir}",
      "description": "Enter the directory containing your locale files (or press Enter for current):",
      "input": "Directory:"
    },
    "backupLocation": "Backup location: {dir}",
    "completed": "Fixing completed.",
    "creatingBackup": "Creating backup in {dir}...",
    "dryRunMode": "Dry run mode: {mode}",
    "error": "Fixer failed: {error}",
    "fixing": "Fixing {language}...",
    "foundLanguages": "Found {count} languages: {languages}",
    "languageFixed": "{language}: fixed {fixed} key(s), skipped {skipped}.",
    "running": "Running translation fixer...",
    "totalFixed": "Total fixed: {count}"
  },
  "autorun": {
    "stepAnalyzeTranslations": "Analyze translations",
    "stepCompletedWithIcon": "✅ Completed: {stepName}",
    "stepValidateTranslations": "Validate translations",
    "stepRunning": "▶️  Step {stepNumber}/{totalSteps}: {stepName}",
    "separator": "==================================================",
    "stepFailed": "❌ Failed: {stepName}",
    "errorLabel": "Error",
    "autoRunScriptTitle": "🧪 Auto-Run Workflow",
    "usageTitle": "Usage",
    "runAllSteps": "Run: node i18ntk-autorun.js",
    "configureSettingsFirst": "Config: i18ntk-config.json or CLI flags",
    "runSpecificSteps": "Use --steps=1,3 or --list to show steps",
    "showHelp": "--help for more info",
    "examplesTitle": "Examples",
    "configExample": "node i18ntk-autorun.js --ui-language=zh",
    "stepsExample1": "node i18ntk-autorun.js --steps=analyze,validate",
    "stepsExample2": "node i18ntk-autorun.js --list",
    "customSettingsConfiguration": "Custom autorun settings",
    "availableSteps": "Available steps",
    "startingAutoRunWorkflow": "🚀 Starting Auto-Run Workflow...",
    "workflowIncludesSteps": "Workflow includes {count} steps:",
    "missingRequiredFile": "Missing required file: {file}",
    "workflowStopped": "Workflow stopped due to a failure.",
    "workflowCompleted": "🎉 Workflow completed!",
    "successfulSteps": "Successful steps: {count}",
    "failedSteps": "Failed steps: {count}",
    "stepInitializeProject": "Initialize project",
    "stepCheckUsage": "Check key usage",
    "stepGenerateSummary": "Generate summary report",
    "runInitializationFirst": "Please run initialization first.",
    "initializationCheckPassed": "Initialization check passed.",
    "runningStep": "Running step: {stepName}",
    "commandLabel": "Command: {command}",
    "stepCompletedWithTime": "Step '{stepName}' completed in {duration}ms.",
    "stepCompleted": "Step '{stepName}' completed.",
    "stepFailedWithError": "Step '{stepName}' failed with error: {error}",
    "requiredStepFailed": "Required step failed. Stopping workflow.",
    "optionalStepFailed": "Optional step failed. Continuing workflow.",
    "stepRequired": "(Required)",
    "stepOptional": "(Optional)",
    "startingExecution": "Starting execution...",
    "pressEnterToContinue": "Press Enter to continue...",
    "runningSelectedSteps": "Running selected steps...",
    "invalidStepNumber": "Invalid step number: {stepNum}",
    "executionReport": "Execution Report:",
    "requiredFailedSteps": "Required steps failed: {count}",
    "stepDetails": "Step Details:",
    "reportSavedTo": "Report saved to: {path}",
    "overallStatusSuccess": "SUCCESS",
    "overallStatusFailed": "FAILED",
    "overallStatus": "Overall Status: {status}",
    "pressEnterForDefaults": "Press Enter to use default settings for any prompt.",
    "sourceDirPrompt": "Enter source directory (default: {default}):",
    "sourceLangPrompt": "Enter source language (default: {default}):",
    "targetLangsPrompt": "Enter target languages (comma-separated, default: {default}):",
    "translationMarkerPrompt": "Enter translation marker (default: {default}):",
    "outputDirPrompt": "Enter output directory for reports (default: {default}):",
    "settingsUpdatedSuccessfully": "Settings updated successfully!",
    "errorConfiguringSettings": "Error configuring settings: {error}",
    "configurationComplete": "Configuration complete.",
    "runAutoRunCommand": "Now you can run the auto-run command.",
    "configurationFailed": "Configuration failed: {error}",
    "noValidStepNumbers": "No valid step numbers provided.",
    "autoRunFailed": "Auto-run failed: {error}",
    "stepCompleteTranslations": "Complete Translations",
    "stepAnalyzeSizing": "Analyze Sizing",
    "stepCompletedIcon": "✅",
    "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Step '{stepName}' running...",
    "stepFailedIcon": "❌",
    "translationLoadWarning": "Warning: Could not load {lang} translations",
    "configReadError": "Error reading {file}"
  },
  "analyze": {
    "help_message": "I18n Translation Analyzer  Usage: node i18ntk-analyze.js [options]  Options:   --source-dir <dir>     Source directory to scan (default: ./src)   --i18n-dir <dir>       I18n directory (default: ./src/locales)   --output-report        Generate detailed report   --output-dir <dir>     Output directory for reports (default: ./reports)   --help                 Show this help  Examples:   node 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": "📁 Source directory: {sourceDir}",
    "i18n_directory": "🌐 I18n directory: {i18nDir}",
    "loading_translation_files": "📋 Loading translation files...",
    "sourceDirectoryLabel": "📁 Source Directory: {sourceDir}",
    "sourceLanguageLabel": "🌍 Source Language: {sourceLanguage}",
    "strictModeLabel": "⚙️ Strict Mode: {mode}",
    "found_translation_files_count": "✅ Found {count} translation files",
    "analyzing_translations": "🔍 Analyzing translations...",
    "analysis_completed_successfully": "🎉 Analysis completed successfully!",
    "analysis_results": "📊 ANALYSIS RESULTS",
    "language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% translated)",
    "sample_missing_keys": "Sample missing keys:",
    "missing_key": "- {key}",
    "and_more_missing": "...and {count} more.",
    "sample_unused_keys": "Sample unused keys:",
    "unused_key": "- {key}",
    "and_more_unused": "...and {count} more.",
    "recommendations": "📋 RECOMMENDATIONS",
    "add_missing_translations": "💡 Add missing translations to improve coverage.",
    "remove_unused_translations": "💡 Remove unused translations to keep your project clean.",
    "next_steps": "📋 NEXT STEPS",
    "review_analysis_results": "1. Review the analysis results in the console or generated report.",
    "run_with_output_report": "2. Run with --output-report for detailed report.",
    "add_or_remove_translations": "3. Add missing translations or remove unused ones.",
    "rerun_analysis": "4. Re-run analysis to verify improvements.",
    "analysis_summary": "📊 ANALYSIS SUMMARY",
    "source_files_scanned": "Source files scanned: {fileCount}",
    "translation_files_checked": "Translation files checked: {translationFileCount}",
    "total_keys": "Total keys: {totalKeys}",
    "translated_keys": "Translated keys: {translatedKeys}",
    "missing_keys": "Missing keys: {missingKeys}",
    "unused_keys": "Unused keys: {unusedKeys}",
    "translation_coverage": "Translation coverage: {coverage}%",
    "analysis_passed_for_language": "✅ Analysis passed for {language}",
    "analysis_failed_for_language": "❌ Analysis failed for {language} ({missingKeys} missing, {unusedKeys} unused)",
    "starting": "🔍 Starting translation analysis...",
    "foundLanguages": "📋 Found {count} languages to analyze: {languages}",
    "analyzing": "🔄 Analyzing {language}...",
    "reportTitle": "📊 TRANSLATION ANALYSIS REPORT",
    "generated": "Generated: {timestamp}",
    "status": "Status: {translated}/{total} keys ({percentage}% translated)",
    "filesAnalyzed": "Files analyzed: {analyzed}/{total}",
    "keysNeedingTranslation": "Keys needing translation: {count}",
    "fileBreakdown": "📋 FILE BREAKDOWN",
    "error": "Error",
    "completed": "✅ Analysis completed for {language}",
    "progress": "📊 Overall Progress: {translated}/{total} languages processed",
    "reportSaved": "Report saved: {reportPath}",
    "summary": "📊 ANALYSIS SUMMARY",
    "finished": "✅ Analysis completed successfully!",
    "statusFileMissing": "❌ Translation file missing",
    "sourceKeys": "📊 Source keys: {count}",
    "translation": "📊 Translation: {translated}/{total} ({percentage}%)",
    "structure": "🗂️  Structure: {status}",
    "consistent": "Consistent",
    "inconsistent": "Inconsistent",
    "missingKeys": "Missing keys: {count}",
    "extraKeys": "Extra keys: {count}",
    "issues": "⚠️  Issues found: {count}",
    "issueType": {
      "not_translated": "Not translated: {count}",
      "empty_value": "Empty values: {count}",
      "partial_translation": "Partial translations: {count}",
      "format_mismatch": "Format mismatches: {count}",
      "type_mismatch": "Type mismatches: {count}",
      "structure_mismatch": "Structure mismatches: {count}",
      "same_as_source": "Same as source: {count}"
    },
    "keysToTranslate": "📋 KEYS TO TRANSLATE",
    "key": "Key",
    "english": "English",
    "needsTranslation": "NEEDS TRANSLATION",
    "andMoreKeys": "...and {count} more keys.",
    "noLanguages": "⚠️  No target languages found.",
    "languageStats": "{language}: {percentage}% complete ({translated}/{total} keys)",
    "invalidReportFilePath": "Invalid report file path",
    "failedToWriteReportFile": "Failed to write report file securely"
  },
  "complete": {
    "configLoadedSuccessfully": "Configuration loaded successfully",
    "configLoadingFailed": "Configuration loading failed",
    "sourceLanguageNotFound": "Source language directory not found: {sourceLanguage}",
    "couldNotParseTarget": "Could not parse target file: {file}",
    "couldNotParseSource": "Could not parse source file: {file}",
    "reportGenerated": "Report generated: {path}",
    "generateReportPrompt": "Would you like a report generated?",
    "title": "🌍 I18NTK TRANSLATION COMPLETION",
    "separator": "============================================================",
    "sourceDir": "📁 Source directory: {sourceDir}",
    "sourceLanguage": "🌐 Source language: {sourceLanguage}",
    "dryRunMode": "🧪 Dry run mode - no changes will be made",
    "languages": "🌍 Available languages: {languages}",
    "addingMissingKeys": "➕ Adding missing keys to translation files...",
    "processing": "🔄 Processing {language}...",
    "addedKeys": "✅ Added {count} missing keys",
    "noChangesNeeded": "✅ No changes needed for {language}",
    "summaryTitle": "📊 COMPLETION SUMMARY",
    "totalChanges": "📝 Total changes: {totalChanges}",
    "languagesProcessed": "🌍 Languages processed: {languagesProcessed}",
    "missingKeysAdded": "➕ Missing keys added: {missingKeysAdded}",
    "nextStepsTitle": "📋 NEXT STEPS",
    "nextStep1": "1. Run usage analysis:",
    "nextStep2": "node i18ntk-usage.js --output-report",
    "nextStep3": "2. Validate translations:",
    "nextStep4": "node i18ntk-validate.js",
    "nextStep5": "3. Analyze patterns:",
    "nextStep6": "node i18ntk-analyze.js",
    "allKeysAvailable": "🎉 All translation keys are now available!",
    "runWithoutDryRun": "💡 Run without --dry-run to apply changes",
    "deletingOldReport": "🗑️  Deleting old report...",
    "generatingFreshAnalysis": "📊 Generating fresh usage analysis...",
    "couldNotGenerate": "❌ Could not generate usage analysis",
    "reportNotFound": "📋 Usage report not found. Using common keys...",
    "foundMissingKeys": "📋 Found {count} missing keys from usage analysis",
    "couldNotParse": "❌ Could not parse usage report. Using common keys...",
    "errorDuringCompletion": "❌ Error during completion: {error}",
    "fatalError": "❌ Fatal error: {error}",
    "configurationValidationFailed": "Configuration validation failed: missing required fields"
  },
  "sizing": {
    "separator": "================================================================================",
    "lineSeparator": "--------------------------------------------------------------------------------",
    "analysisStats": "{stats}",
    "sourceDirectoryLabel": "📁 Source directory: {sourceDir}",
    "sourceLanguageLabel": "🌍 Source language: {sourceLanguage}",
    "strictModeLabel": "⚙️  Strict mode: {mode}",
    "invalidSourceDirectoryError": "Invalid source directory path: {sourceDir}",
    "sourceDirectoryNotFoundError": "Source directory not found: {sourceDir}",
    "invalidOutputDirectoryError": "Invalid output directory path: {outputDir}",
    "invalidReportFileError": "Invalid report file path",
    "problematic_keys": "Problematic keys: {problematicKeys}",
    "problematicKeysLabel": "Problematic keys: {problematicKeys}",
    "long_translations": "Long translations: {longTranslations}",
    "failedToSaveReportError": "Failed to save report securely",
    "invalidCsvFileError": "Invalid CSV file path",
    "failedToSaveCsvError": "Failed to save CSV report securely",
    "fatalError": "❌ Sizing analysis failed: {error}",
    "starting_i18n_sizing_analysis": "Starting i18n sizing analysis...",
    "source_directory": "Source directory: {sourceDir}",
    "found_languages": "Found languages: {languages}",
    "analyzing_file_sizes": "Analyzing file sizes...",
    "analyzing_translation_content": "Analyzing translation content...",
    "generating_size_comparisons": "Generating size comparisons...",
    "no_languages_found_for_comparison": "No languages found for comparison",
    "sizing_analysis_results": "I18n Sizing Analysis Results",
    "file_sizes_title": "File Sizes",
    "file_sizes_header": "Language    Size(KB)  Lines  Characters",
    "file_size_row": "{lang}      {sizeKB}      {lines}      {characters}",
    "language_statistics_title": "Language Statistics",
    "language_stats_header": "Language    Keys  Characters  Avg Length  Max Length  Empty  Long",
    "language_stats_row": "{lang}      {totalKeys}    {totalCharacters}    {averageKeyLength}    {maxKeyLength}    {emptyKeys}    {longKeys}",
    "size_variations_title": "Size Variations",
    "size_variations_header": "Language    Char Diff  % Diff  Problematic",
    "size_variation_row": "{lang}      {characterDifference}    {percentageDifference}%    {problematic}",
    "problematic_yes": "Yes",
    "problematic_no": "No",
    "recommendations_title": "Recommendations",
    "recommendation_item": "{index}. {recommendation}",
    "problematic_key_detail": "{index}. Key: '{key}' - Variations: {variations}",
    "generating_detailed_report": "Generating detailed report...",
    "keysHaveSignificantSizeVariations": "keys have significant size variations",
    "longTranslationsDetected": "${lang} has ${data.longKeys} translations longer than 100 characters - consider breaking them down",
    "longer": "longer",
    "shorter": "shorter",
    "review_translations": "Consider reviewing {lang} translations - they are {percentageDifference}% {comparison} than baseline",
    "report_saved_to": "Report saved to: {reportPath}",
    "considerReviewingTranslations": "Consider reviewing ${lang} translations - they are ${data.percentageDifference}% longer than baseline",
    "csv_report_saved_to": "CSV report saved to: {csvPath}",
    "human_report_saved": "Readable report saved: {reportPath}",
    "folder_summary_title": "Folder Summary",
    "folder_summary_table_header": "Language    Size(KB)    Keys    Avg Length    Total Chars",
    "folder_summary_row": "{lang}      {sizeKB}      {totalKeys}    {avgLength}    {totalChars}",
    "language_comparison_title": "Language Comparison",
    "language_comparison_row": "{lang}: {diff} chars ({percent}%) {status}",
    "summary_stats": "📊 Summary: {totalLanguages} languages, {totalKeys} keys - Reports saved to {reportPath}",
    "detailedKeysDescription": "Show detailed key-level analysis in console",
    "too_many_keys_warning": "⚠️ Too many keys to display in console - check the detailed report file for full analysis",
    "no_translation_files_found": "No translation files found",
    "analysis_completed": "Analysis completed in {duration}ms",
    "analysis_failed": "Analysis failed: {errorMessage}",
    "starting_analysis": "Starting analysis...",
    "found_files": "Found {count} files",
    "failed_to_parse_language_error": "Failed to parse {language} translations: {errorMessage}",
    "recommendations": {
      "keys_have_significant_size_variations": "keys have significant size variations",
      "consider_reviewing_translations": "Consider reviewing {lang} translations - they are {percentageDifference}% {comparison} than baseline",
      "long_translations_detected": "{lang} has {longKeys} translations longer than {threshold} characters - consider breaking them down"
    },
    "detailed_key_analysis_title": "Detailed Key Analysis",
    "key_analysis_detail": "{lang}: {length} chars ({status}) - {translation}",
    "key_analysis_header": "Key: {key}",
    "status_empty": "empty",
    "status_long": "long",
    "status_ok": "ok"
  },
  "usage": {
    "help_message": "I18n Usage Analyzer  Usage: node i18ntk-usage.js [options]  Options:   --source-dir <dir>     Source directory to scan (default: ./src)   --i18n-dir <dir>       I18n directory (default: ./src/locales)   --output-report        Generate detailed report   --output-dir <dir>     Output directory for reports (default: ./reports)   --help                 Show this help  Examples:   node 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": "📁 Source directory: {sourceDir}",
    "translationCompletenessTitle": "🌍 Translation Completeness:",
    "i18n_directory_thisi18ndir": "🌐 I18n directory: {i18nDir}",
    "failed_to_parse_filename_error": "⚠️  Failed to parse {fileName}: {errorMessage}",
    "analyzing_source_files": "🔍 Analyzing source files...",
    "found_files_in_source": "📂 Found {numFiles} files in source directory",
    "found_thisusedkeyssize_unique_": "🎯 Found {usedKeysSize} unique used keys",
    "total_key_usages_totalkeysfoun": "📊 Total key usages: {totalKeysFound}",
    "loading_available_translation_": "📋 Loading available translation keys...",
    "found_thisavailablekeyssize_av": "✅ Found {availableKeysSize} available keys",
    "foundTranslationFiles": "✅ Found {count} translation files",
    "errorReadingI18nDirectory": "⚠️  Error reading i18n directory: {error}",
    "pressEnterToReturnToMenu": "📝 Press Enter to return to the main menu...",
    "notTranslatedKeysTotal": "⚠️  Not translated keys: {total}",
    "noSourceFilesFound": "⚠️  No source files found in the source directory.",
    "reviewNotTranslatedKeys": "💡 Review not translated keys",
    "analysisCompletedSuccessfully": "🎉 Analysis completed successfully!",
    "detectedSourceDirectory": "Detected source directory: {sourceDir}",
    "detectedI18nDirectory": "Detected i18n directory: {i18nDir}",
    "fileInfo": "📄 {namespace}: {keys} keys",
    "failedToAnalyzeUsage": "❌ Failed to analyze usage: {error}",
    "failedToAnalyzeFile": "❌ Failed to analyze file: {error}",
    "failedToExtractKeys": "❌ Failed to extract keys from {filePath}: {error}",
    "analysisFailedError": "❌ Analysis failed: {error}",
    "analyzerInitialized": "Analyzer initialized",
    "analyzerInitFailed": "Analyzer initialization failed: {error}",
    "argsParsed": "Arguments parsed",
    "processedFiles": "Processed {processedFiles} of {totalFiles} files.",
    "argsParseFailed": "Argument parsing failed: {error}",
    "translationDiscoveryError": "Translation discovery error: {error}",
    "fileTraversalError": "File traversal error: {error}",
    "sourceEqualsI18nWarn": "{reason}. Usage analysis will not scan locale files as source code.",
    "i18nEqualsSourceWarn": "⚠️  I18n directory and source directory are the same. This may cause issues with the analysis.",
    "usageAnalysisFailed": "⚠️  Usage analysis failed: {error}",
    "translationFileParseError": "⚠️  Translation file parse error: {error}",
    "translationKeysLoadError": "⚠️  Translation keys load error: {error}",
    "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% translated)",
    "missingKeysCount": "⚠️  Missing keys: {count}",
    "analyzingTranslationCompleteness": "Analyzing translation completeness...",
    "unusedKeysCount": "Unused keys: {count}",
    "usedKeysCount": "Used keys: {count}",
    "availableKeysCount": "Available keys: {count}",
    "analysisResults": "Analysis results:",
    "i18nDirectoryNotFound": "⚠️  I18n directory not found. Please check the path.",
    "sourceDirectoryNotFound": "⚠️  Source directory not found: {dir}",
    "checkUsage": {
      "title": "🔍 I18NTK USAGE ANALYSIS",
      "analyzing_source_files": "🔍 Analyzing source files...",
      "source_directory_thissourcedir": "📁 Source directory: {sourceDir}",
      "i18n_directory_thisi18ndir": "📁 i18n directory: {i18nDir}",
      "found_files_in_source": "✅ Found {numFiles} files in source directory",
      "no_source_files_found": "⚠️  No source files found in the specified directory",
      "processedFiles": "📊 Processed {processedFiles} of {totalFiles} files",
      "failedToProcessFile": "❌ Failed to process",
      "found_thisusedkeyssize_unique_": "🔍 Found {usedKeysSize} unique used keys",
      "total_key_usages_totalkeysfoun": "📊 Total key usages: {totalKeysFound}",
      "loading_available_translation_": "📂 Loading available translation keys...",
      "found_thisavailablekeyssize_av": "✅ Found {availableKeysSize} available keys",
      "message": "Analyzing translation key usage across your project...",
      "usage_analysis_results": "📊 USAGE ANALYSIS RESULTS",
      "source_files_scanned_thisfileu": "📁 Source files scanned: {fileUsageSize}",
      "available_translation_keys_thi": "✅ Available translation keys: {availableKeysSize}",
      "used_translation_keys_thisused": "🔍 Used translation keys: {usedKeysSize}",
      "dynamic_keys_detected_dynamick": "⚡ Dynamic keys detected: {dynamicKeysLength}",
      "unused_keys_unusedkeyslength": "🗑️  Unused keys: {unusedKeysLength}",
      "missing_keys_missingkeyslength": "❌ Missing keys: {missingKeysLength}",
      "translation_completeness_title": "📈 TRANSLATION COMPLETENESS",
      "language_completeness_stats": "{language}: {translated}/{total} keys ({percentage}%)",
      "n_sample_unused_keys": "🗑️  SAMPLE UNUSED KEYS (first 5):",
      "key": "🔑 {key}",
      "and_unusedkeyslength_5_more": "... and {count} more unused keys",
      "n_sample_missing_keys": "❌ SAMPLE MISSING KEYS (first 5):",
      "and_missingkeyslength_5_more": "... and {count} more missing keys",
      "n_generating_detailed_report": "📊 Generating detailed report...",
      "report_saved_reportpath": "📄 Report saved: {reportPath}",
      "n_recommendations": "💡 RECOMMENDATIONS:",
      "consider_removing_unused_trans": "🗑️  Consider removing unused translations to reduce bundle size",
      "add_missing_translation_keys_t": "➕ Add missing translation keys to maintain consistency",
      "review_dynamic_keys_manually_t": "🔍 Review dynamic keys manually (they may be valid)",
      "all_translation_keys_are_prope": "✅ All translation keys are properly used!",
      "n_next_steps": "🎯 NEXT STEPS:",
      "2_check_the_detailed_report_fo": "2. Check the detailed report for specific issues",
      "help_message": "I18n Usage Analyzer  Usage: node i18ntk-usage.js [options]  Options:   --source-dir <dir>     Source directory to scan (default: ./src)   --i18n-dir <dir>       I18n directory (default: ./src/locales)   --output-report        Generate detailed report   --output-dir <dir>     Output directory for reports (default: ./reports)   --help                 Show this help  Examples:   node 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. Review the analysis results in the console or generated report.",
      "2_run_with_outputreport_for_de": "2. Run with --output-report for detailed report.",
      "3_remove_unused_keys_or_add_mi": "3. Remove unused keys or add missing keys to your source code.",
      "4_rerun_analysis_to_verify_imp": "4. Re-run analysis to verify improvements.",
      "noSourceFilesFound": "No source files found to analyze.",
      "i18nDirectoryNotFound": "I18n directory not found: {i18nDir}",
      "noTranslationLanguagesFound": "No translation languages found.",
      "failedToAnalyzeFile": "Failed to analyze file {filePath}: {error}",
      "failedToAnalyzeLanguage": "Failed to analyze language {language}: {error}",
      "translationCompletenessAnalysisFailed": "Translation completeness analysis failed: {error}",
      "n": "\\n"
    },
    "complete": {
      "configLoadedSuccessfully": "Configuration loaded successfully",
      "configLoadingFailed": "Configuration loading failed",
      "title": "🌍 I18NTK TRANSLATION COMPLETION",
      "separator": "============================================================",
      "sourceDir": "📁 Source directory: {sourceDir}",
      "sourceLanguage": "🌐 Source language: {sourceLanguage}",
      "dryRunMode": "🧪 Dry run mode - no changes will be made",
      "languages": "🌍 Available languages: {languages}",
      "addingMissingKeys": "➕ Adding missing keys to translation files...",
      "processing": "🔄 Processing {language}...",
      "addedKeys": "✅ Added {count} missing keys",
      "changeDetails": "📝 {file}: {key}",
      "andMore": "...and {count} more",
      "noChangesNeeded": "✅ No changes needed for {language}",
      "summaryTitle": "📊 COMPLETION SUMMARY",
      "totalChanges": "📝 Total changes: {totalChanges}",
      "languagesProcessed": "🌍 Languages processed: {languagesProcessed}",
      "missingKeysAdded": "➕ Missing keys added: {missingKeysAdded}",
      "nextStepsTitle": "📋 NEXT STEPS",
      "nextStep1": "1. Run usage analysis:",
      "nextStep2": "node i18ntk-usage.js --output-report",
      "nextStep3": "2. Validate translations:",
      "nextStep4": "node i18ntk-validate.js",
      "nextStep5": "3. Analyze patterns:",
      "nextStep6": "node i18ntk-analyze.js",
      "allKeysAvailable": "🎉 All translation keys are now available!",
      "runWithoutDryRun": "💡 Run without --dry-run to apply changes",
      "deletingOldReport": "🗑️  Deleting old report...",
      "generatingFreshAnalysis": "📊 Generating fresh usage analysis...",
      "couldNotGenerate": "❌ Could not generate usage analysis",
      "reportNotFound": "📋 Usage report not found. Using common keys...",
      "foundMissingKeys": "📋 Found {count} missing keys from usage analysis",
      "couldNotParse": "❌ Could not parse usage report. Using common keys..."
    },
    "noTranslationLanguagesFound": "No Translation Languages Found",
    "failedToAnalyzeLanguage": "Failed To Analyze Language",
    "translationCompletenessAnalysisFailed": "Translation Completeness Analysis Failed",
    "failedToProcessFile": "Failed to process file:",
    "failedToSaveReport": "Failed to save usage report: {error}",
    "i18nDirectoryDoesNotExist": "I18n directory does not exist: {dir}",
    "reportSavedTo": "Usage report saved to: {reportPath}",
    "sourceDirectoryDoesNotExist": "Source directory does not exist: {dir}",
    "noSourceDirectoryConfigured": "(none configured)"
  },
  "validate": {
    "help_message": "I18n Translation Validator  Usage: node i18ntk-validate.js [options]  Options:   --source-dir <dir>     Source directory to scan (default: ./src)   --i18n-dir <dir>       I18n directory (default: ./src/locales)   --output-report        Generate detailed report   --output-dir <dir>     Output directory for reports (default: ./reports)   --help                 Show this help  Examples:   node 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 Translation Validator",
    "message": "Starting validation process...",
    "sourceDirectory": "📁 Source directory: {dir}",
    "sourceLanguage": "🌍 Source language: {sourceLanguage}",
    "strictMode": "⚙️  Strict mode: {mode}",
    "noTargetLanguages": "No target languages configured; skipping target validation. Add languages via \"i18ntk init --languages=de,fr\".",
    "validatingLanguages": "🌍 Validating languages: {langs}",
    "validatingLanguage": "🔍 Validating language: {lang}",
    "filesCount": "📄 Files: {count}",
    "keysCount": "🔑 Keys: {count}",
    "missingFilesCount": "📁 Missing files: {count}",
    "syntaxErrorsCount": "❌ Syntax errors: {count}",
    "translationPercentage": "🎯 Translation: {percentage}% ({translated}/{total} keys)",
    "validationSummary": "📊 VALIDATION SUMMARY",
    "validation_failed": "❌ Validation failed: {error}",
    "totalErrors": "❌ Total errors: {count}",
    "totalWarnings": "⚠️  Total warnings: {count}",
    "errorsSection": "❌ ERRORS",
    "warningsSection": "⚠️  WARNINGS",
    "recommendationsSection": "💡 RECOMMENDATIONS",
    "fixErrorsFirst": "1. Fix all errors first",
    "resolveMissingFilesAndSyntaxErrors": "1. Resolve missing files and syntax errors",
    "fixStructuralInconsistencies": "2. Fix structural inconsistencies",
    "completeMissingTranslations": "3. Complete missing translations",
    "rerunValidation": "4. Rerun validation to verify fixes",
    "addressWarnings": "Address warnings to improve quality",
    "reviewWarnings": "Review warnings and fix where appropriate",
    "considerRunningWithStrict": "2. Consider running with --strict flag for stricter validation",
    "allValidationsPassed": "🎉 All validations passed!",
    "considerRunningUsageAnalysis": "Consider running usage analysis: node i18ntk-usage.js",
    "deletedOldReport": "🗑️  Deleted old validation report",
    "sourceDir": "📁 Source directory: {sourceDir}",
    "i18nDir": "🌐 I18n directory: {i18nDir}",
    "loadingTranslationFiles": "📋 Loading translation files...",
    "foundTranslationFilesCount": "✅ Found {count} translation files",
    "analyzingTranslations": "🔍 Analyzing translations...",
    "validationCompletedSuccessfully": "🎉 Validation completed successfully!",
    "validationErrorsFound": "⚠️  Validation errors found: {count}",
    "validationWarningsFound": "⚠️  Validation warnings found: {count}",
    "validationPassed": "✅ Validation passed with no errors",
    "validationFailed": "Validation failed: {error}",
    "startingValidationProcess": "🔍 Starting validation process...",
    "validationProcessCompletedSuccessfully": "✅ Validation process completed successfully",
    "stackTrace": "Stack trace: {stack}",
    "authenticationFailed": "❌ Authentication failed. Access denied.",
    "fatalValidationError": "❌ Fatal validation error: {error}",
    "configAccess": "Accessing configuration for validation",
    "configValidated": "Configuration validated successfully",
    "configError": "Configuration error: {error}",
    "validatorInit": "Initializing I18n validator",
    "validatorInitialized": "I18n validator initialized successfully",
    "validatorInitError": "Validator initialization error: {error}",
    "argsParsing": "Parsing command line arguments",
    "argsParsed": "Command line arguments parsed successfully",
    "argsParseError": "Argument parsing error: {error}",
    "languagesScan": "Scanning available languages",
    "languagesFound": "Found {count} languages",
    "languagesScanError": "Language scanning error: {error}",
    "filesScan": "Found {count} files in {language}",
    "filesScanError": "File scanning error: {error}",
    "jsonValidated": "JSON syntax validated: {filePath}",
    "jsonValidationError": "JSON validation error: {error}",
    "languageValidation": "Validating language: {language}",
    "languageValidationError": "Language validation error: {error}",
    "fileDeleted": "File deleted",
    "runStarted": "Starting validation run",
    "runCompleted": "Validation run completed successfully",
    "runError": "Validation run failed: {error}",
    "scriptExecution": "Script execution",
    "validationCompleted": "Validation completed",
    "validationError": "Validation error: {error}",
    "separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
    "languageHeader": "🌐 Language: {language}",
    "validationResults": "📊 Validation Results",
    "noErrors": "✅ No errors found",
    "noWarnings": "✅ No warnings found",
    "summaryHeader": "📋 OVERALL SUMMARY",
    "progressIndicator": "⏳ Processing...",
    "completedIndicator": "✅ Completed",
    "errorIndicator": "❌ Error",
    "warningIndicator": "⚠️  Warning",
    "infoIndicator": "ℹ️  Info",
    "sourceDirNotConfigured": "Source directory not configured",
    "sourceLanguageNotConfigured": "Source language not configured",
    "translationFunctionNotInitialized": "Translation function not properly initialized",
    "sourceLanguageDirectoryNotFound": "Source language directory not found",
    "specifiedLanguageNotFound": "Specified language not found",
    "noJsonFilesFound": "No JSON files found in source directory: {sourceDir}",
    "i18nDirectoryNotFound": "I18n directory not found: {i18nDir}",
    "invalidDirectoryPaths": "Invalid directory paths detected",
    "invalidSampleFilePath": "Invalid sample file path",
    "failedToCreateSampleTranslationFile": "Failed to create sample translation file",
    "invalidFilePathDetected": "Invalid file path detected",
    "failedToWriteFile": "Failed to write file: {filePath}",
    "invalidSourceDirectory": "Invalid source directory: {sourceDir}",
    "invalidSourceLanguageDirectory": "Invalid source language directory: {sourceDir}"
  },
  "adminCli": {
    "setupPinProtectionTitle": "🔐 Setting up Admin PIN Protection",
    "setupPinProtectionDescription": "This will require a 4-6 digit PIN for administrative operations.",
    "enablePinProtectionPrompt": "Do you want to enable admin PIN protection?",
    "setupCancelled": "Admin PIN protection setup cancelled.",
    "enterPinPrompt": "Enter a 4-6 digit PIN:",
    "pinFormatError": "❌ PIN must be 4-6 digits. Please try again.",
    "confirmPinPrompt": "Confirm PIN:",
    "pinMismatchError": "❌ PINs do not match. Please try again.",
    "pinProtectionEnabledSuccess": "✅ Admin PIN protection enabled successfully!",
    "pinRecoveryWarning": "⚠️  Remember your PIN - it cannot be recovered if lost.",
    "setupPinProtectionFailed": "❌ Failed to setup admin PIN protection.",
    "errorSettingUpPin": "❌ Error setting up admin PIN: {message}",
    "authRequiredForOperation": "🔐 Admin authentication required for: {operation}",
    "invalidPinFormat": "❌ Invalid PIN format. PIN must be 4-6 digits.",
    "authenticationSuccess": "✅ Authentication successful!",
    "invalidPinAttemptsRemaining": "❌ Invalid PIN. {remaining} attempts remaining.",
    "authenticationFailedAccessDenied": "❌ Authentication failed. Access denied.",
    "authenticationError": "❌ Authentication error: {message}",
    "pinProtectionNotEnabled": "Admin PIN protection is not currently enabled.",
    "disablingPinProtectionTitle": "🔓 Disabling Admin PIN Protection",
    "confirmDisablePinProtection": "Are you sure you want to disable admin PIN protection?",
    "operationCancelled": "Operation cancelled.",
    "pinProtectionDisabledSuccess": "✅ Admin PIN protection disabled.",
    "disablePinProtectionFailed": "❌ Failed to disable admin PIN protection.",
    "errorDisablingPinProtection": "❌ Error disabling admin protection: {message}",
    "adminProtectionStatusTitle": "🔐 Admin Protection Status",
    "statusEnabled": "Status: ✅ ENABLED",
    "protectionDetails": "Protection: 4-6 digit PIN required for admin operations",
    "lockoutDetails": "Lockout: 3 failed attempts = 15 minute lockout",
    "statusDisabled": "Status: ❌ DISABLED",
    "noAuthRequired": "Protection: No authentication required",
    "unprotectedRisk": "Risk: Administrative operations are unprotected",
    "errorCheckingAdminStatus": "❌ Error checking admin status: {message}",
    "authRequired": "🔐 Admin authentication required.",
    "invalidPin": "❌ Invalid PIN.",
    "authSuccess": "✅ Authentication successful!",
    "adminPinSetupCli": "admin_pin_setup_cli",
    "adminAuthFailedCli": "admin_auth_failed_cli",
    "adminAuthDisabledCli": "admin_auth_disabled_cli",
    "protectedAccess": "Protected access: Admin authentication required for sensitive operations.",
    "enterPin": "Enter admin PIN:",
    "accessGranted": "Access granted."
  },
  "adminPin": {
    "setup_title": "🔐 Admin PIN Setup",
    "setup_separator": "============================================================",
    "setup_description": "Create a 4-6 digit PIN for admin access to sensitive settings.",
    "required_for_title": "This PIN will be required for:",
    "required_for_1": "• Changing security settings",
    "required_for_2": "• Modifying advanced configurations",
    "required_for_3": "• Accessing debug tools",
    "required_for_4": "• Resetting settings",
    "setup_note": "💡 Note: You will see asterisks (*) as you type - these are just masking characters.",
    "setup_digits_only": "Only numbers 0-9 are accepted as PIN digits.",
    "invalid_pin_length": "❌ Invalid PIN. Must be 4-6 digits (numbers 0-9 only).",
    "invalid_pin_example": "Example: 1234 or 567890",
    "pins_do_not_match": "❌ PINs do not match.",
    "setup_success": "✅ Admin PIN has been set successfully!",
    "setup_warning": "⚠️  Keep this PIN secure. It cannot be recovered if lost.",
    "setup_error": "❌ Error setting up PIN:",
    "session_expired": "⏰ Admin session expired due to inactivity.",
    "no_pin_set_setting_up": "⚠️  No admin PIN set. Setting up PIN...",
    "no_pin_configured_access_denied": "⚠️  No admin PIN configured. Access denied.",
    "use_admin_settings_to_set_pin": "💡 Use the admin settings to set up a PIN first.",
    "locked_out": "🔒 Admin access is locked due to too many failed attempts.",
    "wait_before_retry": "Please wait 5 minutes before trying again.",
    "access_granted": "✅ Admin access granted.",
    "incorrect_pin": "❌ Incorrect PIN. {attempts} attempts remaining.",
    "verify_pin_error": "❌ Error verifying PIN:",
    "already_configured": "✅ Admin PIN is already configured.",
    "optional_setup_title": "🔐 Admin PIN Setup (Optional)",
    "optional_setup_description": "Admin PIN protection adds security for sensitive operations like:",
    "setup_prompt": "Would you like to set up an admin PIN? (y/N):",
    "skipping_setup": "⏭️  Skipping admin PIN setup. You can set it up later in settings.",
    "setup_prompt_error": "❌ Error during PIN setup prompt:",
    "protectedAccess": "Protected access: Admin authentication required for sensitive operations.",
    "enterPin": "Enter admin PIN:",
    "accessGranted": "Access granted.",
    "invalidPin": "❌ Invalid PIN. Please try again.",
    "weak_pin_warning": "⚠️  WARNING: This PIN appears to be weak or common.",
    "weak_pin_suggestion": "💡 Consider using a stronger PIN with varied digits.",
    "use_anyway_prompt": "Type \"yes\" to use anyway, or press Enter to choose a different PIN:",
    "enter_new_pin": "Enter new admin PIN (4-6 digits):",
    "confirm_pin": "Confirm admin PIN:",
    "not_set": "Not Set",
    "pin_display_mask": "####"
  },
  "debug": {
    "title": "🔧 Debug Tools",
    "separator": "============================================================",
    "mainDebuggerSystemDiagnostics": "1. System Diagnostics",
    "_consoleTranslationsCheck": "// 2. Console Translations Check",
    "_exportMissingKeys": "// 3. Export Missing Translation Keys",
    "_replaceHardcodedConsole": "// 4. Replace Hardcoded Console Strings",
    "_consoleKeyChecker": "// 5. Console Key Checker",
    "debugLogs": "2. Debug Logs",
    "backToMainMenu": "0. Back to Main Menu",
    "selectOption": "Select a debug tool:",
    "runningDebugTool": "Running {displayName}...",
    "debugToolNotFound": "❌ Debug tool not found: {toolName}",
    "errorRunningDebugTool": "Error running debug tool '{displayName}': {error}",
    "recentDebugLogs": "📄 Recent Debug Logs",
    "noDebugLogsFound": "❌ No debug logs found.",
    "debugLogsDirectoryNotFound": "❌ Debug logs directory not found.",
    "selectLogPrompt": "Select log file to view (1-{count}):",
    "invalidChoiceSelectRange": "Invalid choice. Please select from the available range.",
    "contentOf": "📄 Content of {filename}:",
    "pressEnterToContinue": "Press Enter to continue..."
  },
  "detect_language_mismatches": {
    "tool_title": "🔍 Language Mismatch Detection Tool",
    "separator": "=====================================",
    "analyzing_file": "📄 Analyzing {language}.json...",
    "error_analyzing_file": "❌ Error analyzing {filename}: {errorMessage}",
    "results_title": "📊 LANGUAGE MISMATCH DETECTION RESULTS",
    "results_separator": "========================================",
    "summary_title": "📋 SUMMARY:",
    "total_files_analyzed": "Total files analyzed: {totalFiles}",
    "files_with_mismatches": "Files with mismatches: {filesWithMismatches}",
    "total_mismatches_found": "Total mismatches found: {totalMismatches}",
    "no_mismatches_found": "✅ No language mismatches found! All translations appear to be in their correct languages.",
    "detailed_results_title": "🔍 DETAILED RESULTS:",
    "file_mismatch_header": "📄 {filename} ({language})",
    "mismatches_count": "Found {count} mismatch(es):",
    "mismatch_details": "{index}. Key: {key}",
    "mismatch_value": "Value: \"{value}\"",
    "mismatch_issue": "Issue: {description}",
    "recommendations_title": "💡 RECOMMENDATIONS:",
    "recommendation_1": "1. Review and translate all entries marked with [TRANSLATE]",
    "recommendation_2": "2. Replace language prefixes (e.g., [DE], [FR]) with proper translations",
    "recommendation_3": "3. Translate English text to the appropriate target language",
    "recommendation_4": "4. Use native language equivalents for all user-facing text",
    "recommendation_5": "5. Run this tool again after making corrections to verify fixes",
    "detailed_report_saved": "📄 Detailed report saved to: {reportPath}",
    "error_saving_report": "❌ Error saving report: {errorMessage}",
    "auto_fix_mode": "🔧 Auto-fix mode {dryRun}",
    "auto_fix_separator": "=====================================",
    "fixed_file": "✅ Fixed {filename}",
    "auto_fix_summary_title": "📊 Auto-fix Summary:",
    "total_fixes_applied": "Total fixes applied: {count}",
    "preview_fixes_title": "🔍 Preview of fixes:",
    "fix_details": "{file}: {key}      Old: \"{old}\"      New: \"{new}\"",
    "more_fixes": "... and {count} more fixes",
    "run_with_apply_fixes": "💡 Run with --apply to apply these fixes",
    "error_general": "❌ Error:",
    "mainDebuggerSystemDiagnostics": "Main Debugger / System Diagnostics",
    "exportMissingKeys": "Export Missing Keys",
    "replaceHardcodedConsole": "Replace Hardcoded Console",
    "consoleKeyChecker": "Console Key Checker",
    "debugLogs": "Debug Logs",
    "backToMainMenu": "Back to Main Menu",
    "invalidChoiceSelectRange": "❌ Invalid choice. Please select a number within the displayed range.",
    "runningDebugTool": "Running debug tool: {displayName}",
    "debugToolNotFound": "Debug tool '{toolName}' not found.",
    "recentDebugLogs": "Recent Debug Logs",
    "noDebugLogsFound": "No debug logs found.",
    "logEntry": "Log Entry: {timestamp} - {message}",
    "debugLogsDirectoryNotFound": "Debug logs directory not found."
  },
  "help": {
    "title": "📊 I18NTK MANAGEMENT HELP",
    "usage": "Usage: node main/manage/index.js [options]",
    "interactiveMode": "💡 Use: node main/manage/index.js --command=<command> for direct execution",
    "showHelp": "📖 Use: node main/manage/index.js --help for available commands",
    "availableCommands": "📖 Available Commands:",
    "initProject": "🚀 Initialize new languages",
    "analyzeTranslations": "🔍 Analyze translations",
    "validateTranslations": "✅ Validate translations",
    "checkUsage": "📊 Check key usage",
    "initCommand": "init      - Initialize new languages",
    "analyzeCommand": "analyze   - Analyze translations",
    "validateCommand": "validate  - Validate translations",
    "usageCommand": "usage     - Check key usage",
    "sizingCommand": "sizing    - Analyze sizing",
    "completeCommand": "complete  - Complete translations (100% coverage)",
    "summaryCommand": "summary   - Show project status",
    "debugCommand": "debug     - Debug translation issues",
    "scannerCommand": "scanner   - Scan for keys",
    "translateCommand": "translate - Auto-translate locale files",
    "menu": {
      "pressEnterToContinue": "Press Enter to continue...",
      "title": "🌐 I18NTK MANAGEMENT MENU",
      "description": "Interactive menu for managing internationalization",
      "exit": "🚪 Exit"
    },
    "commands": {
      "init": "init      - Initialize new languages",
      "analyze": "analyze   - Analyze translations",
      "validate": "validate  - Validate translations",
      "usage": "usage     - Check key usage",
      "sizing": "sizing    - Analyze sizing",
      "complete": "complete  - Complete translations (100% coverage)",
      "summary": "summary   - Show project status",
      "debug": "debug     - Debug translation issues"
    },
    "options": {
      "sourceDir": "--source-dir <dir>     Source directory to analyze",
      "output": "--output <file>        Output file for the report",
      "verbose": "--verbose, -v           Show detailed information",
      "keepReports": "--keep-reports          Keep existing reports",
      "deleteReports": "--delete-reports        Delete existing reports",
      "help": "--help, -h              Show this help"
    },
    "examples": {
      "title": "Examples:",
      "example1": "node i18ntk-manage.js",
      "example2": "node i18ntk-manage.js --source-dir ./locales",
      "example3": "node i18ntk-manage.js --output summary-report.txt",
      "example4": "node i18ntk-manage.js --verbose",
      "example5": "node i18ntk-manage.js --source-dir ./locales --output report.json"
    },
    "features": {
      "initProject": "🚀 Initialize new languages",
      "analyzeTranslations": "🔍 Analyze translations",
      "validateTranslations": "✅ Validate translations",
      "checkUsage": "📊 Check key usage",
      "completeTranslations": "🎯 Complete translations (100% coverage)",
      "showSizing": "📏 Analyze sizing",
      "runWorkflow": "🔄 Run full workflow",
      "showStatus": "📋 Show project status",
      "deleteReports": "🗑️  Delete all reports",
      "changeLanguage": "🌍 Change UI language",
      "settings": "⚙️  Settings",
      "showHelp": "❓ Help",
      "debugTools": "🔧 Debug Tools"
    },
    "messages": {
      "selectOption": "Select an option:",
      "invalidOption": "Invalid option. Please try again.",
      "operationCompleted": "✅ Operation completed successfully!",
      "pressEnter": "Press Enter to continue...",
      "goodbye": "👋 Goodbye!",
      "unknownCommand": "Unknown command: {command}",
      "nonInteractive": "⚠️ Non-interactive mode detected. Menu displayed for reference only."
    },
    "i18n_helper": {
      "translation_file_not_found": "Translation file not found: {translationFile}",
      "error_loading_translations": "Error loading translations: {errorMessage}",
      "translation_not_found": "Translation not found for key: {key}",
      "translation_key_not_string": "Translation key does not resolve to a string: {key}",
      "error_reading_locales_directory": "Error reading locales directory: {errorMessage}"
    }
  },
  "init": {
    "initializationTitle": "🚀 i18n Management Toolkit - Project Initialization",
    "initializationCancelled": "🚫 Initialization cancelled by user.",
    "sourceDirectoryLabel": "📁 Source Directory: {dir}",
    "requiredTitle": "Initialization Required",
    "requiredBody": "This project must be initialized before running this command.",
    "promptRunNow": "Would you like to run initialization now? (y/N):",
    "sourceLanguageLabel": "🌍 Source Language: {language}",
    "detectedI18nFrameworks": "🔍 Detected i18n framework(s): {frameworks}",
    "pinMustBe4Digits": "🔐 PIN must be 4 digits.",
    "existingDirectoriesFound": "📁 Existing translation directories found:",
    "useExistingDirectoryPrompt": "Do you want to use the existing directory? (y/n)",
    "selectDirectoryPrompt": "Select a directory by entering the number (or choose 'Create new directory')",
    "enterNewDirectoryName": "Enter the name for your new translation directory",
    "createdNewDirectory": "✅ Created new directory: {dir}",
    "directoryAlreadyExists": "⚠️ Directory already exists: {dir}",
    "invalidDirectoryName": "❌ Invalid directory name provided.",
    "usingExistingDirectory": "Using existing directory: {dir}",
    "adminPinSetupOptional": "🔐 Admin PIN setup optional (recommended for security)",
    "adminPinSeparator": "------------------------------",
    "adminPinDescription1": "Admin PIN: 4-digit number for secure access",
    "adminPinDescription2": "Leave blank to skip PIN setup",
    "adminPinDescription3": "If you set a PIN, it will be required for all future secure actions.",
    "adminPinDescription4": "AES-256-GCM encryption used for secure storage of the PIN.",
    "adminPinSetupPrompt": "Enter admin PIN (4 digits) or leave blank to skip:",
    "skippingAdminPinSetup": "Skipping admin PIN setup...",
    "settingUpAdminPin": "🔐 Setting up Admin PIN...",
    "enterAdminPin": "Enter Admin PIN:",
    "confirmAdminPin": "Confirm Admin PIN:",
    "pinMismatch": "PINs do not match. Please try again.",
    "adminPinSetupSuccess": "🔐 Admin PIN setup successful!",
    "adminPinSetupFailure": "🔐 Admin PIN setup failed. Please try again.",
    "adminProtectionEnabled": "🔐 Admin protection enabled. All actions require PIN authentication.",
    "adminProtectionDisabled": "🔐 Admin protection disabled. All actions are now available without PIN.",
    "autoDetectedI18nDirectory": "Auto-detected i18n directory: {directory}",
    "initializingProject": "⚙️  Initializing project configuration...",
    "createdSampleTranslationFile": "✅ Created sample translation file: {file}",
    "languageSelectionTitle": "🌐 Language Configuration",
    "available": "Available",
    "defaultLanguages": "📝 Default languages: {languages}",
    "enterLanguageCodes": "🎯 Enter target language codes (comma-separated, e.g. de, es, fr, ru):",
    "targetLanguages": "🌍 Target Languages",
    "foundSourceFiles": "📄 Found {count} source files to analyze",
    "processingLanguage": "🔄 Processing language: {language}",
    "fileProcessingResult": "✅ Processed {file}: {translated}/{total} keys ({percentage}%)",
    "overallProgress": "📊 Overall Progress: {translated}/{total} keys processed ({percentage}%)",
    "initializationSummaryTitle": "📋 Initialization Summary",
    "languageSummary": "{icon} {name} ({code}): {percentage}% complete",
    "languageFiles": "📄 Files: {count}",
    "languageKeys": "🔤 Keys: {translated}/{total}",
    "languageMissing": "⚠️  Missing: {count}",
    "initializationCompletedSuccessfully": "🎉 Project initialization completed successfully!",
    "nextStepsTitle": "🚀 Next Steps",
    "nextStep1": "1. Review the generated translation files in your locales/ directory",
    "nextStep2": "2. Add translations for each target language",
    "nextStep3": "3. Run 'npm run i18ntk' again to validate translations",
    "detectedFrameworks": "✅ Detected i18n framework(s): {frameworks}",
    "setup": {
      "title": "Setup",
      "question": "Setup question",
      "opt_single": "Single file",
      "opt_modular": "Modular",
      "opt_existing": "Existing",
      "choice_prompt": "Choose an option:",
      "opt_confirm": "Confirm",
      "opt_cancel": "Cancel",
      "apply_all_prompt": "Apply this structure to all languages? (y/N):",
      "per_language_intro": "You've chosen to configure languages individually. Here are the available languages:",
      "available_languages": "Available languages: {languages}",
      "include_prompt": "Enter comma-separated language codes to include (e.g., 'de,fr,es'):"
    },
    "warnings": {
      "noPackageJson": "No package.json found. Cannot auto-detect i18n framework."
    },
    "errorsPackageJsonRead": "Error reading package.json: {error}",
    "errorsNoFramework": "No i18n framework detected. Please install one or specify manually.",
    "suggestions": {
      "noFramework": "No i18n framework detected. Consider using one of the following:",
      "installFramework": "To install a framework, run: npm install <package-name>"
    },
    "frameworks": {
      "react": "- React i18next (react-i18next)",
      "vue": "- Vue i18n (vue-i18n)",
      "i18next": "- i18next (i18next)",
      "nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
      "svelte": "- Svelte i18n (svelte-i18n)"
    },
    "continueWithoutI18nPrompt": "No i18n framework detected. Do you want to continue without one? (y/N):",
    "detectedI18nFramework": "Detected i18n framework: {frameworks}",
    "existingDirectoryItem": "{index}. {location}",
    "usingExistingStructure": "Using existing structure: {dir}",
    "creatingSourceDirectory": "Creating source directory: {dir}",
    "creatingSourceLanguageDirectory": "Creating source language directory: {dir}",
    "errors": {
      "errorExecutingCommand": "Error executing command: {error}",
      "sourceDirectoryNotFound": "Source directory not found: {dir}",
      "sourceLanguageDirectoryNotFound": "Source language directory not found: {dir}",
      "noJsonFilesInSourceDirectory": "No JSON files found in source directory: {dir}",
      "invalidFilePathDetected": "Invalid file path detected",
      "initializationFailed": "Initialization failed: {error}",
      "noFramework": "No i18n framework detected. Continue with generic mode.",
      "packageJsonRead": "Error reading package.json."
    },
    "processingFile": "Processing {file} for {language}...",
    "fileAlreadyExistsMerging": "File {file} already exists. Merging new keys.",
    "createdNewFile": "Created new file: {file}",
    "updatedFile": "Updated file: {file}",
    "skippingExcludedFile": "Skipping {file} for {language} as it's excluded.",
    "continuingWithoutAdminPin": "Continuing without admin PIN setup.",
    "createdSourceLanguageDirectory": "Created source language directory: {dir}",
    "errorSettingUpAdminPin": "Error setting up admin PIN: {error}",
    "noTargetLanguagesSpecified": "No target languages specified.",
    "translationFilesCreatedWarning": "Translation files were created with placeholders; review before production use.",
    "warningCannotReadSourceDir": "Warning: cannot read source directory {dir}: {error}",
    "warningInvalidLanguageCodes": "Warning: invalid language codes ignored: {languages}",
    "warningProceedingWithoutFramework": "Proceeding without detected i18n framework.",
    "backup": {
      "title": "Backup Settings",
      "description": "Backups are disabled by default to avoid backup recursion and repo pollution.",
      "enablePrompt": "Enable automatic backups? (y/N): ",
      "keepPrompt": "How many backups should be kept automatically (1-3, default 1): "
    },
    "completionSummaryTitle": "Completion Summary",
    "completionSummaryBasicTitle": "Completion Summary (Basic)",
    "totalChanges": "Total changes: {count}",
    "languagesProcessed": "Languages processed: {count}",
    "missingKeysAdded": "Missing keys added: {count}",
    "reportPrompt": "Would you like a report generated? (Y/n): ",
    "reportGenerated": "Report generated: {reportPath}",
    "reportFailed": "Failed to generate report: {error}",
    "completionError": "Error during completion: {error}",
    "optimize": {
      "title": "Package size optimization",
      "preview": "Running locale optimization preview...",
      "reduceTip": "You can reduce package size by selecting only the languages you need.",
      "prompt": "Would you like to run interactive optimization now? (y/n): ",
      "starting": "Starting interactive locale optimization...",
      "completed": "Package optimization completed.",
      "later": "You can run locale optimization later with:",
      "unavailable": "Could not offer locale optimization: {error}"
    }
  },
  "language": {
    "title": "🌍 Change Language",
    "separator": "============================================================",
    "current": "Current language: {language}",
    "available": "Available Languages:",
    "languageOption": "{index}. {displayName}{current}",
    "backToMainMenu": "Back to Main Menu",
    "prompt": "Select a language (0-8):",
    "cancelled": "Language change cancelled.",
    "invalid": "Invalid choice. Please try again.",
    "changed": "Language changed to: {language}",
    "changeFailed": "Failed to change language: {error}",
    "pressEnterToContinue": "Press Enter to continue..."
  },
  "maintainLanguagePurity": {
    "workflow_title": "🚀 Language Purity Maintenance Workflow",
    "step1_title": "📊 STEP 1: Initial Language Purity Assessment",
    "step2_title": "🔧 STEP 2: Detect and Auto-Fix Language Mismatches",
    "step3_title": "🌐 STEP 3: Apply Automatic Translations",
    "step4_title": "✅ STEP 4: Final Language Purity Assessment",
    "workflow_error": "❌ Workflow Error: {errorMessage}",
    "running_initial_validation": "Running initial language purity validation...",
    "initial_assessment_complete": "✅ Initial assessment complete: {count} violations found",
    "initial_assessment_warnings": "⚠️  Initial assessment completed with warnings",
    "detecting_fixing_mismatches": "Detecting and fixing language mismatches...",
    "detection_complete_applying_fixes": "Detection complete. Applying auto-fixes...",
    "mismatch_fixes_complete": "✅ Language mismatch fixes complete: {count} fixes applied",
    "mismatch_fixes_warnings": "⚠️  Language mismatch fixes completed with warnings",
    "applying_automatic_translations": "Applying automatic translations...",
    "translation_preview_complete": "Translation preview complete. Applying translations..."
  },
  "menu": {
    "title": "🌐 I18NTK MANAGEMENT MENU",
    "separator": "============================================================",
    "options": {
      "init": "🚀 Initialize new languages",
      "analyze": "🔍 Analyze translations",
      "validate": "✅ Validate translations",
      "usage": "📊 Check key usage",
      "complete": "🎯 Complete translations (100% coverage)",
      "sizing": "📏 Analyze sizing",
      "fix": "🛠️  Fix placeholder translations",
      "scanner": "🔍 Scan for i18n issues",
      "translate": "🌐 Auto Translate",
      "workflow": "🔄 Run full workflow",
      "status": "📋 Show project status",
      "delete": "🗑️  Delete all reports",
      "language": "🌍 Change UI language",
      "settings": "⚙️  Settings",
      "help": "❓ Help",
      "debug": "🔧 Debug Tools",
      "exit": "🚪 Exit"
    },
    "update": "📦 Update Package",
    "goodbye": "👋 Goodbye!",
    "invalidChoice": "Invalid choice. Please select 0-15.",
    "returning": "Returning to main menu...",
    "invalidOption": "Invalid option. Please try again.",
    "nonInteractiveModeWarning": "Non-interactive mode detected. Menu displayed for reference only.",
    "useDirectExecution": "Use: node main/manage/index.js --command=<command> for direct execution.",
    "useHelpForCommands": "Use: node main/manage/index.js --help for available commands.",
    "returnToMainMenu": "Press Enter to return to Main Menu.",
    "pressEnterToContinue": "Press Enter to continue...",
    "selectOptionPrompt": "Select an option:",
    "selectDebugToolPrompt": "Select a debug tool:",
    "selectLogPrompt": "Select a log file (1-{count}):",
    "autoDetectedI18nDirectory": "Auto-detected i18n directory: {directory}",
    "executingCommand": "Executing command: {command}",
    "unknownCommand": "Unknown command: {command}",
    "languageOption": "{index}. {displayName}{current}",
    "debugTools": {
      "1": "Log file analysis",
      "2": "Translation key usage analysis",
      "3": "Translation completeness analysis",
      "4": "Translation format analysis",
      "5": "Translation type analysis",
      "6": "Translation structure analysis"
    },
    "native_translations": {
      "exact_translation_found": "✅ {keyPath}: {value}",
      "no_exact_translation": "⚠️ No exact translation for '{keyPath}', similar keys found:",
      "similar_key": "- {key} ({similarity}% match)",
      "processing_language_files": "🔄 Processing {count} language files...",
      "file_not_found": "⚠️ File not found: {file}",
      "processing_translations": "🌍 Processing {code} translations...",
      "backup_created": "📋 Backup created: {filename}",
      "error_parsing_json": "❌ Error parsing {code}.json: {errorMessage}",
      "existing_keys_found": "📊 {code}: Found {count} existing keys",
      "error_writing_json": "❌ Error writing {code}.json: {errorMessage}",
      "translations_replaced": "📊 {code}: {count} translations replaced",
      "translation_replacement_complete": "✅ Translation replacement complete!",
      "total_replacements": "📊 Total replacements: {count}",
      "dry_run_mode": "⚠️ DRY RUN MODE - No files were modified",
      "tool_title": "🌍 Native Translation Replacer v1.9.1",
      "tool_separator": "======================================",
      "dry_run_warning": "⚠️ Running in DRY RUN mode - no files will be modified",
      "error_during_replacement": "❌ Error during translation replacement:"
    }
  },
  "config": {
    "dirFallbackWarning": "⚠️ Directory {dir} not found. Using {fallback}.",
    "dirInvalidError": "❌ Invalid directory: {dir}"
  },
  "operations": {
    "completed": "✅ Operation completed successfully!",
    "deleteReportsTitle": "🗑️ Delete Reports, Logs & Cache",
    "scanningForFiles": "🔍 Scanning for files to delete...",
    "noFilesFoundToDelete": "✅ No files found to delete.",
    "availableDirectories": "📁 Available directories:",
    "allDirectories": "All directories",
    "andMore": "and more...",
    "cancelOption": "Cancel",
    "cancelReportOption": "Cancel / Return to Menu",
    "invalidSelection": "❌ Invalid selection.",
    "foundFilesInSelectedDirectories": "📊 Found {count} files in selected directories:",
    "deletionOptions": "🗑️ Deletion Options:",
    "deleteAllFiles": "Delete all files",
    "keepLast3Files": "Keep last 3 files (by date)",
    "keepLast5Files": "Keep last 5 files (by date)",
    "noFilesToDelete": "✅ No files to delete.",
    "filesToDeleteCount": "📋 Files to delete: {count}",
    "filesToKeepCount": "📋 Files to keep: {count}",
    "confirmDeletion": "⚠️ Are you sure you want to delete these files? (y/N):",
    "deletedFile": "✅ Deleted: {filename}",
    "failedToDeleteFile": "❌ Failed to delete {filename}: {error}",
    "cancelled": "❌ Operation cancelled.",
    "init": {
      "title": "🚀 Initialize New Language"
    },
    "usage": {
      "title": "📊 Check Key Usage",
      "noUsedKeysHint": "Found translations but no usage in source. Check --source-dir and translationPatterns."
    },
    "analyze": {
      "title": "🔍 Analyze Translations"
    },
    "validate": {
      "title": "✅ Validate Translations"
    },
    "settings": {
      "title": "⚙️  Settings Management",
      "separator": "============================================================"
    },
    "complete": {
      "deletingOldReport": "🗑️  Deleting old usage report for fresh analysis",
      "generatingFreshAnalysis": "🔄 Generating fresh usage analysis...",
      "couldNotGenerate": "⚠️  Could not generate usage analysis. Using common missing keys.",
      "reportNotFound": "⚠️  Usage report not found. Generating fresh analysis...",
      "foundMissingKeys": "🔍 Found {count} missing keys from usage analysis",
      "couldNotParse": "⚠️  Could not parse usage report. Using common missing keys.",
      "title": "🎯 COMPLETING TRANSLATIONS",
      "separator": "============================================================",
      "sourceDir": "📁 Source directory: {sourceDir}",
      "sourceLanguage": "🔤 Source language: {sourceLanguage}",
      "dryRunMode": "🧪 DRY RUN MODE - No files will be modified",
      "languages": "🎯 Target languages: {languages}",
      "addingMissingKeys": "➕ Adding missing keys to translation files...",
      "processing": "🔄 Processing {language}...",
      "addedKeys": "✅ Added {count} keys",
      "changeDetails": "📝 {file}: {key}",
      "noChangesNeeded": "✅ No changes needed for {language}",
      "summaryTitle": "📊 COMPLETION SUMMARY",
      "totalChanges": "📝 Total changes: {totalChanges}",
      "languagesProcessed": "🌐 Languages processed: {languagesProcessed}",
      "missingKeysAdded": "➕ Missing keys added: {missingKeysAdded}",
      "nextStepsTitle": "📋 NEXT STEPS",
      "nextStep1": "1. Run usage analysis:",
      "nextStep2": "2. Validate translations:",
      "nextStep3": "3. Analyze completeness:",
      "allKeysAvailable": "🎉 All translation keys are now available!",
      "runWithoutDryRun": "💡 Run without --dry-run to apply changes",
      "pressEnterToContinue": "Press Enter to continue..."
    },
    "updatePackage": {
      "title": "📦 Update i18n-toolkit Package",
      "description": "This will update the i18n-toolkit package to the latest version available on npm.",
      "command": "Command to run",
      "confirm": "Are you sure you want to proceed with the update? (y/N):",
      "updating": "Updating package... This may take a moment.",
      "success": "✅ i18n-toolkit updated successfully!",
      "error": "❌ Failed to update i18n-toolkit",
      "cancelled": "❌ Update cancelled."
    }
  },
  "security": {
    "pathValidationFailed": "path_validation_failed",
    "invalidInputType": "invalid_input_type",
    "pathTraversalAttempt": "path_traversal_attempt",
    "pathValidated": "✅ Path validated successfully",
    "pathValidationError": "path_validation_error",
    "fileTooLarge": "Security: File too large: {filePath}",
    "fileReadError": "Security: File read error: {errorMessage}",
    "contentTooLargeForFile": "Security: Content too large for file: {filePath}",
    "fileWriteError": "Security: File write error: {errorMessage}",
    "jsonStringTooLarge": "Security: JSON string too large",
    "jsonParseError": "Security: JSON parse error: {errorMessage}",
    "inputContainsDisallowedCharacters": "Security: Input contains disallowed characters",
    "unknownCommandArgument": "Security: Unknown command argument: {key}",
    "unknown_command_argument": "Security: Unknown command argument: {key}",
    "unknownConfigKey": "Security: Unknown config key: {key}",
    "unknown_config_key": "Security: Unknown config key: {key}",
    "securityAlert": "[SECURITY ALERT] {timestamp}: {event}",
    "contentTooLarge": "Security: Content too large for file: {validatedPath}",
    "inputDisallowedCharacters": "Security: Input contains disallowed characters",
    "unknownCommandArg": "Unknown command argument",
    "logMessage": "[SECURITY {level}] {timestamp}: {event}",
    "alertMessage": "[SECURITY ALERT] {timestamp}: {event}",
    "securityWarning": "[SECURITY WARNING] {timestamp}: {event}",
    "json_parse_error": "Security: JSON parse error: {errorMessage}",
    "file_too_large": "File too large",
    "file_read_error": "File read error",
    "content_too_large_for_file": "Content too large for file",
    "file_write_error": "File write error",
    "json_string_too_large": "Json string too large",
    "recursion_detected": "Recursion detected in {operation}",
    "operation_timeout": "Operation timeout: {operation}",
    "operation_error": "Operation error in {operation}: {error}",
    "directory_read_error": "Directory read error: {errorMessage}",
    "security_alert": "Security alert"
  },
  "settings-cli": {
    "settings": {
      "mainMenu": {
        "title": "Main Menu:",
        "uiSettings": "UI Settings",
        "uiSettingsDesc": "Language, theme, and interface options",
        "directorySettings": "Directory Settings",
        "directorySettingsDesc": "Source and output directory paths",
        "scriptDirectorySettings": "Script Directory Settings",
        "scriptDirectorySettingsDesc": "Directory paths for individual script operations",
        "processingSettings": "Processing Settings",
        "processingSettingsDesc": "Batch size, concurrency and performance",
        "advancedSettings": "Advanced Settings",
        "advancedSettingsDesc": "Validation, logging and expert options",
        "viewAllSettings": "View All Settings",
        "viewAllSettingsDesc": "Display current configuration",
        "importExport": "Import/Export",
        "importExportDesc": "Backup and restore settings",
        "resetToDefaults": "Reset to Defaults",
        "resetToDefaultsDesc": "Restore factory settings",
        "reportBug": "Report Bug",
        "reportBugDesc": "Submit an issue report on GitHub",
        "saveChanges": "Save Changes",
        "saveChangesDesc": "Save current settings to file",
        "updatePackage": "Update Package",
        "updatePackageDesc": "Update the i18n-toolkit package via npm",
        "help": "Help",
        "helpDesc": "Show detailed help information",
        "quit": "Quit",
        "quitDesc": "Exit settings (with save prompt if needed)",
        "unsavedChangesWarning": "⚠️  You have unsaved changes",
        "saveChangesBeforeQuit": "Do you want to save changes before quitting? (y/N):",
        "selectOption": "Select an option:",
        "goodbyeMessage": "Thank you for using the i18n settings manager!"
      },
      "goodbyeMessage": "Thank you for using the i18n settings manager!",
      "relativePathHint": "Use relative paths from this directory (e.g., ./src/i18n/locales)",
      "currentDirectory": "Current project directory"
    },
    "settings_manager": {
      "error_loading_settings": "❌ Error loading settings:",
      "error_saving_settings": "❌ Error saving settings:",
      "error_setting_value": "❌ Error setting value:",
      "missing_required_setting": "❌ Missing required setting: {prop}",
      "invalid_language": "❌ Invalid language: {language}",
      "invalid_source_language": "❌ Invalid source language: {sourceLanguage}",
      "default_languages_must_be_array": "❌ defaultLanguages must be an array",
      "invalid_date_format": "❌ Invalid date format: {dateFormat}. Valid formats: {validFormats}",
      "invalid_time_format": "❌ Invalid time format: {timeFormat}. Valid formats: {validFormats}",
      "notifications_types_must_be_object": "❌ notifications.types must be an object",
      "exclude_files_must_be_array": "❌ excludeFiles must be an array",
      "exclude_dirs_must_be_array": "❌ excludeDirs must be an array",
      "include_extensions_must_be_array": "❌ includeExtensions must be an array",
      "invalid_batch_size": "❌ Invalid batch size. Must be a positive number",
      "invalid_max_concurrent_files": "❌ Invalid max concurrent files. Must be a positive number",
      "invalid_sizing_threshold": "❌ Invalid sizing threshold. Must be a positive number",
      "invalid_timeout": "❌ Invalid timeout. Must be at least 1000ms",
      "invalid_sizing_format": "❌ Invalid sizing format: {sizingFormat}. Valid formats: {validFormats}",
      "error_validating_settings": "❌ Error validating settings:",
      "backup_created": "📋 Backup created: {backupPath}",
      "error_creating_backup": "❌ Error creating backup:",
      "language_not_supported": "Language '{language}' is not supported. Available: {availableLanguages}",
      "ui_language_set": "🌍 UI language set to: {language}"
    }
  },
  "settings": {
    "title": "⚙️ Settings Management",
    "separator": "============================================================",
    "goodbyeMessage": "Thank you for using the i18ntk settings manager!",
    "relativePathHint": "Use relative paths from this directory (e.g., ./src/i18n/locales)",
    "currentDirectory": "Current project directory",
    "startingSettings": "Starting Settings:",
    "pin": "PIN:",
    "reportBug": {
      "title": "Report Bug",
      "description": "Report any issues or bugs you encounter",
      "guidance": "To report issues effectively:",
      "checkLogs": "1. Check debug logs in your project directory",
      "documentIssue": "2. Document the issue with steps to reproduce",
      "contactSupport": "3. Contact your system administrator or support team",
      "completed": "Bug reporting guidance displayed",
      "instructions": "Follow the above instructions to report the bug."
    },
    "mainMenu": {
      "title": "Main Menu:",
      "uiSettings": "UI Settings",
      "uiSettingsDesc": "Language, theme, and interface options",
      "directorySettings": "Directory Settings",
      "directorySettingsDesc": "Source and output directory paths",
      "processingSettings": "Processing Settings",
      "processingSettingsDesc": "Batch size, concurrency, and performance",
      "advancedSettings": "Advanced Settings",
      "advancedSettingsDesc": "Validation, logging, and expert options",
      "viewAllSettings": "View All Settings",
      "viewAllSettingsDesc": "Display current configuration",
      "importExport": "Import/Export",
      "updatePackage": "Update Package",
      "updatePackageDesc": "Update the i18n-toolkit package via npm",
      "importExportDesc": "Backup and restore settings",
      "resetToDefaults": "Reset to Defaults",
      "resetToDefaultsDesc": "Restore factory settings",
      "reportBug": "Report Bug",
      "reportBugDesc": "Submit an issue report on GitHub",
      "saveChanges": "Save Changes",
      "saveChangesDesc": "Save current settings to file",
      "help": "Help",
      "helpDesc": "Show detailed help information",
      "quit": "Quit",
      "quitDesc": "Exit settings (with save prompt if needed)",
      "unsavedChangesWarning": "⚠️  You have unsaved changes",
      "saveChangesBeforeQuit": "Do you want to save changes before quitting? (y/N):",
      "selectOption": "Select an option:",
      "goodbyeMessage": "Thank you for using the i18n settings manager!",
      "selectSettingPrompt": "Select a setting to edit (or 'b' to go back):",
      "enterNewValue": "Enter new value:",
      "updatedSuccessfully": "{setting} updated successfully!",
      "scriptDirectorySettings": "Script Directory Settings",
      "scriptDirectoryDesc": "Specify custom directories for each script",
      "scriptDirectorySettingsDesc": "You can set custom directories for each script. If not set, global settings will be used.",
      "currentDirectory": "Current project directory",
      "securitySettings": "Security Settings",
      "securitySettingsDesc": "Admin PIN and other security options",
      "backupSettings": "Backup Settings",
      "backupSettingsDesc": "Backup and restore configuration settings",
      "autoTranslate": "Auto Translate",
      "autoTranslateDesc": "Tune placeholder handling, concurrency, batching, and reports"
    },
    "updatePackage": {
      "title": "Update Package",
      "description": "Update the i18n-toolkit package via npm",
      "command": "npm update i18ntk -g",
      "success": "Update completed successfully.",
      "failed": "Update failed.",
      "prompt": "Do you want to update the package now? (y/N):",
      "promptDesc": "Note: This will update the i18ntk package to the latest version.",
      "confirm": "y",
      "cancelled": "Update cancelled.",
      "error": "Failed to update package",
      "updating": "Updating package..."
    },
    "admin": {
      "selectOption": "Select option:",
      "updateSuccess": "Admin PIN updated successfully!",
      "updateFailed": "Failed to update admin PIN.",
      "protectionRemoved": "Admin PIN protection removed.",
      "configSuccess": "Admin PIN configured successfully!",
      "configFailed": "Failed to configure admin PIN.",
      "setupPinPrompt": "Would you like to set up an admin PIN? (y/N):",
      "pinUpdatedSuccess": "Admin PIN updated successfully!",
      "pinUpdatedFailed": "Failed to update admin PIN.",
      "pinRemoved": "Admin PIN protection removed.",
      "pinConfiguredSuccess": "Admin PIN configured successfully!",
      "pinConfiguredFailed": "Failed to configure admin PIN.",
      "accessDenied": "❌ Access denied. Returning to menu.",
      "setupPin": "🔐 Setting up admin PIN...",
      "setupFailed": "❌ Failed to set up admin PIN. Setting not changed.",
      "pinConfigured": "📌 Admin PIN is currently configured.",
      "options": "Options:",
      "changePin": "1) Change existing PIN",
      "removePin": "2) Remove PIN protection",
      "cancel": "3) Cancel",
      "verifyCurrentPin": "🔐 Verify current PIN first:",
      "settingNewPin": "🔄 Setting up new PIN...",
      "verifyToRemove": "🔐 Verify current PIN to remove protection:",
      "noPinConfigured": "🔓 No admin PIN is currently configured.",
      "pinBenefits": "Setting up admin PIN will add security for:",
      "benefitSecurity": "• Changing security settings",
      "benefitAdvanced": "• Modifying advanced configurations",
      "benefitDebug": "• Accessing debug tools",
      "benefitReset": "• Resetting settings",
      "setupCancelled": "⏭️  Admin PIN setup cancelled.",
      "operationCancelled": "❌ Operation cancelled.",
      "startingSettings": "🎛️  Starting Settings CLI...",
      "authRequired": "🔒 Admin authentication required for: {label}",
      "pinSetupTitle": "Admin PIN Setup",
      "browserOpenFailed": "Could not automatically open browser.",
      "manualVisit": "Please manually visit: {url}",
      "browserOpened": "✅ Browser opened successfully!"
    },
    "importExport": {
      "title": "Import/Export Settings",
      "export": "Export Settings",
      "import": "Import Settings",
      "backup": "Create Backup",
      "enterFilename": "Enter filename (or press Enter for default):",
      "exportSuccess": "Settings exported to {file}",
      "exportFailed": "Failed to export settings: {error}",
      "importFilename": "Enter filename to import:",
      "fileNotFound": "File not found.",
      "invalidFormat": "Invalid settings file format.",
      "confirmImport": "This will replace all current settings. Continue? (y/N):",
      "importSuccess": "Settings imported successfully.",
      "importFailed": "Failed to import settings: {error}",
      "backupSuccess": "Backup created: {file}",
      "backupFailed": "Failed to create backup: {error}",
      "exportFilenamePrompt": "Enter export filename:",
      "importConfirm": "Import this settings file? (y/N):",
      "importFilenamePrompt": "Enter import filename:",
      "manageBackups": "Manage backups",
      "restore": "Restore settings"
    },
    "selectOption": "Select an option:",
    "resetToDefaultsTitle": "Reset Settings to Defaults",
    "resetWarning1": "⚠️ This will reset ALL settings to their default values.",
    "resetWarning2": "This action cannot be undone.",
    "resetConfirm": "Are you sure you want to continue? (y/N):",
    "resetSuccess": "Settings reset to defaults successfully.",
    "resetFailed": "Failed to reset settings: {error}",
    "resetDone": "Settings reset to defaults successfully.",
    "resetScriptDirsDone": "Script directories reset to system defaults successfully.",
    "saveSuccess": "Settings saved successfully.",
    "saveFailed": "Failed to save settings.",
    "saveError": "Invalid settings provided",
    "pressEnter": "Press Enter to continue...",
    "initFailed": "Failed to initialize settings: {error}",
    "invalidValueFormat": "Invalid value format.",
    "help": {
      "title": "Settings Help",
      "navigationTitle": "Navigation",
      "navigation1": "1. General Settings - Configure UI language, theme, and basic preferences",
      "navigation2": "2. Directory Settings - Set source and output directories for translation files",
      "navigation3": "3. Processing Settings - Configure batch size, concurrency, and performance options",
      "navigation4": "4. Advanced Settings - Access validation, logging, and expert configuration options",
      "categoriesTitle": "Settings Categories",
      "categoryUI": "• UI Settings: Interface language, color theme, and display preferences",
      "categoryDirectory": "• Directory Settings: Source files location and output report directories",
      "categoryProcessing": "• Processing Settings: Batch processing, file limits, and performance tuning",
      "categoryAdvanced": "• Advanced Settings: Debug mode, audit logging, and security options",
      "envVarsTitle": "Environment Variables",
      "envVar1": "• I18N_SOURCE_DIR: Override default source directory path",
      "envVar2": "• I18N_OUTPUT_DIR: Override default output directory path",
      "envVar3": "• I18N_DEBUG: Enable debug mode (true/false)",
      "cliUsageTitle": "CLI Usage Examples",
      "cliUsage1": "• npx i18ntk --settings: Open interactive settings menu",
      "cliUsage2": "• npx i18ntk --settings --lang de: Open settings in German",
      "cliUsage3": "• npx i18ntk --reset-settings: Reset all settings to defaults",
      "navigation": "Use number keys to select options, 'b' to go back",
      "editing": "Enter new values when prompted, or press Enter to keep current",
      "saving": "Use 's' to save changes before quitting",
      "reset": "Use option 7 to reset all settings to defaults"
    },
    "categories": {
      "uiSettings": "UI Settings",
      "directorySettings": "Directory Settings",
      "processingSettings": "Processing Settings",
      "advancedSettings": "Advanced Settings",
      "scriptDirectorySettings": "Script Directory Settings",
      "securitySettings": "Security Settings",
      "autoTranslate": "Auto Translate Settings"
    },
    "security": {
      "title": "🔐 Security Settings",
      "description": "Configure admin PIN protection and security options",
      "currentPin": "Current PIN:",
      "pinConfigured": "✅ Configured",
      "pinNotConfigured": "❌ Not configured",
      "pinDisplay": "PIN Display:",
      "menu": {
        "enableDisable": "1) Enable/Disable Admin PIN",
        "setupChange": "2) Setup/Change Admin PIN",
        "sessionTimeout": "3) Session Timeout",
        "maxAttempts": "4) Max Failed Attempts",
        "lockoutDuration": "5) Lockout Duration",
        "back": "b) Back to Main Menu"
      },
      "prompts": {
        "enablePin": "Enable admin PIN protection? (y/N):",
        "disablePin": "Disable admin PIN protection? (y/N):",
        "enterTimeout": "Enter session timeout (minutes):",
        "enterMaxAttempts": "Enter max failed attempts:",
        "enterLockoutDuration": "Enter lockout duration (minutes):"
      },
      "messages": {
        "pinEnabled": "Admin PIN protection enabled",
        "pinDisabled": "Admin PIN protection disabled",
        "timeoutUpdated": "Session timeout updated to {minutes} minutes",
        "maxAttemptsUpdated": "Max failed attempts updated to {attempts}",
        "lockoutDurationUpdated": "Lockout duration updated to {minutes} 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 Directory",
        "description": "Directory containing translation files",
        "current": "Current: {value}",
        "help": "Path to directory with translation files"
      },
      "projectRoot": {
        "label": "Project Root",
        "description": "Root directory of the project",
        "current": "Current: {value}",
        "help": "Path to the project root directory"
      },
      "checkUsage": {
        "usage_analysis_failed": "Usage analysis failed",
        "usage_analysis_success": "Usage analysis successful",
        "usage_analysis_complete": "Usage analysis complete",
        "usage_analysis_in_progress": "Usage analysis in progress",
        "usage_analysis_started": "Usage analysis started",
        "usage_analysis_skipped": "Usage analysis skipped"
      },
      "language": {
        "label": "Interface Language",
        "description": "Language for the user interface",
        "current": "Current: {value}",
        "help": "Select your preferred interface language"
      },
      "scriptDirectories": {
        "analyzeLabel": "Analyze Script Directories",
        "analyzeHelp": "Analyze script directories for issues",
        "completeLabel": "Complete Setup Directories",
        "initLabel": "Initialize Script Directories",
        "manageLabel": "Manage Script Directories",
        "sizingLabel": "Sizing Script Directories",
        "summaryLabel": "Summary Report Directories",
        "usageLabel": "Usage Report Directories",
        "validateLabel": "Validate Script Directories"
      },
      "theme": {
        "label": "Color Theme",
        "description": "UI theme preference",
        "current": "Current: {value}",
        "help": "Choose between light and dark themes"
      },
      "dateFormat": {
        "label": "Date Format",
        "description": "Format for displaying dates",
        "current": "Current: {value}",
        "help": "Choose how dates are displayed in reports"
      },
      "notifications": {
        "enabled": {
          "label": "Enable Notifications",
          "description": "Show desktop notifications",
          "current": "Current: {value}",
          "help": "Enable desktop notifications for completed operations"
        }
      },
      "sourceDir": {
        "label": "Source Directory",
        "description": "Directory containing translation files",
        "current": "Current: {value}",
        "help": "Path to directory with source translation files"
      },
      "sourceLanguage": {
        "label": "Source Language",
        "description": "Primary language for translations",
        "current": "Current: {value}",
        "help": "The primary language used as source for translations"
      },
      "outputDir": {
        "label": "Output Directory",
        "description": "Directory for generated reports",
        "current": "Current: {value}",
        "help": "Where reports and processed files will be saved"
      },
      "batchSize": {
        "label": "Batch Size",
        "description": "Number of items processed per batch",
        "current": "Current: {value}",
        "help": "How many files to process in each batch"
      },
      "maxConcurrentFiles": {
        "label": "Max Concurrent Files",
        "description": "Maximum files processed simultaneously",
        "current": "Current: {value}",
        "help": "Maximum number of files to process at the same time"
      },
      "sizingThreshold": {
        "label": "Sizing Threshold (%)",
        "description": "Threshold for size variation warnings",
        "current": "Current: {value}%",
        "help": "Percentage threshold for detecting size mismatches"
      },
      "strictMode": {
        "label": "Strict Validation Mode",
        "description": "Enable strict validation mode",
        "current": "Current: {value}",
        "help": "Enable strict validation for translation files"
      },
      "enableAuditLog": {
        "label": "Enable Audit Log",
        "description": "Track all translation changes",
        "current": "Current: {value}",
        "help": "Log all changes made to translation files"
      },
      "backupBeforeChanges": {
        "label": "Auto Backup",
        "description": "Create backups before modifications",
        "current": "Current: {value}",
        "help": "Automatically create backups before making changes"
      },
      "advanced_maxConcurrentFiles": {
        "label": "Max Concurrent Files",
        "description": "Maximum files processed simultaneously",
        "current": "Current: {value}",
        "help": "Maximum number of files to process at the same time"
      },
      "advanced_strictMode": {
        "label": "Strict Validation Mode",
        "description": "Enable strict validation mode",
        "current": "Current: {value}",
        "help": "Enable strict validation for translation files"
      },
      "adminPinEnabled": {
        "label": "Admin PIN Protection",
        "description": "Enable admin PIN authentication for sensitive settings",
        "current": "Current: {value}",
        "help": "Require admin PIN for changing security and advanced settings"
      },
      "sessionTimeout": {
        "label": "Session Timeout",
        "description": "Admin session timeout in minutes",
        "current": "Current: {value} minutes",
        "help": "How long admin sessions remain active before requiring re-authentication"
      },
      "maxFailedAttempts": {
        "label": "Max Failed Attempts",
        "description": "Maximum failed PIN attempts before lockout",
        "current": "Current: {value} attempts",
        "help": "Number of failed PIN attempts allowed before temporary lockout"
      },
      "lockoutDuration": {
        "label": "Lockout Duration",
        "description": "Duration of lockout after failed attempts",
        "current": "Current: {value} minutes",
        "help": "How long the system remains locked after max failed attempts"
      },
      "scriptDirectories_analyze": {
        "label": "Analyze Script Directories",
        "description": "Custom directories for analyze script",
        "current": "Current: {value}",
        "help": "Specify custom source directory for the analyze script. Leave empty to use global setting."
      },
      "scriptDirectories_complete": {
        "label": "Complete Setup Directories",
        "description": "Custom directories for complete setup script",
        "current": "Current: {value}",
        "help": "Specify custom source directory for the complete setup script. Leave empty to use global setting."
      },
      "scriptDirectories_init": {
        "label": "Initialize Script Directories",
        "description": "Custom directories for initialize script",
        "current": "Current: {value}",
        "help": "Specify custom source directory for the initialize script. Leave empty to use global setting."
      },
      "scriptDirectories_manage": {
        "label": "Manage Script Directories",
        "description": "Custom directories for manage script",
        "current": "Current: {value}",
        "help": "Specify custom source directory for the manage script. Leave empty to use global setting."
      },
      "scriptDirectories_sizing": {
        "label": "Sizing Script Directories",
        "description": "Custom directories for sizing script",
        "current": "Current: {value}",
        "help": "Specify custom source directory for the sizing script. Leave empty to use global setting."
      },
      "scriptDirectories_summary": {
        "label": "Summary Report Directories",
        "description": "Custom directories for summary report script",
        "current": "Current: {value}",
        "help": "Specify custom source directory for the summary report script. Leave empty to use global setting."
      },
      "scriptDirectories_usage": {
        "label": "Usage Report Directories",
        "description": "Custom directories for usage report script",
        "current": "Current: {value}",
        "help": "Specify custom source directory for the usage report script. Leave empty to use global setting."
      },
      "scriptDirectories_validate": {
        "label": "Validate Script Directories",
        "description": "Custom directories for validate script",
        "current": "Current: {value}",
        "help": "Specify custom source directory for the validate script. Leave empty to use global setting."
      },
      "security_adminPinEnabled": {
        "label": "Admin PIN Protection",
        "description": "Enable admin PIN authentication for sensitive settings",
        "current": "Current: {value}",
        "help": "Require admin PIN for changing security and advanced settings"
      },
      "fields": {
        "adminPinEnabled": {
          "label": "Admin PIN Protection",
          "description": "Enable admin PIN authentication for sensitive settings",
          "help": "Require admin PIN for changing security and advanced settings"
        }
      },
      "security_pinProtection_enabled": {
        "label": "PIN Protection",
        "description": "Enable PIN protection for sensitive settings",
        "current": "Current: {value}",
        "help": "Require PIN for changing security and advanced settings"
      },
      "pinProtection_configure": {
        "label": "Configure PIN Protected Scripts",
        "description": "Configure which scripts require PIN protection",
        "help": "Select individual scripts that require PIN authentication"
      },
      "pinProtection_debugMenu": {
        "label": "Debug Tools Menu",
        "description": "Require PIN for Debug Tools Menu",
        "current": "Current: {value}",
        "help": "Enable PIN protection for accessing debug tools"
      },
      "pinProtection_deleteReports": {
        "label": "Delete Reports",
        "description": "Require PIN for Delete Reports",
        "current": "Current: {value}",
        "help": "Enable PIN protection for deleting reports"
      },
      "pinProtection_summaryReports": {
        "label": "Summary Reports",
        "description": "Require PIN for Summary Reports",
        "current": "Current: {value}",
        "help": "Enable PIN protection for generating summary reports"
      },
      "pinProtection_settingsMenu": {
        "label": "Settings Menu",
        "description": "Require PIN for Settings Menu",
        "current": "Current: {value}",
        "help": "Enable PIN protection for accessing settings"
      },
      "pinProtection_initScript": {
        "label": "Initialize Script",
        "description": "Require PIN for Initialize Script",
        "current": "Current: {value}",
        "help": "Enable PIN protection for running the initialize script"
      },
      "pinProtection_resetDefaults": {
        "label": "Reset PIN Protection",
        "description": "Reset all PIN protection settings to defaults",
        "help": "Reset all individual script PIN protections to default values"
      },
      "removeUiLanguages": {
        "label": "Remove UI Languages",
        "description": "Remove UI languages that are not installed",
        "help": "Remove UI languages that are not installed on the system"
      },
      "${helperKey}": {
        "help": "Help"
      },
      "reports_format": {
        "label": "Report Format",
        "help": "Choose markdown for readable reports, json for automation, or text for plain logs."
      },
      "autoTranslate_placeholderMode": {
        "label": "Placeholder handling mode",
        "help": "How placeholder-bearing strings are handled during auto translation."
      },
      "autoTranslate_concurrency": {
        "label": "Concurrent translation requests",
        "help": "Maximum concurrent provider requests. Google supports up to 100 in i18ntk; DeepL and LibreTranslate are capped lower."
      },
      "autoTranslate_batchSize": {
        "label": "Text segments per batch",
        "help": "Number of text segments scheduled per batch."
      },
      "autoTranslate_progressInterval": {
        "label": "Progress update interval",
        "help": "Completed text segments between progress updates."
      },
      "autoTranslate_retryCount": {
        "label": "Retry count",
        "help": "Maximum retries per failed request."
      },
      "autoTranslate_retryDelay": {
        "label": "Retry delay (ms)",
        "help": "Base retry delay in milliseconds."
      },
      "autoTranslate_timeout": {
        "label": "Request timeout (ms)",
        "help": "Translation provider request timeout."
      },
      "autoTranslate_dryRunFirst": {
        "label": "Dry-run preview first",
        "help": "Preview what will be translated before writing files."
      },
      "autoTranslate_onlyMissingOrEnglish": {
        "label": "Only missing or English keys",
        "help": "Keep existing translated target values and translate only missing, marker, source-copy, or likely English values."
      },
      "autoTranslate_reportStdout": {
        "label": "Print report to terminal",
        "help": "Print the post-translation report to stdout."
      },
      "autoTranslate_bom": {
        "label": "Write UTF-8 BOM",
        "help": "Write translated JSON files with a UTF-8 BOM."
      },
      "autoTranslate_protectionEnabled": {
        "label": "Protect brand terms, keys, values",
        "help": "Enable user-editable protected terms, keys, values, and patterns."
      },
      "autoTranslate_protectionFile": {
        "label": "Protection JSON file",
        "help": "Project JSON file containing Auto Translate protection rules."
      },
      "autoTranslate_promptProtectionSetup": {
        "label": "Ask to create protection file",
        "help": "Ask to create the protection file when Auto Translate first runs."
      },
      "autoTranslate_promptProtectionUpdate": {
        "label": "Ask to update protection rules",
        "help": "Ask whether to update protection rules before manager translations."
      }
    },
    "actions": {
      "editSetting": "Edit {setting}:",
      "settingUpdated": "✅ {setting} updated successfully!",
      "invalidValue": "❌ Invalid value. Please try again.",
      "pressEnter": "Press Enter to continue...",
      "backToMenu": "Back to main menu",
      "saveSuccess": "✅ Settings saved successfully!",
      "saveFailed": "❌ Failed to save settings: {error}",
      "resetConfirm": "Are you sure you want to reset all settings to defaults? (y/N):",
      "resetSuccess": "✅ Settings reset to defaults successfully!",
      "importSuccess": "✅ Settings imported successfully!",
      "exportSuccess": "✅ Settings exported successfully!",
      "fileNotFound": "❌ File not found: {path}",
      "invalidFormat": "❌ Invalid settings file format",
      "pinProtectionUpdated": "✅ PIN protection for {script} updated successfully!",
      "pinProtectionReset": "✅ All PIN protection settings reset to defaults!",
      "pinProtectionConfigure": "Configure PIN protection for individual scripts",
      "pinProtectionSelectScript": "Select a script to toggle PIN protection:",
      "pinProtectionCurrentStatus": "Current status: {status}",
      "pinProtectionEnabled": "Enabled",
      "pinProtectionDisabled": "Disabled",
      "pinProtectionToggle": "Toggle PIN Protection",
      "pinProtectionResetAll": "Reset All to Defaults",
      "pinProtectionBack": "Back to Security Settings"
    },
    "themes": {
      "light": "Light",
      "dark": "Dark",
      "system": "System"
    },
    "languages": {
      "en": "English",
      "de": "German",
      "es": "Spanish",
      "fr": "French",
      "ru": "Russian",
      "ja": "Japanese",
      "zh": "Chinese",
      "it": "Italian",
      "pt": "Portuguese",
      "nl": "Dutch",
      "pl": "Polish",
      "sv": "Swedish",
      "uk": "Ukrainian",
      "cs": "Czech",
      "tr": "Turkish",
      "ko": "Korean",
      "ar": "Arabic",
      "hi": "Hindi",
      "th": "Thai",
      "vi": "Vietnamese",
      "he": "Hebrew",
      "el": "Greek",
      "hu": "Hungarian"
    },
    "viewAll": {
      "title": "View All Settings"
    },
    "current": "Current",
    "back": "Back to main menu",
    "selectSettingPrompt": "Select setting to edit (or b for back, r for reset):",
    "invalidOption": "Invalid option.",
    "editing": "Editing",
    "enterNewValue": "Enter new value (or press Enter to keep current, type 'default' to use system default):",
    "validOptions": "Valid options",
    "updatedSuccessfully": "updated successfully!",
    "noHelp": "No help available for this setting",
    "resetScriptDirectories": "Reset to Default Values",
    "resetScriptDirectoriesTitle": "Reset Script Directories to Defaults",
    "resetScriptDirectoriesWarning1": "This will reset all script directory configurations to their system defaults.",
    "resetScriptDirectoriesWarning2": "All custom directory paths will be cleared. This action cannot be undone.",
    "resetScriptDirectoriesConfirm": "Are you sure you want to reset all script directories to defaults? (y/N):",
    "backup": {
      "title": "Backup Settings",
      "description": "Backup current settings to a file",
      "confirm": "Are you sure you want to backup current settings? (y/N):",
      "success": "✅ Settings backed up successfully to {backupFile}",
      "failed": "❌ Failed to backup settings: {error}",
      "enabled": "Enable Backup",
      "enabledHelp": "Enable/disable backup feature",
      "singleFileMode": "Single File Mode",
      "singleFileModeHelp": "Backup settings in a single file",
      "singleBackupFile": "Single Backup File",
      "singleBackupFileHelp": "Path to the single backup file",
      "retentionDays": "Retention Days",
      "retentionDaysHelp": "Number of days to retain old backup files",
      "maxBackups": "Max Backups",
      "maxBackupsHelp": "Maximum number of backup files to keep",
      "confirmHelp": "Confirm backup operation",
      "confirmYes": "Yes",
      "confirmNo": "No"
    },
    "validation": {
      "valid": "Valid",
      "validatingPaths": "Validating configured paths...",
      "validationComplete": "Path validation complete: {valid}/{total} valid."
    }
  },
  "summary": {
    "separator": "============================================================",
    "configurationTitle": "🔧 Configuration:",
    "sourceLanguage": "Source language: {sourceLanguage}",
    "supportedExtensions": "Supported extensions: {extensions}",
    "excludedFiles": "Excluded files: {files}",
    "reportContent": "{report}",
    "fatalError": "❌ Fatal error: {error}",
    "helpTitle": "📊 I18NTK SUMMARY REPORT GENERATOR",
    "helpDescription": "Analyzes the i18n folder structure and generates a comprehensive summary report including key statistics, file structure analysis, and validation checks.",
    "helpUsage": "Usage: node i18ntk-summary.js [options]",
    "helpOptions": "--source-dir <dir>     Source directory to analyze",
    "helpSourceDir": "--source-dir <dir>     Source directory to analyze",
    "helpOutput": "--output <file>        Output file for the report",
    "helpVerbose": "--verbose, -v           Show detailed information",
    "helpKeepReports": "--keep-reports          Keep existing reports",
    "helpDeleteReports": "--delete-reports        Delete existing reports",
    "helpHelp": "--help, -h              Show this help",
    "helpExamples": "Examples:",
    "helpExample1": "node i18ntk-summary.js",
    "helpExample2": "node i18ntk-summary.js --source-dir ./locales",
    "helpExample3": "node i18ntk-summary.js --output summary-report.txt",
    "helpExample4": "node i18ntk-summary.js --verbose",
    "helpExample5": "node i18ntk-summary.js --source-dir ./locales --output report.json",
    "couldNotReadFile": "⚠️  Could not read file: {filePath}",
    "couldNotParseJSFile": "⚠️  Could not parse JS/TS file: {filePath}",
    "errorReadingFile": "⚠️  Error reading file {filePath}: {error}",
    "analyzingFolder": "🔍 Analyzing folder structure...",
    "noLanguageDirectoriesFound": "❌ No language directories found in the specified source directory.",
    "foundLanguages": "✅ Found {count} languages: {languages}",
    "referenceLanguageFiles": "📁 Reference language '{language}' has {count} files",
    "analyzingLanguage": "🌍 Analyzing language: {language}",
    "keysInFiles": "📊 Found {keys} keys across {files} files",
    "checkingInconsistentKeys": "🔍 Checking for inconsistent keys across languages...",
    "generatingSummaryReport": "📝 Generating summary report...",
    "reportTitle": "📊 I18NTK SUMMARY REPORT",
    "generated": "Generated: {timestamp}",
    "sourceDirectory": "Source directory: {dir}",
    "overview": "📈 OVERVIEW",
    "languagesCount": "Languages: {count}",
    "totalFiles": "Total files: {count}",
    "totalKeys": "Total keys: {count}",
    "avgKeysPerLanguage": "Average keys per language: {count}",
    "languagesBreakdown": "🌍 LANGUAGES BREAKDOWN",
    "languageBreakdown": "{language}: {files} files, {keys} keys",
    "fileStructure": "📁 FILE STRUCTURE",
    "fileKeys": "{file}: {keys} keys",
    "missingInLanguages": "⚠️ Missing in: {languages}",
    "issuesFound": "❌ ISSUES FOUND",
    "missingFiles": "📁 Missing files:",
    "emptyFiles": "📄 Empty files:",
    "malformedFiles": "⚠️ Malformed files:",
    "duplicateKeys": "🔑 Duplicate keys:",
    "inconsistentKeys": "🔍 Inconsistent keys:",
    "missingKeys": "Missing: {keys}{more}",
    "extraKeys": "Extra: {keys}{more}",
    "noIssuesFound": "✅ NO ISSUES FOUND",
    "allFilesConsistent": "All translation files are consistent across languages.",
    "recommendations": "💡 RECOMMENDATIONS",
    "createMissingFiles": "• Create missing translation files",
    "addContentToEmptyFiles": "• Add content to empty translation files",
    "fixMalformedFiles": "• Fix malformed JSON/JS files",
    "removeDuplicateKeys": "• Remove duplicate keys from files",
    "synchronizeKeys": "• Synchronize keys across all languages",
    "splitLargeFiles": "• Consider splitting large files into smaller namespaces",
    "addMoreLanguages": "• Consider adding more languages",
    "nextSteps": "🎯 NEXT STEPS",
    "nextStep1": "1. Fix any issues identified above",
    "nextStep2": "2. Run validation to ensure consistency",
    "nextStep3": "3. Consider using i18ntk-validate for detailed validation",
    "nextStep4": "4. Regular monitoring recommended",
    "couldNotFindI18nDirectory": "❌ Could not find i18n directory. Please specify --source-dir.",
    "sourceDirectoryDoesNotExist": "❌ Source directory does not exist: {dir}",
    "i18nSummaryReportGenerator": "📊 I18N Summary Report Generator",
    "analysisComplete": "✅ Analysis Complete",
    "analyzedLanguages": "📊 Analyzed languages: {count}",
    "processedFiles": "📁 Processed files: {count}",
    "foundTranslationKeys": "🔑 Found translation keys: {count}",
    "foundIssues": "❌ Found {count} issues",
    "noIssuesConsole": "✅ No issues found - all files are consistent!",
    "errorDuringAnalysis": "❌ Error during analysis: {error}",
    "usageReportTitle": "📊 I18NTK USAGE REPORT",
    "usageReportGenerated": "Generated: {timestamp}",
    "usageReportSourceDir": "Source directory: {sourceDir}",
    "usageReportI18nDir": "I18n directory: {i18nDir}",
    "usageReportSummary": "📈 SUMMARY",
    "usageReportSourceFilesScanned": "Source files scanned: {count}",
    "usageReportTranslationFilesFound": "Translation files found: {count}",
    "usageReportAvailableKeys": "Available translation keys: {count}",
    "usageReportUsedKeys": "Used translation keys: {count}",
    "usageReportDynamicKeys": "Dynamic translation keys: {count}",
    "usageReportUnusedKeys": "Unused translation keys: {count}",
    "usageReportMissingKeys": "Missing translation keys: {count}",
    "usageReportNotTranslatedKeys": "Not translated keys: {count}",
    "usageReportTranslationCompleteness": "🌍 TRANSLATION COMPLETENESS",
    "usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
    "usageReportNotTranslatedInLanguage": "Not translated: {count} keys",
    "usageReportTranslationFilesDiscovered": "📁 TRANSLATION FILES",
    "usageReportFileInfo": "{relativePath} (namespace: {namespace}, type: {type})",
    "usageReportUnusedTranslationKeys": "🗑️ UNUSED TRANSLATION KEYS",
    "usageReportUnusedKeysDescription": "These keys exist in translation files but are not used in source code:",
    "usageReportUnusedKey": "• {key}",
    "usageReportMoreUnusedKeys": "... and {count} more unused keys",
    "usageReportMissingTranslationKeys": "❌ MISSING TRANSLATION KEYS",
    "usageReportMissingKeysDescription": "These keys are used in source code but missing from translation files:",
    "usageReportMissingKey": "• {key}",
    "usageReportUsedIn": "Used in: {filePath}",
    "usageReportMoreFiles": "... and {count} more files",
    "usageReportDynamicTranslationKeys": "⚡ DYNAMIC TRANSLATION KEYS",
    "usageReportDynamicKeysDescription": "These keys are used dynamically (constructed at runtime):",
    "usageReportDynamicKey": "• {key}",
    "usageReportFileUsageBreakdown": "📊 FILE USAGE BREAKDOWN",
    "usageReportFileUsage": "{filePath}: {count} keys",
    "status": {
      "generating": "⏳ Generating...",
      "completed": "✅ Completed"
    },
    "help": {
      "usage": "Usage: node main/manage/index.js [options]",
      "interactiveMode": "💡 Use: node main/manage/index.js --command=<command> for direct execution",
      "initProject": "🚀 Initialize new languages",
      "analyzeTranslations": "🔍 Analyze translations",
      "validateTranslations": "✅ Validate translations",
      "checkUsage": "📊 Check key usage",
      "showHelp": "📖 Use: node main/manage/index.js --help for available commands",
      "availableCommands": "📖 Available Commands:",
      "initCommand": "init      - Initialize new languages",
      "analyzeCommand": "analyze   - Analyze translations",
      "validateCommand": "validate  - Validate translations",
      "usageCommand": "usage     - Check key usage",
      "sizingCommand": "sizing    - Analyze sizing",
      "completeCommand": "complete  - Complete translations (100% coverage)",
      "summaryCommand": "summary   - Show project status",
      "scannerCommand": "scanner   - Scan for i18n issues",
      "translateCommand": "translate - Auto-translate locale files",
      "debugCommand": "debug     - Debug translation issues"
    },
    "test_complete_system": {
      "starting_test": "🧪 Starting Complete System Test",
      "separator": "=",
      "testing_ui_translations": "📝 Testing UI Translations...",
      "testing_settings_manager": "⚙️  Testing Settings Manager...",
      "testing_main_scripts": "🔧 Testing Main Scripts...",
      "checking_translation_consistency": "🌐 Checking Translation Consistency...",
      "non_critical_missing_keys": "ℹ️ {file}: {count} non-critical missing keys",
      "extra_keys": "ℹ️ {file}: {count} extra keys",
      "generating_report": "📊 Generating Report...",
      "final_test_report_title": "📋 FINAL TEST REPORT",
      "passed": "✅ Passed: {passed}",
      "failed": "❌ Failed: {failed}",
      "warnings": "⚠️  Warnings: {warnings}",
      "missing_translations_title": "🔍 Missing Translations ({count}):",
      "missing_translation_key": "- {key}",
      "missing_translations_more": "... and {count} more",
      "errors_title": "❌ Errors:",
      "error_message": "- {error}",
      "overall_status": "📊 Overall Status: {status}",
      "success_message": "✅ {message}",
      "failure_message": "❌ {message}",
      "failure_error_message": "{errorMessage}",
      "warning_message": "⚠️  {message}",
      "test_runner_failed": "❌ Test runner failed:",
      "recommendations": {
        "add_missing_translation_keys": "Add missing translation keys to maintain consistency",
        "fix_failing_scripts": "Fix failing scripts before deployment",
        "review_warning_messages": "Review and address warning messages",
        "system_ready_for_deployment": "System is ready for deployment"
      },
      "hardcodedTexts": {
        "addMissingTranslationKeys": "Add missing translation keys to maintain consistency",
        "fixFailingScripts": "Fix failing scripts before deployment",
        "reviewWarningMessages": "Review and address warning messages",
        "systemReadyForDeployment": "System is ready for deployment"
      }
    },
    "testConsoleI18n": {
      "found_target_file": "Found target file: {fileName}",
      "scanning_files_for_console_statements": "Scanning files for console statements...",
      "found_javascript_files": "Found {count} JavaScript files.",
      "console_i18n_analysis_results": "Console I18n Analysis Results",
      "total_console_statements": "Total console statements: {count}",
      "translated_statements": "Translated statements: {count}",
      "hardcoded_statements": "Hardcoded statements: {count}",
      "translation_coverage": "Translation Coverage: {percentage}%",
      "coverage_by_file": "Coverage by File:",
      "file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
      "hardcoded_console_statements": "Hardcoded Console Statements:",
      "file_header": "File: {file}",
      "line_statement": "Line {line}: {statement}",
      "suggested_key": "Suggested Key: {key}",
      "suggested_replacement": "Suggested Replacement: {replacement}",
      "recommendations": "Recommendations:",
      "recommendation_1": "1. Replace hardcoded strings with i18n.t() calls.",
      "recommendation_2": "2. Add new keys to the relevant translation JSON files.",
      "recommendation_3": "3. Ensure all console messages are user-facing and require translation.",
      "recommendation_4": "4. Use template literals or string concatenation for dynamic messages, passing variables to i18n.t().",
      "translation_keys_to_add": "Suggested Translation Keys to Add:",
      "add_keys_instruction": "Copy the following JSON structure into your translation files:",
      "perfect_translation_coverage": "Perfect Translation Coverage!",
      "all_statements_using_translation": "All console statements are using the translation system.",
      "i18n_console_translation_checker": "I18n Console Translation Checker",
      "script_description_line1": "This script scans all JavaScript files for console statements",
      "script_description_line2": "and checks if they're using the translation system.",
      "analysis_completed_in_duration": "Analysis completed in {duration} seconds.",
      "report_saved_to_path": "Report saved to: {path}",
      "found_hardcoded_messages": "Found {count} hardcoded messages. Exiting with error code 1.",
      "all_console_messages_use_translation": "All console messages use translation. Exiting with code 0.",
      "consoleTranslationsCheck": "Console Translations Check"
    },
    "translate_mismatches": {
      "title": "🌐 Translation Helper {dryRun}",
      "separator": "=====================================",
      "processing_file": "📄 Processing {language}.json...",
      "translation_summary_title": "📊 Translation Summary:",
      "total_translations_applied": "Total translations applied: {totalTranslations}",
      "run_with_apply_instruction": "💡 Run with --apply to apply these translations",
      "no_translation_mappings": "⚠️  No translation mappings available for {language}",
      "translation_applied": "✅ {key}: \"{oldValue}\" → \"{newValue}\"",
      "saved_translations": "💾 Saved {count} translations to {filename}",
      "found_translatable_items": "🔍 Found {count} translatable items",
      "no_automatic_translations": "✨ No automatic translations available",
      "error_processing_file": "❌ Error processing {filename}: {errorMessage}",
      "coverage_report_title": "📊 Translation Coverage Report",
      "coverage_report_separator": "===============================",
      "file_header": "📄 {filename}:",
      "total_keys": "Total keys: {total}",
      "translated_keys": "Translated: {translated}",
      "untranslated_markers": "Untranslated markers: {untranslated}",
      "contains_english": "Contains English: {hasEnglish}",
      "coverage_percentage": "Coverage: {coverage}%",
      "error_general": "❌ Error:",
      "use_help": "Use --help for usage information"
    },
    "cleaningUpReportFiles": "Cleaning up old report files...",
    "couldNotDelete": "Could not delete {file}: {error}",
    "deletedOldReportFiles": "Deleted {count} old report file(s).",
    "errorCleaningUpReports": "Error cleaning up reports: {error}",
    "noOldReportFilesToDelete": "No old report files to delete.",
    "reportFilesPreserved": "Report files preserved.",
    "reportSaveFailed": "Failed to save report to: {reportPath}",
    "reportSaved": "Report saved to: {reportPath}"
  },
  "ui": {
    "autoDetectedI18nDirectory": "Auto-detected i18n directory: {path}",
    "executingCommand": "Executing command: {command}",
    "unknownCommand": "Unknown command: {command}",
    "errorExecutingCommand": "Error executing command: {error}",
    "errorLoadingTranslationFile": "Error loading translation file for '{language}': {error}",
    "errorSavingLanguagePreference": "Error saving language preference: {error}",
    "noActiveReadlineInterface": "No active readline interface available",
    "uiLanguageUpdated": "UI language updated to: {language}",
    "selectOptionPrompt": "Select an option:",
    "pressEnterToReturn": "Press Enter to return to main menu...",
    "detectedSourceDirectory": "Detected source directory: {sourceDir}",
    "detectedI18nDirectory": "Detected i18n directory: {directory}",
    "toolkitTitle": "i18ntk - Enterprise i18n Management Toolkit",
    "versionInfo": "Version: {version}",
    "releaseDate": "Release Date: {date}",
    "maintainer": "Maintainer: {maintainer}",
    "nodeVersion": "Node.js: {version}",
    "license": "License: {license}",
    "whatsNew": "✨ What's New in v{version}:",
    "changeItem": "{change}",
    "documentation": "📚 Documentation: {url}",
    "issues": "🐛 Issues: {url}",
    "versionInfoUnavailable": "i18ntk version information unavailable",
    "versionInfoError": "Error: {error}"
  },
  "validateLanguagePurity": {
    "phrase_debug_tools": "debug tools",
    "phrase_settings": "settings",
    "phrase_configuration": "configuration",
    "phrase_invalid_choice": "invalid choice",
    "phrase_please_select": "please select",
    "phrase_back_to_main_menu": "back to main menu",
    "phrase_error": "error",
    "phrase_warning": "warning",
    "phrase_success": "success",
    "phrase_failed": "failed",
    "phrase_loading": "loading",
    "phrase_saving": "saving",
    "phrase_full_system_debug": "full system debug",
    "phrase_configuration_debug": "configuration debug",
    "phrase_translation_debug": "translation debug",
    "phrase_performance_debug": "performance debug",
    "phrase_admin_pin_setup": "admin pin setup",
    "phrase_enter_admin_pin": "enter admin pin",
    "phrase_confirm_admin_pin": "confirm admin pin",
    "phrase_authentication_failed": "authentication failed",
    "phrase_access_denied": "access denied",
    "phrase_security_log": "security log",
    "language_german": "German",
    "language_french": "French",
    "language_spanish": "Spanish",
    "language_russian": "Russian",
    "language_japanese": "Japanese",
    "language_chinese": "Chinese",
    "validator_title": "🔍 Language Purity Validator",
    "validating_file": "📄 Validating {language}.json ({name})...",
    "valid_file_message": "✅ Valid - No language purity violations",
    "invalid_file_message": "❌ Invalid - {count} violation(s) found",
    "no_validation_rules": "No validation rules defined for language: {language}",
    "error_reading_file": "Error reading file: {errorMessage}",
    "issue_forbidden_marker": "Contains forbidden marker: {marker}",
    "issue_english_phrase": "Contains English phrase: \"{phrase}\"",
    "issue_english_words": "Contains English words: {words}",
    "issue_missing_cyrillic": "Long text should contain Cyrillic characters for Russian",
    "issue_missing_japanese": "Long text should contain Japanese characters",
    "issue_missing_chinese": "Long text should contain Chinese characters",
    "summary_title": "📊 VALIDATION SUMMARY",
    "overall_results_header": "📋 Overall Results:",
    "total_files_validated": "Total files validated: {count}",
    "valid_files": "Valid files: {count}",
    "invalid_files": "Invalid files: {count}",
    "total_violations": "Total violations: {count}",
    "violations_by_file_header": "❌ VIOLATIONS BY FILE:"
  },
  "workflow": {
    "title": "Workflow Management",
    "description": "Manage i18n workflows.",
    "select_workflow_file": "Select a workflow file to run:",
    "no_workflow_files": "No workflow files found in the workflows directory.",
    "invalid_selection": "Invalid selection. Please enter a number corresponding to a workflow file.",
    "workflow_execution_started": "Starting workflow: {workflowName}",
    "workflow_execution_completed": "Workflow completed: {workflowName}",
    "workflow_execution_failed": "Workflow failed: {workflowName} - {error}",
    "workflow_cancelled": "Workflow execution cancelled.",
    "press_enter_to_continue": "Press Enter to continue!",
    "starting": "🚀 Starting workflow...",
    "completed": "✅ Workflow completed successfully!",
    "checkReports": "📄 Check reports for details.",
    "exitingCompleted": "📝 Workflow completed. Exiting...",
    "summary": {
      "title": "📋 WORKFLOW SUMMARY",
      "separator": "===================",
      "completedAt": "🕐 Workflow completed at: {timestamp}",
      "initialViolations": "📊 Initial violations: {count}",
      "finalViolations": "📉 Final violations: {count}",
      "totalFixes": "🔧 Total fixes applied: {count}",
      "improvement": "📈 Improvement: {percentage}%",
      "stepResults": "📝 STEP RESULTS:",
      "stepDetail": "{number}. {status} {stepName}",
      "violations": "Violations: {count}",
      "fixesApplied": "Fixes applied: {count}",
      "nextSteps": "💡 NEXT STEPS:",
      "congratulations": "🎉 Congratulations! All locale files now have perfect language purity!",
      "cicdIntegration": "✅ Consider integrating the validator into your CI/CD pipeline",
      "automatedChecks": "✅ Set up automated checks for new translations",
      "greatProgress": "🎯 Great progress! Most issues have been resolved.",
      "manualReview": "🔍 Review remaining violations manually",
      "addMappings": "🌐 Consider adding more translation mappings for edge cases",
      "goodProgress": "📈 Good progress made, but more work needed.",
      "expandMappings": "🔧 Expand automatic translation mappings",
      "professionalReview": "👥 Consider manual review of complex translations",
      "runAgain": "🔄 Run workflow again after adding more mappings",
      "limitedProgress": "⚠️  Limited progress. Manual intervention may be needed.",
      "reviewMappings": "🔍 Review translation mappings and add missing ones",
      "professionalServices": "👥 Consider professional translation services",
      "checkIssues": "🔧 Check for systematic issues in locale files",
      "success": "✅",
      "warning": "⚠️"
    }
  },
  "consoleI18nTester": {
    "found_target_file": "Found target file",
    "scanning_files_for_console_statements": "Scanning files for console statements",
    "found_javascript_files": "Found javascript files",
    "console_i18n_analysis_results": "Console i18n analysis results",
    "total_console_statements": "Total console statements",
    "translated_statements": "Translated statements",
    "hardcoded_statements": "Hardcoded statements",
    "translation_coverage": "Translation coverage",
    "coverage_by_file": "Coverage by file",
    "file_coverage_stats": "File coverage stats",
    "hardcoded_console_statements": "Hardcoded console statements",
    "file_header": "File header",
    "line_statement": "Line statement",
    "suggested_key": "Suggested key",
    "suggested_replacement": "Suggested replacement",
    "recommendations": "Recommendations",
    "recommendation_1": "Recommendation 1",
    "recommendation_2": "Recommendation 2",
    "recommendation_3": "Recommendation 3",
    "recommendation_4": "Recommendation 4",
    "translation_keys_to_add": "Translation keys to add",
    "add_keys_instruction": "Add keys instruction",
    "perfect_translation_coverage": "Perfect translation coverage",
    "all_statements_using_translation": "All statements using translation",
    "i18n_console_translation_checker": "I18n console translation checker",
    "script_description_line1": "Script description line1",
    "script_description_line2": "Script description line2",
    "analysis_completed_in_duration": "Analysis completed in duration",
    "report_saved_to_path": "Report saved to path",
    "found_hardcoded_messages": "Found hardcoded messages",
    "all_console_messages_use_translation": "All console messages use translation"
  },
  "exportTranslations": {
    "createdDirectory": "Created Directory",
    "foundFiles": "Found Files",
    "createdTemplate": "Created Template",
    "skippedExisting": "Skipped Existing",
    "title": "Title",
    "creatingTemplates": "Creating Templates",
    "summary": "Summary",
    "summaryLanguages": "Summary Languages",
    "summaryFilesPerLanguage": "Summary Files Per Language",
    "summaryTotalFiles": "Summary Total Files",
    "success": "Success",
    "location": "Location",
    "nextSteps": "Next Steps"
  },
  "dashboard": {
    "title": "Title",
    "overview": "Overview"
  },
  "auth": {
    "title": "Title",
    "email": "Email",
    "password": "Password",
    "signIn": "Sign In",
    "forgotPassword": "Forgot Password",
    "signUp": "Sign Up"
  },
  "checkUsage": {
    "usage_analysis_failed": "Usage analysis failed."
  },
  "completeTranslations": {
    "warning_could_not_parse_filepa": "Warning: could not parse file path: {filePath}"
  },
  "pressEnterToContinue": "Press Enter to continue...",
  "status": {
    "exitingCompleted": "Workflow completed. Exiting..."
  },
  "prompt": {
    "yesTokens": [
      "y",
      "yes"
    ],
    "noTokens": [
      "n",
      "no"
    ]
  },
  "translate": {
    "title": "Auto Translate",
    "sourceDirectory": {
      "title": "Source locale directory",
      "currentProject": "Current project: {dir}",
      "accepted": "Accepted: an absolute path, or a path relative to the current project.",
      "localeRootExample": "./locales  (then choose source language: en)",
      "folderHint": "The folder can contain JSON files directly, or language folders such as ./locales/en.",
      "defaultNotFound": "Default directory not found: {dir}",
      "enterExisting": "Please enter an existing directory with JSON locale files.",
      "directoryNotFound": "Directory not found: {dir}",
      "enterFolderExample": "Enter an existing folder, for example ./locales/en.",
      "notDirectory": "Not a directory: {dir}",
      "using": "Using source directory: {dir}"
    },
    "targetLanguages": {
      "title": "Target language(s)",
      "allConfigured": "a) All configured target languages: {languages}",
      "noneConfigured": "a) All configured target languages: none configured",
      "enterCodes": "Or enter one or more comma/space-separated language codes.",
      "sourceExcluded": "Source language \"{lang}\" will be excluded automatically.",
      "noneSelected": "No valid target languages selected. Aborting.",
      "configureHint": "Configure defaultLanguages in .i18ntk-config, or enter target codes manually.",
      "selected": "Target languages: {languages}"
    },
    "protection": {
      "title": "Protected terms and keys"
    },
    "common": {
      "default": "Default: {value}",
      "examples": "Examples:",
      "exampleValue": "Example: {value}",
      "examplesInline": "Examples: {examples}",
      "pressEnterDefault": "Press Enter to use the default.",
      "usingDefault": "Using default: {value}"
    },
    "sourceLanguage": {
      "title": "Source language code",
      "hint": "This should match the language of the source JSON values.",
      "using": "Using source language: {lang}",
      "invalid": "Invalid language code. Use 2+ characters (e.g. en, de, fr)."
    },
    "files": {
      "title": "Which file(s) to translate?",
      "all": "a) All JSON files ({count}: {files})",
      "choicePrompt": "Choice [a/all or file number]: ",
      "invalidChoice": "Invalid choice. Aborting."
    },
    "dryRun": {
      "previewFor": "Dry-run preview for \"{lang}\"..."
    },
    "confirm": {
      "proceed": "Proceed with actual translation?",
      "yesNoPrompt": "[y]es / [n]o: ",
      "cancelled": "Translation cancelled."
    },
    "run": {
      "translatingTo": "Translating to \"{lang}\"...",
      "failedFor": "Failed for \"{lang}\": {error}"
    },
    "summary": {
      "title": "Summary:",
      "complete": "Translation complete!"
    },
    "nonInteractive": {
      "useDirect": "Non-interactive mode. Use direct CLI instead:"
    },
    "errors": {
      "sourceDirectoryNotFound": "Source locale directory not found: {dir}"
    }
  }
}
