{
  "meta": {
    "version": "1.10.0",
    "updated": "2025-08-16"
  },
  "common": {
    "welcome": "Bienvenido",
    "hello": "Hola",
    "goodbye": "Adiós",
    "yes": "Sí",
    "no": "No",
    "save": "Guardar",
    "cancel": "Cancelar",
    "delete": "Eliminar",
    "edit": "Editar",
    "loading": "Cargando...",
    "offlineTitle": "Estás fuera de línea",
    "offlineMessage": "Por favor, verifica tu conexión a internet",
    "tryReconnect": "Intentar reconectar",
    "logout": "Cerrar sesión",
    "login": "Iniciar sesión",
    "amount": "Cantidad",
    "success": "Éxito",
    "error": "Error",
    "warning": "Advertencia",
    "info": "Información:",
    "debug": "Depuración",
    "progress": "Progreso:",
    "remaining": "Restante:",
    "total": "Total:",
    "completed": "7. Completado con éxito!",
    "missing": "Faltante",
    "partial": "Parcial",
    "sameAsSource": "Mismo que fuente:",
    "formatMismatch": "Desformateado:",
    "typeMismatch": "Tipo no coincidente:",
    "structureMismatch": "Estructura no coincidente:",
    "invalidOption": "Opción inválida",
    "separator": "==================================================",
    "initializationFailed": "❌ Inicialización fallida: {error}",
    "stackTrace": "Pila de llamadas: {stack}",
    "pressEnterToContinue": "Presiona Enter para continuar...",
    "pressEnterToReturn": "Presiona Enter para regresar al menú principal...",
    "stepCompleted": "Paso '{stepName}' completado.",
    "stepFailed": "Paso '{stepName}' fallido.",
    "runningStep": "Ejecutando paso: {stepName}",
    "command": "Comando: {command}",
    "startingWorkflow": "Iniciando flujo de trabajo...",
    "workflowCompleted": "Flujo de trabajo completado.",
    "checkReports": "Revisa los informes para más detalles.",
    "errorExecutingCommand": "Error al ejecutar el comando: {error}",
    "genericError": "❌ Error: {error}",
    "errors": {
      "errors": "Errores:",
      "genericError": "❌ Error: {error}",
      "initializationCancelled": "🚫 Inicialización cancelada por el usuario.",
      "initializationFailed": "❌ Inicialización fallida: {error}",
      "translationKeyNotFound": "Traducción no encontrada: {key}",
      "sourceDirectoryNotFound": "Directorio fuente no encontrado: {directory}",
      "configLoadingFailed": "Carga de configuración fallida",
      "invalidSourceDirectory": "Directorio fuente inválido: {directory}",
      "securityViolation": "Violación de seguridad detectada",
      "authenticationFailed": "Autenticación fallida",
      "sourceEqualsI18nWarn": "⚠️ El directorio fuente es igual al directorio i18n ({sourceDir}). Usando {fallback} para escaneo de fuentes."
    },
    "errorGeneratingStatusSummary": "Error al generar resumen de estado: {error}",
    "errorRunningDebugTool": "Error al ejecutar herramienta de depuración '{displayName}': {error}",
    "errorReadingDebugLogs": "Error al leer registros de depuración: {error}",
    "errorAnalyzingLogFile": "Error al analizar archivo de registro: {error}",
    "errorAnalyzingTranslationKeys": "Error al analizar claves de traducción: {error}",
    "errorAnalyzingTranslationCompleteness": "Error al analizar completitud de traducciones: {error}",
    "analyzingTranslationCompleteness": "Analizando completitud de traducciones en todos los idiomas...",
    "i18nDirectoryNotFound": "⚠️ Directorio i18n no encontrado: {i18nDir}",
    "translationCompletenessAnalysisFailed": "⚠️ Análisis de completitud de traducciones fallido: {error}",
    "failedToAnalyzeLanguage": "❌ Error al analizar idioma {language}: {error}",
    "errorReadingI18nDirectory": "❌ Error al leer directorio i18n: ",
    "languageCompletenessTitle": "📈 COMPLETITUD DE TRADUCCIONES POR IDIOMA",
    "errorAnalyzingTranslationFormat": "Error al analizar formato de traducción: {error}",
    "errorAnalyzingTranslationType": "Error al analizar tipo de traducción: {error}",
    "errorAnalyzingTranslationStructure": "Error al analizar estructura de traducción: {error}",
    "errorAnalyzingTranslationFormatMismatch": "Error al analizar desajuste de formato de traducción: {error}",
    "errorAnalyzingTranslationTypeMismatch": "Error al analizar desajuste de tipo de traducción: {error}",
    "errorAnalyzingTranslationStructureMismatch": "Error al analizar desajuste de estructura de traducción: {error}",
    "errorAnalyzingTranslationSameAsSource": "Error al analizar traducción igual a la fuente: {error}",
    "title": "Estado",
    "nextStep1": "1. Verificar análisis de uso:",
    "nextStep2": "2. Validar traducciones:",
    "nextStep3": "3. Analizar completitud:",
    "nextStep4": "4. Completar traducciones faltantes:",
    "nextStep5": "5. Generar informe resumen:",
    "nextStep6": "6. Revisar y finalizar traducciones:",
    "generating": "Generando informe resumen...",
    "review": "Revisando traducciones...",
    "finalizing": "Finalizando traducciones...",
    "finalized": "¡Finalizado exitosamente!",
    "warnings": "Advertencias:",
    "completedKeys": "Claves completadas:",
    "missingKeys": "Claves faltantes:",
    "partialKeys": "Claves parciales:",
    "home": "Inicio",
    "settings": "Configuración",
    "startingSettings": "🎛️ Iniciando CLI de Configuración...",
    "confirm": "Confirmar"
  },
  "errors": {
    "readlineClosed": "Flujo de entrada cerrado; ejecutando en modo no interactivo.",
    "initializationCancelled": "🚫 Inicialización cancelada por el usuario.",
    "invalidOption": "❌ Opción inválida: {option}. Por favor, inténtelo de nuevo.",
    "noPackageJson": "No se encontró package.json. No se puede autodetectar el framework i18n.",
    "noI18nDir": "No se encontró directorio i18n en la raíz del proyecto.",
    "noI18nConfig": "No se encontró archivo de configuración i18n en la raíz del proyecto."
  },
  "fixer": {
    "help_message": "\nCorrector de Traducciones I18n\n\nUso: node i18ntk-fixer.js [opciones]\n\nOpciones:\n  --source-dir <dir>     Directorio fuente a escanear (predeterminado: ./locales)\n  --languages <langs>    Lista de idiomas a corregir separados por comas\n  --markers <markers>    Marcadores separados por comas para tratar como no traducido\n  --no-backup           Omitir creación automática de respaldo\n  --help                Mostrar esta ayuda\n\nEjemplos:\n  node i18ntk-fixer.js --languages de,fr\n  node i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED\n  node i18ntk-fixer.js --no-backup\n",
    "starting": "🚀 Iniciando corrección de traducciones para idiomas: {languages}",
    "sourceDirectory": "📁 Directorio fuente: {sourceDir}",
    "sourceLanguage": "🔤 Idioma fuente: {sourceLanguage}",
    "markers": "🏷️ Marcadores a corregir: {markers}",
    "scanningLanguage": "📊 Escaneando {language}...",
    "noLanguages": "❌ No se especificaron idiomas para corregir.",
    "allComplete": "🎉 ¡Todas las traducciones ya están completas!",
    "fullReportSaved": "📊 Informe completo guardado en: {reportPath}",
    "reviewReport": "Por favor revisa el informe antes de continuar.",
    "backupCreated": "💾 Respaldo creado exitosamente.",
    "applyingFixes": "🔄 Aplicando correcciones...",
    "fixingComplete": "✅ ¡Corrección de traducciones completa!",
    "operationCancelled": "❌ Operación cancelada por el usuario.",
    "analysisTitle": "🔍 ANÁLISIS DE CORRECCIÓN DE TRADUCCIONES",
    "analysisSeparator": "==================================================",
    "totalIssues": "Total de problemas encontrados: {totalIssues}",
    "missingTranslations": "Traducciones faltantes: {missing}",
    "placeholderTranslations": "Traducciones provisionales: {placeholder}",
    "noIssues": "✅ No se encontraron problemas. Todas las traducciones están completas.",
    "detailedIssues": "📋 PROBLEMAS DETALLADOS:",
    "detailedSeparator": "--------------------------------------------------",
    "filePath": "📄 {file} → {path}",
    "missingKey": "❌ FALTANTE: {source} → {new}",
    "placeholderKey": "⚠️ PROVISIONAL: \"{target}\" → \"{new}\"",
    "moreIssues": "... y {count} problemas más. Revisa el archivo de informe para detalles completos.",
    "confirmationTitle": "🤔 ¿Deseas proceder con estas correcciones?",
    "confirmationOptions": "Opciones:",
    "optionYes": "y - Sí, aplicar todas las correcciones",
    "optionNo": "n - No, cancelar operación",
    "optionShow": "s - Mostrar problemas detallados",
    "choicePrompt": "Tu elección (y/n/s): ",
    "nonInteractiveMode": "⚡ Modo no interactivo detectado - aplicando correcciones automáticamente...",
    "reportGenerated": "📊 Informe del corrector generado: {path}",
    "summary": {
      "totalIssues": "Total de problemas: {total}",
      "missingKeys": "Claves faltantes: {missing}",
      "placeholderKeys": "Claves provisionales: {placeholder}",
      "languages": "Idiomas: {languages}"
    },
    "welcome": {
      "title": "🎯 ¡Bienvenido al Corrector de Traducciones!",
      "description": "Esta herramienta te ayudará a corregir traducciones rotas y marcadores provisionales en tus archivos de localización."
    },
    "markerPrompt": {
      "title": "🏷️ Configurar Marcadores Provisionales",
      "description": "Ingresa los marcadores que indican texto no traducido (separados por comas):",
      "currentDefaults": "Marcadores predeterminados: {markers}",
      "input": "Marcadores (o presiona Enter para usar predeterminados): "
    },
    "languagePrompt": {
      "title": "🌍 Seleccionar Idiomas a Corregir",
      "available": "Idiomas disponibles: {languages}",
      "description": "Ingresa los idiomas a corregir (separados por comas) o presiona Enter para todos:",
      "input": "Idiomas: ",
      "noLanguages": "No se encontraron idiomas para corregir."
    },
    "directoryPrompt": {
      "title": "📁 Seleccionar Directorio",
      "current": "Directorio actual: {dir}",
      "description": "Ingresa el directorio que contiene tus archivos de localización (o presiona Enter para el actual):",
      "input": "Directorio: "
    }
  },
  "autorun": {
    "stepAnalyzeTranslations": "Analizar traducciones",
    "stepCompletedWithIcon": "✅ Completado: {stepName}",
    "stepValidateTranslations": "Validar traducciones", 
    "stepRunning": "▶️  Paso {stepNumber}/{totalSteps}: {stepName}",
    "separator": "==================================================",
    "stepFailed": "❌ Fallido: {stepName}",
    "errorLabel": "Error",
    "autoRunScriptTitle": "🧪 Flujo de Ejecución Automática",
    "usageTitle": "Uso",
    "runAllSteps": "Ejecutar: 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": "Ejemplos",
    "configExample": "node i18ntk-autorun.js --ui-language=zh",
    "stepsExample1": "node i18ntk-autorun.js --steps=analyze,validate",
    "stepsExample2": "node i18ntk-autorun.js --list",
    "customSettingsConfiguration": "Configuración de autorun personalizada",
    "availableSteps": "Pasos disponibles",
    "startingAutoRunWorkflow": "🚀 Iniciando Flujo de Ejecución Automática...",
    "workflowIncludesSteps": "Flujo incluye {count} pasos:",
    "missingRequiredFile": "Falta archivo requerido: {file}",
    "workflowStopped": "Workflow detenido debido a un fallo.",
    "workflowCompleted": "🎉 Workflow completado!",
    "successfulSteps": "Pasos exitosos: {count}",
    "failedSteps": "Pasos fallidos: {count}",
    "stepInitializeProject": "Inicializar proyecto",
    "stepCheckUsage": "Verificar uso de claves",
    "stepGenerateSummary": "Generar informe de resumen",
    "runInitializationFirst": "Por favor, ejecuta la inicialización primero.",
    "initializationCheckPassed": "Comprobación de inicialización pasada.",
    "runningStep": "Ejecutando paso: {stepName}",
    "commandLabel": "Comando: {command}",
    "stepCompletedWithTime": "Paso '{stepName}' completado en {duration}ms.",
    "stepCompleted": "Paso '{stepName}' completado.",
    "stepFailedWithError": "Paso '{stepName}' fallado con error: {error}",
    "requiredStepFailed": "Paso requerido fallado. Deteniendo flujo.",
    "optionalStepFailed": "Paso opcional fallado. Continuando flujo.",
    "stepRequired": "(Requerido)",
    "stepOptional": "(Opcional)",
    "startingExecution": "Iniciando ejecución...",
    "pressEnterToContinue": "Presiona Enter para continuar...",
    "runningSelectedSteps": "Ejecutando pasos seleccionados...",
    "invalidStepNumber": "Número de paso inválido: {stepNum}",
    "executionReport": "Informe de ejecución:",
    "requiredFailedSteps": "Pasos requeridos fallidos: {count}",
    "stepDetails": "Detalles del paso:",
    "reportSavedTo": "Informe guardado en: {path}",
    "overallStatusSuccess": "SUCCESS",
    "overallStatusFailed": "FAILED",
    "overallStatus": "Estado general: {status}",
    "pressEnterForDefaults": "Presiona Enter para usar configuraciones predeterminadas para cualquier prompt.",
    "sourceDirPrompt": "Ingresa directorio fuente (predeterminado: {default}): ",
    "sourceLangPrompt": "Ingresa idioma fuente (predeterminado: {default}): ",
    "targetLangsPrompt": "Ingresa idiomas objetivo (separados por comas, predeterminado: {default}): ",
    "translationMarkerPrompt": "Ingresa marcador de traducción (predeterminado: {default}): ",
    "outputDirPrompt": "Ingresa directorio de salida para informes (predeterminado: {default}): ",
    "settingsUpdatedSuccessfully": "Configuraciones actualizadas con éxito!",
    "errorConfiguringSettings": "Error al configurar configuraciones: {error}",
    "configurationComplete": "Configuración completada.",
    "runAutoRunCommand": "Ahora puedes ejecutar el comando de auto-run.",
    "configurationFailed": "Configuración fallida: {error}",
    "noValidStepNumbers": "No se proporcionaron números de paso válidos.",
    "autoRunFailed": "Auto-run fallido: {error}",
    "stepCompleteTranslations": "Completar traducciones",
    "stepAnalyzeSizing": "Analizar-sizing",
    "stepCompletedIcon": "✅",
    "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Paso '{stepName}' en ejecución...",
    "stepFailedIcon": "❌",
    "translationLoadWarning": "Advertencia: No se pudieron cargar traducciones {lang}",
    "configReadError": "Error al leer {file}"
  },
  "analyze": {
    "help_message": "\nAnalizador de Traducciones I18n\n\nUso: node i18ntk-analyze.js [opciones]\n\nOpciones:\n  --source-dir <dir>     Directorio fuente a escanear (predeterminado: ./src)\n  --i18n-dir <dir>       Directorio i18n (predeterminado: ./src/locales)\n  --output-report        Generar informe detallado\n  --output-dir <dir>     Directorio de salida para informes (predeterminado: ./reports)\n  --help                 Mostrar esta ayuda\n\nEjemplos:\n  node i18ntk-analyze.js --output-report\n  node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales\n  node i18ntk-analyze.js --output-dir=./analysis --output-report\n",
    "source_directory": "📁 Directorio fuente: {sourceDir}",
    "i18n_directory": "🌐 Directorio i18n: {i18nDir}",
    "loading_translation_files": "📋 Cargando archivos de traducción...",
    "sourceDirectoryLabel": "📁 Directorio Fuente: {sourceDir}",
    "sourceLanguageLabel": "🌍 Idioma Fuente: {sourceLanguage}",
    "strictModeLabel": "⚙️ Modo Estricto: {mode}\n",
    "found_translation_files_count": "✅ Encontrados {count} archivos de traducción",
    "analyzing_translations": "🔍 Analizando traducciones...",
    "analysis_completed_successfully": "🎉 ¡Análisis completado exitosamente!",
    "analysis_results": "📊 RESULTADOS DEL ANÁLISIS",
    "language_analysis_stats": "   {language}: {translatedKeys}/{totalKeys} ({percentage}% traducido)",
    "sample_missing_keys": "\nEjemplo de claves faltantes:",
    "missing_key": "- {key}",
    "and_more_missing": "...y {count} más.",
    "sample_unused_keys": "\nEjemplo de claves no utilizadas:",
    "unused_key": "- {key}",
    "and_more_unused": "...y {count} más.",
    "recommendations": "\n📋 RECOMENDACIONES",
    "add_missing_translations": "💡 Agrega traducciones faltantes para mejorar la cobertura.",
    "remove_unused_translations": "💡 Elimina traducciones no utilizadas para mantener tu proyecto limpio.",
    "next_steps": "\n📋 SIGUIENTES PASOS",
    "review_analysis_results": "1. Revisa los resultados del análisis en la consola o en el informe generado.",
    "run_with_output_report": "2. Ejecuta con --output-report para un informe detallado.",
    "add_or_remove_translations": "3. Agrega traducciones faltantes o elimina las no utilizadas.",
    "rerun_analysis": "4. Vuelve a ejecutar el análisis para verificar las mejoras.",
    "analysis_summary": "📊 RESUMEN DEL ANÁLISIS",
    "source_files_scanned": "Archivos fuente escaneados: {fileCount}",
    "translation_files_checked": "Archivos de traducción verificados: {translationFileCount}",
    "total_keys": "Total de claves: {totalKeys}",
    "translated_keys": "Claves traducidas: {translatedKeys}",
    "missing_keys": "Claves faltantes: {missingKeys}",
    "unused_keys": "Claves no utilizadas: {unusedKeys}",
    "translation_coverage": "Cobertura de traducción: {coverage}%",
    "analysis_passed_for_language": "✅ Análisis aprobado para {language}",
    "analysis_failed_for_language": "❌ Análisis fallido para {language} ({missingKeys} faltantes, {unusedKeys} no utilizadas)",
    "starting": "🔍 Iniciando análisis de traducción...",
    "foundLanguages": "📋 Encontrados {count} idiomas para analizar: {languages}",
    "analyzing": "🔄 Analizando {language}...",
    "reportTitle": "📊 INFORME DE ANÁLISIS DE TRADUCCIÓN",
    "generated": "Generado: {timestamp}",
    "status": "Estado: {translated}/{total} claves ({percentage}% traducido)",
    "filesAnalyzed": "Archivos analizados: {analyzed}/{total}",
    "keysNeedingTranslation": "Claves que necesitan traducción: {count}",
    "fileBreakdown": "📋 DESGLOSE DE ARCHIVOS",
    "error": "Error",
    "completed": "✅ Análisis completado para {language}",
    "progress": "📊 Progreso general: {translated}/{total} idiomas procesados",
    "reportSaved": "   Informe guardado: {reportPath}",
    "summary": "📊 RESUMEN DEL ANÁLISIS",
    "finished": "✅ ¡Análisis completado exitosamente!",
    "statusFileMissing": "❌ Archivo de traducción faltante",
    "sourceKeys": "📊 Claves fuente: {count}",
    "translation": "📊 Traducción: {translated}/{total} ({percentage}%)",
    "structure": "🗂️  Estructura: {status}",
    "consistent": "Consistente",
    "inconsistent": "Inconsistente",
    "missingKeys": "Claves faltantes: {count}",
    "extraKeys": "Claves extra: {count}",
    "issues": "⚠️  Problemas encontrados: {count}",
    "issueType": {
      "not_translated": "No traducido: {count}",
      "empty_value": "Valores vacíos: {count}",
      "partial_translation": "Traducciones parciales: {count}",
      "format_mismatch": "Desajustes de formato: {count}",
      "type_mismatch": "Desajustes de tipo: {count}",
      "structure_mismatch": "Desajustes de estructura: {count}",
      "same_as_source": "Igual que la fuente: {count}"
    },
    "keysToTranslate": "📋 CLAVES PARA TRADUCIR",
    "key": "Clave",
    "english": "Inglés",
    "needsTranslation": "NECESITA TRADUCCIÓN",
    "andMoreKeys": "...y {count} claves más.",
    "noLanguages": "⚠️  No se encontraron idiomas objetivo.",
    "languageStats": "{language}: {percentage}% completo ({translated}/{total} claves)",
    "invalidReportFilePath": "Ruta de archivo de informe inválida",
    "failedToWriteReportFile": "Error al escribir el archivo de informe de forma segura"
  },
  "complete": {
    "configLoadedSuccessfully": "Configuración cargada exitosamente",
    "configLoadingFailed": "Falló la carga de la configuración",
    "sourceLanguageNotFound": "No se encontró el directorio del idioma fuente: {sourceLanguage}",
    "couldNotParseTarget": "No se pudo analizar el archivo objetivo: {file}",
    "couldNotParseSource": "No se pudo analizar el archivo fuente: {file}",
    "reportGenerated": "Informe generado: {path}",
    "generateReportPrompt": "¿Deseas generar un informe?",
    "title": "🌍 COMPLETADO DE TRADUCCIÓN I18NTK",
    "separator": "============================================================",
    "sourceDir": "📁 Directorio fuente: {sourceDir}",
    "sourceLanguage": "🌐 Idioma fuente: {sourceLanguage}",
    "dryRunMode": "🧪 Modo de prueba - no se realizarán cambios",
    "languages": "🌍 Idiomas disponibles: {languages}",
    "addingMissingKeys": "➕ Agregando claves faltantes a los archivos de traducción...",
    "processing": "🔄 Procesando {language}...",
    "addedKeys": "✅ Se agregaron {count} claves faltantes",
    "noChangesNeeded": "✅ No se necesitan cambios para {language}",
    "summaryTitle": "📊 RESUMEN DE COMPLETADO",
    "totalChanges": "📝 Cambios totales: {totalChanges}",
    "languagesProcessed": "🌍 Idiomas procesados: {languagesProcessed}",
    "missingKeysAdded": "➕ Claves faltantes agregadas: {missingKeysAdded}",
    "nextStepsTitle": "📋 SIGUIENTES PASOS",
    "nextStep1": "1. Ejecutar análisis de uso:",
    "nextStep2": "   node i18ntk-usage.js --output-report",
    "nextStep3": "2. Validar traducciones:",
    "nextStep4": "   node i18ntk-validate.js",
    "nextStep5": "3. Analizar patrones:",
    "nextStep6": "   node i18ntk-analyze.js",
    "allKeysAvailable": "🎉 ¡Todas las claves de traducción están ahora disponibles!",
    "runWithoutDryRun": "💡 Ejecutar sin --dry-run para aplicar cambios",
    "deletingOldReport": "🗑️ Eliminando informe antiguo...",
    "generatingFreshAnalysis": "📊 Generando nuevo análisis de uso...",
    "couldNotGenerate": "❌ No se pudo generar el análisis de uso",
    "reportNotFound": "📋 Informe de uso no encontrado. Usando claves comunes...",
    "foundMissingKeys": "📋 Se encontraron {count} claves faltantes del análisis de uso",
    "couldNotParse": "❌ No se pudo analizar el informe de uso. Usando claves comunes...",
    "errorDuringCompletion": "❌ Error durante la completación: {error}",
    "fatalError": "❌ Error fatal: {error}",
    "configurationValidationFailed": "Falló la validación de configuración: faltan campos requeridos"
  },
  "sizing": {
    "separator": "================================================================================", 
    "lineSeparator": " --------------------------------------------------------------------------------",
    "analysisStats": "{stats}",
    "sourceDirectoryLabel": "📁 Directorio fuente: {sourceDir}",
    "sourceLanguageLabel": "🌍 Idioma fuente: {sourceLanguage}", 
    "strictModeLabel": "⚙️ Modo estricto: {mode}",
    "invalidSourceDirectoryError": "Ruta de directorio fuente inválida: {sourceDir}",
    "sourceDirectoryNotFoundError": "Directorio fuente no encontrado: {sourceDir}",
    "invalidOutputDirectoryError": "Ruta de directorio de salida inválida: {outputDir}",
    "invalidReportFileError": "Ruta de archivo de informe inválida",
    "problematic_keys": "Claves problemáticas: {problematicKeys}",
    "problematicKeysLabel": "Claves problemáticas: {problematicKeys}",
    "long_translations": "Traducciones largas: {longTranslations}",
    "failedToSaveReportError": "Error al guardar el informe de forma segura",
    "invalidCsvFileError": "Ruta de archivo CSV inválida",
    "failedToSaveCsvError": "Error al guardar el informe CSV de forma segura",
    "fatalError": "❌ Error fatal: {error}",
    "starting_i18n_sizing_analysis": "Iniciando análisis de tamaño i18n...",
    "source_directory": "Directorio fuente: {sourceDir}",
    "found_languages": "Idiomas encontrados: {languages}",
    "analyzing_file_sizes": "Analizando tamaños de archivo...",
    "analyzing_translation_content": "Analizando contenido de traducción...",
    "generating_size_comparisons": "Generando comparaciones de tamaño...",
    "no_languages_found_for_comparison": "No se encontraron idiomas para comparación",
    "sizing_analysis_results": "Resultados del análisis de tamaño i18n",
    "file_sizes_title": "Tamaños de archivo",
    "file_sizes_header": "Idioma    Tamaño(KB)  Líneas  Caracteres",
    "file_size_row": "{lang}      {sizeKB}      {lines}      {characters}",
    "language_statistics_title": "Estadísticas de idioma",
    "language_stats_header": "Idioma    Claves  Caracteres  Longitud Promedio  Longitud Máxima  Vacías  Largas",
    "language_stats_row": "{lang}      {totalKeys}    {totalCharacters}    {averageKeyLength}    {maxKeyLength}    {emptyKeys}    {longKeys}",
    "size_variations_title": "Variaciones de tamaño",
    "size_variations_header": "Idioma    Char Diff  % Diff  Problematic",
    "size_variation_row": "{lang}      {characterDifference}    {percentageDifference}%    {problematic}",
    "problematic_yes": "Yes",
    "problematic_no": "No",
    "recommendations_title": "Recommendaciones",
    "recommendation_item": "{index}. {recommendation}",
    "problematic_key_detail": "   {index}. Clave: '{key}' - Variaciones: {variations}",
    "generating_detailed_report": "Generando informe detallado...",
    "keysHaveSignificantSizeVariations": "las claves tienen variaciones significativas de tamaño",
    "longTranslationsDetected": "${lang} tiene ${data.longKeys} traducciones más largas que 100 caracteres - considere dividirlas",
    "longer": "más largo",
    "shorter": "más corto", 
    "review_translations": "Considere revisar las traducciones de {lang} - son {percentageDifference}% {comparison} que la línea base",
    "report_saved_to": "Informe guardado en: {reportPath}",
    "considerReviewingTranslations": "Considere revisar las traducciones de ${lang} - son ${data.percentageDifference}% más largas que la línea base",
    "csv_report_saved_to": "Informe CSV guardado en: {csvPath}",
    "human_report_saved": "Informe legible guardado en: {reportPath}",
    "folder_summary_title": "Resumen de Carpeta",
    "folder_summary_table_header": "Idioma    Tamaño(KB)    Claves    Long. Promedio    Caracteres Totales",
    "folder_summary_row": "{lang}      {sizeKB}      {totalKeys}    {avgLength}    {totalChars}",
    "language_comparison_title": "Comparación de Idiomas",
    "language_comparison_row": "{lang}: {diff} caracteres ({percent}%) {status}",
    "summary_stats": "📊 Resumen: {totalLanguages} idiomas, {totalKeys} claves - Informes guardados en {reportPath}",
    "detailedKeysDescription": "Mostrar análisis detallado de claves en consola",
    "too_many_keys_warning": "⚠️ Demasiadas claves para mostrar en consola - revise el archivo de informe detallado para análisis completo",
    "no_translation_files_found": "No se encontraron archivos de traducción",
    "analysis_completed": "Análisis completado en {duration}ms",
    "analysis_failed": "Análisis fallido: {errorMessage}",
    "starting_analysis": "Iniciando análisis...",
    "found_files": "Encontrados {count} archivos",
    "failed_to_parse_language_error": "Error al analizar traducciones de {language}: {errorMessage}",
    "recommendations": {
      "keys_have_significant_size_variations": "las claves tienen variaciones significativas de tamaño",
      "consider_reviewing_translations": "Considere revisar las traducciones de {lang} - son {percentageDifference}% {comparison} que la línea base",
      "long_translations_detected": "{lang} tiene {longKeys} traducciones más largas que {threshold} caracteres - considere dividirlas"
    }
  },
  "usage": {
    "help_message": "\nAnalizador de Uso I18n\n\nUso: node i18ntk-usage.js [opciones]\n\nOpciones:\n  --source-dir <dir>     Directorio fuente a escanear (predeterminado: ./src)\n  --i18n-dir <dir>       Directorio i18n (predeterminado: ./src/locales)\n  --output-report        Generar informe detallado\n  --output-dir <dir>     Directorio de salida para informes (predeterminado: ./reports)\n  --help                 Mostrar esta ayuda\n\nEjemplos:\n  node i18ntk-usage.js --output-report\n  node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n  node i18ntk-usage.js --output-dir=./analysis --output-report\n",
    "source_directory_thissourcedir": "📁 Directorio fuente: {sourceDir}",
    "translationCompletenessTitle": "🌍 Completitud de Traducción:",
    "i18n_directory_thisi18ndir": "🌐 Directorio i18n: {i18nDir}",
    "failed_to_parse_filename_error": "⚠️ Error al analizar {fileName}: {errorMessage}",
    "analyzing_source_files": "🔍 Analizando archivos fuente...",
    "found_files_in_source": "📂 Encontrados {numFiles} archivos en el directorio fuente",
    "found_thisusedkeyssize_unique_": "🎯 Encontradas {usedKeysSize} claves únicas usadas",
    "total_key_usages_totalkeysfoun": "📊 Total de usos de claves: {totalKeysFound}",
    "loading_available_translation_": "📋 Cargando claves de traducción disponibles...",
    "found_thisavailablekeyssize_av": "✅ Encontradas {availableKeysSize} claves disponibles",
    "foundTranslationFiles": "✅ Encontrados {count} archivos de traducción",
    "errorReadingI18nDirectory": "⚠️ Error al leer directorio i18n: {error}",
    "pressEnterToReturnToMenu": "📝 Presiona Enter para volver al menú principal...",
    "notTranslatedKeysTotal": "⚠️ Claves no traducidas: {total}",
    "noSourceFilesFound": "⚠️ No se encontraron archivos fuente en el directorio fuente.",
    "reviewNotTranslatedKeys": "💡 Revisar claves no traducidas",
    "analysisCompletedSuccessfully": "🎉 ¡Análisis completado exitosamente!",
    "detectedSourceDirectory": "Directorio fuente detectado: {sourceDir}",
    "detectedI18nDirectory": "Directorio i18n detectado: {i18nDir}",
    "fileInfo": "   📄 {namespace}: {keys} claves",
    "failedToAnalyzeUsage": "❌ Error al analizar uso: {error}",
    "failedToAnalyzeFile": "❌ Error al analizar archivo: {error}",
    "failedToExtractKeys": "❌ Error al extraer claves de {filePath}: {error}",
    "analysisFailedError": "❌ Error de análisis: {error}",
    "analyzerInitialized": "Analizador inicializado",
    "analyzerInitFailed": "Error al inicializar analizador: {error}",
    "argsParsed": "Argumentos analizados",
    "processedFiles": "Procesados {processedFiles} de {totalFiles} archivos.",
    "argsParseFailed": "Error al analizar argumentos: {error}",
    "translationDiscoveryError": "Error al descubrir traducción: {error}",
    "fileTraversalError": "Error al recorrer archivo: {error}",
    "sourceEqualsI18nWarn": "⚠️ El directorio fuente y el directorio i18n son el mismo. Esto puede causar problemas con el análisis.",
    "i18nEqualsSourceWarn": "⚠️ El directorio i18n y el directorio fuente son el mismo. Esto puede causar problemas con el análisis.",
    "usageAnalysisFailed": "⚠️ Error en el análisis de uso: {error}",
    "translationFileParseError": "⚠️ Error al analizar archivo de traducción: {error}",
    "translationKeysLoadError": "⚠️ Error al cargar claves de traducción: {error}",
    "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% traducido)",
    "missingKeysCount": "⚠️ Claves faltantes: {count}",
    "analyzingTranslationCompleteness": "Analizando completitud de traducción...",
    "unusedKeysCount": "Claves no usadas: {count}",
    "usedKeysCount": "Claves usadas: {count}",
    "availableKeysCount": "Claves disponibles: {count}",
    "analysisResults": "Resultados del análisis:",
    "i18nDirectoryNotFound": "⚠️ Directorio i18n no encontrado. Por favor verifica la ruta.",
    "sourceDirectoryNotFound": "⚠️ Directorio fuente no encontrado: {dir}",
    "checkUsage": {
      "title": "🔍 I18NTK USAGE ANALYSIS",
      "analyzing_source_files": "🔍 Analizando archivos fuente...",
      "source_directory_thissourcedir": "📁 Directorio fuente: {sourceDir}",
      "i18n_directory_thisi18ndir": "📁 Directorio i18n: {i18nDir}",
      "found_files_in_source": "✅ Encontrados {numFiles} archivos en el directorio fuente",
      "no_source_files_found": "⚠️ No se encontraron archivos fuente en el directorio fuente",
      "processedFiles": "📊 Procesados {processedFiles} de {totalFiles} archivos",
      "failedToProcessFile": "❌ Error al procesar archivo",
      "found_thisusedkeyssize_unique_": "🔍 Encontradas {usedKeysSize} claves únicas usadas",
      "total_key_usages_totalkeysfoun": "📊 Total de usos de claves: {totalKeysFound}",
      "loading_available_translation_": "📂 Cargando claves de traducción disponibles...",
      "found_thisavailablekeyssize_av": "✅ Encontradas {availableKeysSize} claves disponibles",
      "message": "Analizando uso de claves de traducción en tu proyecto...",
      "usage_analysis_results": "📊 RESULTADOS DEL ANÁLISIS DE USO",
      "source_files_scanned_thisfileu": "📁 Archivos fuente escaneados: {fileUsageSize}",
      "available_translation_keys_thi": "✅ Claves de traducción disponibles: {availableKeysSize}",
      "used_translation_keys_thisused": "🔍 Claves de traducción usadas: {usedKeysSize}",
      "dynamic_keys_detected_dynamick": "⚡ Claves dinámicas detectadas: {dynamicKeysLength}",
      "unused_keys_unusedkeyslength": "🗑️  Claves no usadas: {unusedKeysLength}",
      "missing_keys_missingkeyslength": "❌ Claves faltantes: {missingKeysLength}",
      "translation_completeness_title": "📈 COMPLETENESS OF TRANSLATION",
      "language_completeness_stats": "{language}: {translated}/{total} ({completeness}% traducido)",
      "n_sample_unused_keys": "🗑️  EJEMPLO DE CLAVES NO UTILIZADAS (primeras 5):",
      "key": "    🔑 {key}",
      "and_unusedkeyslength_5_more": "... y {count} claves no utilizadas más",
      "n_sample_missing_keys": "\n❌ EJEMPLO DE CLAVES FALTANTES (primeras 5):",
      "and_missingkeyslength_5_more": "... y {count} claves faltantes más",
      "n_generating_detailed_report": "\n📊 Generando informe detallado...",
      "report_saved_reportpath": "📄 Informe guardado: {reportPath}",
      "n_recommendations": "\n💡 RECOMENDACIONES:",
      "consider_removing_unused_trans": "    🗑️  Considere eliminar las traducciones no utilizadas para reducir el tamaño del paquete",
      "add_missing_translation_keys_t": "    ➕ Agregue las claves de traducción faltantes para mantener la consistencia",
      "review_dynamic_keys_manually_t": "    🔍 Revise manualmente las claves dinámicas (pueden ser válidas)",
      "all_translation_keys_are_prope": "✅ ¡Todas las claves de traducción se utilizan correctamente!",
      "n_next_steps": "\n🎯 SIGUIENTES PASOS:",
      "2_check_the_detailed_report_fo": "    2. Verifique el informe detallado para problemas específicos",
      "help_message": "\nAnalizador de Uso i18ntk\n\nUso: node i18ntk-usage.js [opciones]\n\nOpciones:\n  --source-dir <dir>     Directorio fuente a escanear (predeterminado: ./src)\n  --i18n-dir <dir>       Directorio i18n (predeterminado: ./src/locales)\n  --output-report        Generar informe detallado\n  --output-dir <dir>     Directorio de salida para informes (predeterminado: ./reports)\n  --help                 Mostrar esta ayuda\n\nEjemplos:\n  node i18ntk-usage.js --output-report\n  node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n  node i18ntk-usage.js --output-dir=./analysis --output-report\n",
      "1_review_the_analysis_results": "1. Revise los resultados del análisis en la consola o informe generado.",
      "2_run_with_outputreport_for_de": "2. Ejecute con --output-report para informe detallado.",
      "3_remove_unused_keys_or_add_mi": "3. Elimine claves no utilizadas o agregue claves faltantes al código fuente.",
      "4_rerun_analysis_to_verify_imp": "4. Re-ejecute el análisis para verificar mejoras.",
      "noSourceFilesFound": "No se encontraron archivos fuente para analizar.",
      "i18nDirectoryNotFound": "No se encontró el directorio i18n: {i18nDir}",
      "noTranslationLanguagesFound": "No se encontraron idiomas de traducción.",
      "failedToAnalyzeFile": "Error al analizar archivo {filePath}: {error}",
      "failedToAnalyzeLanguage": "Error al analizar el idioma {language}: {error}",
      "translationCompletenessAnalysisFailed": "El análisis de completitud de traducción falló: {error}",
      "n": ""
    },
    "complete": {
      "configLoadedSuccessfully": "Configuración cargada correctamente",
      "configLoadingFailed": "Error al cargar la configuración",
      "title": "🌍 COMPLETADO DE TRADUCCIÓN I18NTK",
      "separator": "============================================================",
      "sourceDir": "📁 Directorio fuente: {sourceDir}",
      "sourceLanguage": "🌐 Idioma fuente: {sourceLanguage}", 
      "dryRunMode": "🧪 Modo de prueba - no se realizarán cambios",
      "languages": "🌍 Idiomas disponibles: {languages}",
      "addingMissingKeys": "➕ Agregando claves faltantes a archivos de traducción...",
      "processing": "🔄 Procesando {language}...",
      "addedKeys": "✅ Se agregaron {count} claves faltantes",
      "changeDetails": "📝 {file}: {key}",
      "andMore": "...y {count} más",
      "noChangesNeeded": "✅ No se necesitan cambios para {language}",
      "summaryTitle": "📊 RESUMEN DE COMPLETADO",
      "totalChanges": "📝 Cambios totales: {totalChanges}",
      "languagesProcessed": "🌍 Idiomas procesados: {languagesProcessed}",
      "missingKeysAdded": "➕ Claves faltantes agregadas: {missingKeysAdded}",
      "nextStepsTitle": "📋 SIGUIENTES PASOS",
      "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": "🎉 ¡Todas las claves de traducción están disponibles!",
      "runWithoutDryRun": "💡 Ejecute sin --dry-run para aplicar cambios",
      "deletingOldReport": "🗑️  Eliminando informe antiguo...",
      "generatingFreshAnalysis": "📊 Generando análisis de uso fresco...",
      "couldNotGenerate": "❌ No se pudo generar el análisis de uso",
      "reportNotFound": "📋 Informe de uso no encontrado. Usando claves comunes...",
      "foundMissingKeys": "📋 Encontradas {count} claves faltantes del análisis de uso",
      "couldNotParse": "❌ No se pudo analizar el informe de uso. Usando claves comunes..."
    },
    "noTranslationLanguagesFound": "No se encontraron idiomas de traducción.",
    "failedToAnalyzeLanguage": "Error al analizar el idioma {language}: {error}",
    "translationCompletenessAnalysisFailed": "El análisis de completitud de traducción falló: {error}"
  },
  "validate": {
    "help_message": "\nValidador de Traducciones I18n\n\nUso: node i18ntk-validate.js [opciones]\n\nOpciones:\n  --source-dir <dir>     Directorio fuente a escanear (predeterminado: ./src)\n  --i18n-dir <dir>       Directorio i18n (predeterminado: ./src/locales)\n  --output-report        Generar informe detallado\n  --output-dir <dir>     Directorio de salida para informes (predeterminado: ./reports)\n  --help                 Mostrar esta ayuda\n\nEjemplos:\n  node i18ntk-validate.js --output-report\n  node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales\n  node i18ntk-validate.js --output-dir=./analysis --output-report\n",
    "title": "🔍 Validador de Traducciones I18n",
    "message": "Iniciando proceso de validación...",
    "sourceDirectory": "📁 Directorio fuente: {dir}",
    "sourceLanguage": "🌍 Idioma fuente: {sourceLanguage}",
    "strictMode": "⚙️  Modo estricto: {mode}",
    "noTargetLanguages": "No hay idiomas objetivo configurados; omitiendo validación de objetivos. Agregue idiomas mediante \"i18ntk init --languages=de,fr\".",
    "validatingLanguages": "🌍 Validando idiomas: {langs}",
    "validatingLanguage": "🔍 Validando idioma: {lang}",
    "filesCount": "📄 Archivos: {count}",
    "keysCount": "🔑 Claves: {count}",
    "missingFilesCount": "📁 Archivos faltantes: {count}",
    "syntaxErrorsCount": "❌ Errores de sintaxis: {count}",
    "translationPercentage": "🎯 Traducción: {percentage}% ({translated}/{total} claves)",
    "validationSummary": "📊 RESUMEN DE VALIDACIÓN",
    "validation_failed": "❌ Validación fallida: {error}",
    "totalErrors": "❌ Errores totales: {count}",
    "totalWarnings": "⚠️  Advertencias totales: {count}",
    "errorsSection": "❌ ERRORES",
    "warningsSection": "⚠️  ADVERTENCIAS",
    "recommendationsSection": "💡 RECOMENDACIONES",
    "fixErrorsFirst": "1. Corregir todos los errores primero",
    "resolveMissingFilesAndSyntaxErrors": "1. Resolver archivos faltantes y errores de sintaxis",
    "fixStructuralInconsistencies": "2. Corregir inconsistencias estructurales",
    "completeMissingTranslations": "3. Completar traducciones faltantes",
    "rerunValidation": "4. Volver a ejecutar validación para verificar correcciones",
    "addressWarnings": "Abordar advertencias para mejorar la calidad",
    "reviewWarnings": "Revisar advertencias y corregir donde sea apropiado",
    "considerRunningWithStrict": "2. Considerar ejecutar con bandera --strict para validación más estricta",
    "allValidationsPassed": "🎉 ¡Todas las validaciones pasaron!",
    "considerRunningUsageAnalysis": "Considerar ejecutar análisis de uso: node i18ntk-usage.js",
    "deletedOldReport": "🗑️  Informe de validación antiguo eliminado",
    "sourceDir": "📁 Directorio fuente: {sourceDir}",
    "i18nDir": "🌐 Directorio i18n: {i18nDir}",
    "loadingTranslationFiles": "📋 Cargando archivos de traducción...",
    "foundTranslationFilesCount": "✅ Encontrados {count} archivos de traducción",
    "analyzingTranslations": "🔍 Analizando traducciones...",
    "validationCompletedSuccessfully": "🎉 ¡Validación completada exitosamente!",
    "validationErrorsFound": "⚠️  Errores de validación encontrados: {count}",
    "validationWarningsFound": "⚠️  Advertencias de validación encontradas: {count}",
    "validationPassed": "✅ Validación pasada sin errores",
    "validationFailed": "Validación fallida: {error}",
    "startingValidationProcess": "🔍 Iniciando proceso de validación...",
    "validationProcessCompletedSuccessfully": "✅ Proceso de validación completado exitosamente",
    "stackTrace": "Rastro de pila: {stack}",
    "authenticationFailed": "❌ Autenticación fallida. Acceso denegado.",
    "fatalValidationError": "❌ Error de validación fatal: {error}",
    "configAccess": "Accediendo a configuración para validación",
    "configValidated": "Configuración validada exitosamente",
    "configError": "Error de configuración: {error}",
    "validatorInit": "Inicializando validador I18n",
    "validatorInitialized": "Validador I18n inicializado exitosamente",
    "validatorInitError": "Error de inicialización del validador: {error}",
    "argsParsing": "Analizando argumentos de línea de comandos",
    "argsParsed": "Argumentos de línea de comandos analizados exitosamente",
    "argsParseError": "Error de análisis de argumentos: {error}",
    "languagesScan": "Escaneando idiomas disponibles",
    "languagesFound": "Encontrados {count} idiomas",
    "languagesScanError": "Error de escaneo de idiomas: {error}",
    "filesScan": "Encontrados {count} archivos en {language}",
    "filesScanError": "Error de escaneo de archivos: {error}",
    "jsonValidated": "Sintaxis JSON validada: {filePath}",
    "jsonValidationError": "Error de validación JSON: {error}",
    "languageValidation": "Validando idioma: {language}",
    "languageValidationError": "Error de validación de idioma: {error}",
    "fileDeleted": "Archivo eliminado",
    "runStarted": "Iniciando ejecución de validación",
    "runCompleted": "Ejecución de validación completada exitosamente",
    "runError": "Ejecución de validación fallida: {error}",
    "scriptExecution": "Ejecución de script",
    "validationCompleted": "Validación completada",
    "validationError": "Error de validación: {error}",
    "separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
    "languageHeader": "🌐 Idioma: {language}",
    "validationResults": "📊 Resultados de Validación",
    "noErrors": "✅ No se encontraron errores",
    "noWarnings": "✅ No se encontraron advertencias",
    "summaryHeader": "📋 RESUMEN GENERAL",
    "progressIndicator": "⏳ Procesando...",
    "completedIndicator": "✅ Completado",
    "errorIndicator": "❌ Error",
    "warningIndicator": "⚠️  Advertencia",
    "infoIndicator": "ℹ️  Información",
    "sourceDirNotConfigured": "Directorio fuente no configurado",
    "sourceLanguageNotConfigured": "Idioma fuente no configurado",
    "translationFunctionNotInitialized": "Función de traducción no inicializada correctamente",
    "sourceLanguageDirectoryNotFound": "Directorio de idioma fuente no encontrado",
    "specifiedLanguageNotFound": "Idioma especificado no encontrado",
    "noJsonFilesFound": "No se encontraron archivos JSON en el directorio fuente: {sourceDir}",
    "i18nDirectoryNotFound": "Directorio i18n no encontrado: {i18nDir}",
    "invalidDirectoryPaths": "Rutas de directorio inválidas detectadas",
    "invalidSampleFilePath": "Ruta de archivo de ejemplo inválida",
    "failedToCreateSampleTranslationFile": "Falló al crear archivo de traducción de ejemplo",
    "invalidFilePathDetected": "Ruta de archivo inválida detectada",
    "failedToWriteFile": "Falló al escribir archivo: {filePath}"
  },
  "adminCli": {
    "setupPinProtectionTitle": "\n🔐 Configurando Protección PIN de Administrador",
    "setupPinProtectionDescription": "Esto requerirá un PIN de 4-6 dígitos para operaciones administrativas.",
    "enablePinProtectionPrompt": "¿Deseas habilitar la protección PIN de administrador?",
    "setupCancelled": "Configuración de protección PIN de administrador cancelada.",
    "enterPinPrompt": "Ingresa un PIN de 4-6 dígitos: ",
    "pinFormatError": "❌ El PIN debe tener 4-6 dígitos. Por favor intenta de nuevo.",
    "confirmPinPrompt": "Confirma el PIN: ",
    "pinMismatchError": "❌ Los PINs no coinciden. Por favor intenta de nuevo.",
    "pinProtectionEnabledSuccess": "✅ ¡Protección PIN de administrador habilitada exitosamente!",
    "pinRecoveryWarning": "⚠️  Recuerda tu PIN - no podrá ser recuperado si lo pierdes.",
    "setupPinProtectionFailed": "❌ Falló la configuración de protección PIN de administrador.",
    "errorSettingUpPin": "❌ Error configurando PIN de administrador: {message}",
    "authRequiredForOperation": "\n🔐 Autenticación de administrador requerida para: {operation}",
    "invalidPinFormat": "❌ Formato de PIN inválido. El PIN debe tener 4-6 dígitos.",
    "authenticationSuccess": "✅ ¡Autenticación exitosa!",
    "invalidPinAttemptsRemaining": "❌ PIN inválido. {remaining} intentos restantes.",
    "authenticationFailedAccessDenied": "❌ Autenticación fallida. Acceso denegado.",
    "authenticationError": "❌ Error de autenticación: {message}",
    "pinProtectionNotEnabled": "La protección PIN de administrador no está habilitada actualmente.",
    "disablingPinProtectionTitle": "\n🔓 Deshabilitando Protección PIN de Administrador",
    "confirmDisablePinProtection": "¿Estás seguro de que deseas deshabilitar la protección PIN de administrador?",
    "operationCancelled": "Operación cancelada.",
    "pinProtectionDisabledSuccess": "✅ Protección PIN de administrador deshabilitada.",
    "disablePinProtectionFailed": "❌ Falló al deshabilitar la protección PIN de administrador.",
    "errorDisablingPinProtection": "❌ Error deshabilitando protección de administrador: {message}",
    "adminProtectionStatusTitle": "\n🔐 Estado de Protección de Administrador",
    "statusEnabled": "Estado: ✅ HABILITADO",
    "protectionDetails": "Protección: PIN de 4-6 dígitos requerido para operaciones de administrador",
    "lockoutDetails": "Bloqueo: 3 intentos fallidos = 15 minutos de bloqueo",
    "statusDisabled": "Estado: ❌ DESHABILITADO",
    "noAuthRequired": "Protección: No se requiere autenticación",
    "unprotectedRisk": "Riesgo: Las operaciones administrativas están desprotegidas",
    "errorCheckingAdminStatus": "❌ Error verificando estado de administrador: {message}",
    "authRequired": "🔐 Se requiere autenticación de administrador.",
    "invalidPin": "❌ PIN inválido.",
    "authSuccess": "✅ ¡Autenticación exitosa!",
    "adminPinSetupCli": "configuracion_pin_admin_cli",
    "adminAuthFailedCli": "autenticacion_admin_fallida_cli",
    "adminAuthDisabledCli": "autenticacion_admin_deshabilitada_cli",
    "protectedAccess": "Acceso protegido: Se requiere autenticación de administrador para operaciones sensibles.",
    "enterPin": "Ingresa el PIN de administrador: ",
    "accessGranted": "Acceso concedido."
  },
  "adminPin": {
    "setup_title": "🔐 Configuración de PIN de Administrador",
    "setup_separator": "============================================================",
    "setup_description": "Crea un PIN de 4-6 dígitos para acceso administrativo a configuraciones sensibles.",
    "required_for_title": "Este PIN será requerido para:",
    "required_for_1": "  • Cambiar configuraciones de seguridad",
    "required_for_2": "  • Modificar configuraciones avanzadas",
    "required_for_3": "  • Acceder a herramientas de depuración",
    "required_for_4": "  • Restablecer configuraciones",
    "setup_note": "💡 Nota: Verás asteriscos (*) mientras escribes - son solo caracteres de enmascaramiento.",
    "setup_digits_only": "   Solo se aceptan números del 0-9 como dígitos del PIN.",
    "invalid_pin_length": "❌ PIN inválido. Debe tener 4-6 dígitos (solo números 0-9).",
    "invalid_pin_example": "   Ejemplo: 1234 o 567890",
    "pins_do_not_match": "❌ Los PINs no coinciden.",
    "setup_success": "✅ ¡El PIN de administrador ha sido configurado exitosamente!",
    "setup_warning": "⚠️  Mantén este PIN seguro. No podrá ser recuperado si se pierde.",
    "setup_error": "❌ Error configurando PIN:",
    "session_expired": "\n⏰ Sesión de administrador expirada por inactividad.",
    "no_pin_set_setting_up": "⚠️  No hay PIN de administrador configurado. Configurando PIN...",
    "no_pin_configured_access_denied": "⚠️  No hay PIN de administrador configurado. Acceso denegado.",
    "use_admin_settings_to_set_pin": "💡 Usa la configuración de administrador para establecer un PIN primero.",
    "locked_out": "🔒 Acceso de administrador bloqueado debido a demasiados intentos fallidos.",
    "wait_before_retry": "Por favor espera 5 minutos antes de intentar nuevamente.",
    "access_granted": "✅ Acceso de administrador concedido.",
    "incorrect_pin": "❌ PIN incorrecto. {attempts} intentos restantes.",
    "verify_pin_error": "❌ Error verificando PIN:",
    "already_configured": "✅ El PIN de administrador ya está configurado.",
    "optional_setup_title": "\n🔐 Configuración de PIN de Administrador (Opcional)",
    "optional_setup_description": "La protección PIN de administrador añade seguridad para operaciones sensibles como:",
    "setup_prompt": "¿Deseas configurar un PIN de administrador? (s/N): ",
    "skipping_setup": "⏭️  Omitiendo configuración de PIN de administrador. Puedes configurarlo más tarde en ajustes.",
    "setup_prompt_error": "❌ Error durante el prompt de configuración de PIN:",
    "protectedAccess": "Acceso protegido: Se requiere autenticación de administrador para operaciones sensibles.",
    "enterPin": "Ingresa el PIN de administrador: ",
    "accessGranted": "Acceso concedido.",
    "invalidPin": "❌ PIN inválido. Por favor intenta de nuevo.",
    "weak_pin_warning": "⚠️  ADVERTENCIA: Este PIN parece ser débil o común.",
    "weak_pin_suggestion": "💡 Considera usar un PIN más fuerte con dígitos variados.",
    "use_anyway_prompt": "Escribe \"si\" para usar de todos modos, o presiona Enter para elegir un PIN diferente: ",
    "enter_new_pin": "Ingresa nuevo PIN de administrador (4-6 dígitos): ",
    "confirm_pin": "Confirma el PIN de administrador: ",
    "not_set": "No Configurado",
    "pin_display_mask": "####"
  },
  "debug": {
    "title": "🔧 Herramientas de Depuración",
    "separator": "============================================================",
    "mainDebuggerSystemDiagnostics": "1. Diagnósticos del Sistema",
    "_consoleTranslationsCheck": "// 2. Verificación de Traducciones de Consola",
    "_exportMissingKeys": "// 3. Exportar Claves de Traducción Faltantes",
    "_replaceHardcodedConsole": "// 4. Reemplazar Cadenas Codificadas de Consola",
    "_consoleKeyChecker": "// 5. Verificador de Claves de Consola",
    "debugLogs": "2. Registros de Depuración",
    "backToMainMenu": "0. Volver al Menú Principal",
    "selectOption": "Selecciona una herramienta de depuración: ",
    "runningDebugTool": "Ejecutando {displayName}...",
    "debugToolNotFound": "❌ Herramienta de depuración no encontrada: {toolName}",
    "errorRunningDebugTool": "Error ejecutando herramienta de depuración '{displayName}': {error}",
    "recentDebugLogs": "📄 Registros de Depuración Recientes",
    "noDebugLogsFound": "❌ No se encontraron registros de depuración.",
    "debugLogsDirectoryNotFound": "❌ Directorio de registros de depuración no encontrado.",
    "selectLogPrompt": "Selecciona archivo de registro para ver (1-{count}): ",
    "invalidChoiceSelectRange": "Opción inválida. Por favor selecciona del rango disponible.",
    "contentOf": "📄 Contenido de {filename}:",
    "pressEnterToContinue": "Presiona Enter para continuar..."
  },
  "detect_language_mismatches": {
    "tool_title": "🔍 Herramienta de Detección de Discrepancias de Idioma",
    "separator": "=====================================\n",
    "analyzing_file": "📄 Analizando {language}.json...",
    "error_analyzing_file": "❌ Error al analizar {filename}: {errorMessage}",
    "results_title": "📊 RESULTADOS DE DETECCIÓN DE DISCREPANCIAS DE IDIOMA",
    "results_separator": "========================================\n",
    "summary_title": "📋 RESUMEN:",
    "total_files_analyzed": "   Total de archivos analizados: {totalFiles}",
    "files_with_mismatches": "   Archivos con discrepancias: {filesWithMismatches}",
    "total_mismatches_found": "   Total de discrepancias encontradas: {totalMismatches}\n",
    "no_mismatches_found": "✅ ¡No se encontraron discrepancias de idioma! Todas las traducciones parecen estar en sus idiomas correctos.\n",
    "detailed_results_title": "🔍 RESULTADOS DETALLADOS:\n",
    "file_mismatch_header": "📄 {filename} ({language})",
    "mismatches_count": "   Se encontraron {count} discrepancia(s):\n",
    "mismatch_details": "   {index}. Clave: {key}",
    "mismatch_value": "      Valor: \"{value}\"",
    "mismatch_issue": "      Problema: {description}",
    "recommendations_title": "💡 RECOMENDACIONES:\n",
    "recommendation_1": "1. Revisar y traducir todas las entradas marcadas con [TRADUCIR]",
    "recommendation_2": "2. Reemplazar prefijos de idioma (ej., [DE], [FR]) con traducciones apropiadas",
    "recommendation_3": "3. Traducir texto en inglés al idioma objetivo correspondiente",
    "recommendation_4": "4. Usar equivalentes en idioma nativo para todo el texto visible al usuario",
    "recommendation_5": "5. Ejecutar esta herramienta nuevamente después de hacer correcciones para verificar las soluciones\n",
    "detailed_report_saved": "📄 Informe detallado guardado en: {reportPath}\n",
    "error_saving_report": "❌ Error al guardar informe: {errorMessage}\n",
    "auto_fix_mode": "🔧 Modo de auto-corrección {dryRun}",
    "auto_fix_separator": "=====================================\n",
    "fixed_file": "✅ Corregido {filename}",
    "auto_fix_summary_title": "\n📊 Resumen de auto-corrección:",
    "total_fixes_applied": "   Total de correcciones aplicadas: {count}",
    "preview_fixes_title": "\n🔍 Vista previa de correcciones:",
    "fix_details": "   {file}: {key}\n     Anterior: \"{old}\"\n     Nuevo: \"{new}\"\n",
    "more_fixes": "   ... y {count} correcciones más\n",
    "run_with_apply_fixes": "💡 Ejecutar con --apply para aplicar estas correcciones\n",
    "error_general": "❌ Error:",
    "mainDebuggerSystemDiagnostics": "Diagnóstico Principal del Sistema / Depurador",
    "exportMissingKeys": "Exportar Claves Faltantes",
    "replaceHardcodedConsole": "Reemplazar Consola Codificada",
    "consoleKeyChecker": "Verificador de Claves de Consola",
    "debugLogs": "Registros de Depuración",
    "backToMainMenu": "Volver al Menú Principal",
    "invalidChoiceSelectRange": "❌ Opción inválida. Por favor selecciona un número dentro del rango mostrado.",
    "runningDebugTool": "Ejecutando herramienta de depuración: {displayName}",
    "debugToolNotFound": "Herramienta de depuración '{toolName}' no encontrada.",
    "recentDebugLogs": "Registros de Depuración Recientes",
    "noDebugLogsFound": "No se encontraron registros de depuración.",
    "logEntry": "Entrada de registro: {timestamp} - {message}",
    "debugLogsDirectoryNotFound": "Directorio de registros de depuración no encontrado."
  },
  "help": {
    "title": "📊 AYUDA DE GESTIÓN I18NTK\n\n",
    "usage": "Uso: node i18ntk-manage.js [opciones]\n",
    "interactiveMode": "\n💡 Usar: node i18ntk-manage.js --command=<comando> para ejecución directa\n",
    "showHelp": "\n📖 Usar: node i18ntk-manage.js --help para ver comandos disponibles\n",
    "availableCommands": "\n📖 Comandos Disponibles:\n",
    "initProject": "🚀 Inicializar nuevos idiomas",
    "analyzeTranslations": "🔍 Analizar traducciones",
    "validateTranslations": "✅ Validar traducciones",
    "checkUsage": "📊 Verificar uso de claves",
    "initCommand": "  init      - Inicializar nuevos idiomas",
    "analyzeCommand": "  analyze   - Analizar traducciones",
    "validateCommand": "  validate  - Validar traducciones",
    "usageCommand": "  usage     - Verificar uso de claves",
    "sizingCommand": "  sizing    - Analizar dimensionamiento",
    "completeCommand": "  complete  - Completar traducciones (100% cobertura)",
    "summaryCommand": "  summary   - Mostrar estado del proyecto",
    "debugCommand": "  debug     - Depurar problemas de traducción",
    "scannerCommand": "  scanner   - Escanear proyecto para claves i18n",
    "menu": {
      "pressEnterToContinue": "Presiona Enter para continuar...",
      "title": "\n🌐 MENÚ DE GESTIÓN I18NTK\n",
      "description": "Menú interactivo para gestionar internacionalización\n",
      "exit": "\n🚪 Salir"
    },
    "commands": {
      "init": "\n  init      - Inicializar nuevos idiomas",
      "analyze": "  analyze   - Analizar traducciones",
      "validate": "  validate  - Validar traducciones",
      "usage": "  usage     - Verificar uso de claves",
      "sizing": "  sizing    - Analizar dimensionamiento",
      "complete": "  complete  - Completar traducciones (100% cobertura)",
      "summary": "  summary   - Mostrar estado del proyecto",
      "debug": "  debug     - Depurar problemas de traducción"
    },
    "options": {
      "sourceDir": "\n  --source-dir <dir>     Directorio fuente a analizar",
      "output": "  --output <file>        Archivo de salida para el informe",
      "verbose": "  --verbose, -v           Mostrar información detallada",
      "keepReports": "  --keep-reports          Mantener informes existentes",
      "deleteReports": "  --delete-reports        Eliminar informes existentes",
      "help": "  --help, -h              Mostrar esta ayuda"
    },
    "examples": {
      "title": "\nEjemplos:\n",
      "example1": "  node i18ntk-manage.js",
      "example2": "  node i18ntk-manage.js --source-dir ./locales",
      "example3": "  node i18ntk-manage.js --output informe-resumen.txt",
      "example4": "  node i18ntk-manage.js --verbose",
      "example5": "  node i18ntk-manage.js --source-dir ./locales --output informe.json"
    },
    "features": {
      "initProject": "🚀 Inicializar nuevos idiomas",
      "analyzeTranslations": "🔍 Analizar traducciones",
      "validateTranslations": "✅ Validar traducciones",
      "checkUsage": "📊 Verificar uso de claves",
      "completeTranslations": "🎯 Completar traducciones (100% cobertura)",
      "showSizing": "📏 Analizar dimensionamiento",
      "runWorkflow": "🔄 Ejecutar flujo completo",
      "showStatus": "📋 Mostrar estado del proyecto",
      "deleteReports": "🗑️  Eliminar todos los informes",
      "changeLanguage": "🌍 Cambiar idioma de interfaz",
      "settings": "⚙️  Configuración",
      "showHelp": "❓ Ayuda",
      "debugTools": "🔧 Herramientas de depuración"
    },
    "messages": {
      "selectOption": "Selecciona una opción:",
      "invalidOption": "❌ Opción inválida. Por favor intenta nuevamente.",
      "operationCompleted": "✅ ¡Operación completada exitosamente!",
      "pressEnter": "Presiona Enter para continuar...",
      "goodbye": "👋 ¡Adiós!",
      "unknownCommand": "Comando desconocido: {command}",
      "nonInteractive": "⚠️ Modo no interactivo detectado. Menú mostrado solo como referencia."
    },
    "i18n_helper": {
      "translation_file_not_found": "Archivo de traducción no encontrado: {translationFile}",
      "error_loading_translations": "Error cargando traducciones: {errorMessage}",
      "translation_not_found": "Traducción no encontrada para la clave: {key}",
      "translation_key_not_string": "La clave de traducción no se resuelve a una cadena: {key}",
      "error_reading_locales_directory": "Error leyendo directorio de locales: {errorMessage}"
    }
  },
  "init": {
    "initializationTitle": "🚀 Kit de Gestión i18n - Inicialización del Proyecto",
    "sourceDirectoryLabel": "📁 Directorio Fuente: {dir}",
    "createdSourceLanguageDirectory": "✅  Directorio de idioma fuente creado: {dir}",
    "requiredTitle": "Inicialización Requerida",
    "requiredBody": "Este proyecto debe ser inicializado antes de ejecutar este comando.",
    "promptRunNow": "¿Deseas ejecutar la inicialización ahora? (y/N): ",
    "sourceLanguageLabel": "🌍 Idioma Fuente: {language}",
    "detectedI18nFrameworks": "🔍 Marco(s) i18n detectado(s): {frameworks}",
    "existingDirectoriesFound": "📁 Directorios de traducción existentes encontrados:",
    "useExistingDirectoryPrompt": "¿Deseas usar el directorio existente? (y/n)",
    "selectDirectoryPrompt": "Selecciona un directorio ingresando el número (o elige 'Crear nuevo directorio')",
    "enterNewDirectoryName": "Ingresa el nombre para tu nuevo directorio de traducción",
    "createdNewDirectory": "✅ Nuevo directorio creado: {dir}",
    "pinMustBe4Digits": "🔐 PIN debe tener 4 dígitos.",
    "directoryAlreadyExists": "⚠️ El directorio ya existe: {dir}",
    "invalidDirectoryName": "❌ Nombre de directorio inválido proporcionado.",
    "usingExistingDirectory": "Usando directorio existente: {dir}",
    "adminPinSetupOptional": "🔐 Configuración de PIN de administrador opcional (recomendado por seguridad)",
    "adminPinSeparator": "------------------------------",
    "adminPinDescription1": "PIN de administrador: número de 4 dígitos para acceso seguro",
    "adminPinDescription2": "Dejar en blanco para omitir la configuración del PIN",
    "adminPinDescription3": "Si configuras un PIN, será requerido para todas las acciones seguras futuras.",
    "adminPinDescription4": "Encriptación AES-256-GCM utilizada para el almacenamiento seguro del PIN.",
    "adminPinSetupPrompt": "Ingresa el PIN de administrador (4 dígitos) o deja en blanco para omitir:",
    "skippingAdminPinSetup": "Omitiendo configuración del PIN de administrador...",
    "settingUpAdminPin": "🔐 Configurando PIN de administrador...",
    "enterAdminPin": "Ingresa el PIN de administrador:",
    "confirmAdminPin": "Confirma el PIN de administrador:",
    "pinMismatch": "Los PINs no coinciden. Por favor intenta de nuevo.",
    "adminPinSetupSuccess": "🔐 ¡Configuración del PIN de administrador exitosa!",
    "adminPinSetupFailure": "🔐 Falló la configuración del PIN de administrador. Por favor intenta de nuevo.",
    "adminProtectionEnabled": "🔐 Protección de administrador activada. Todas las acciones requieren autenticación PIN.",
    "adminProtectionDisabled": "🔐 Protección de administrador desactivada. Todas las acciones están disponibles sin PIN.",
    "autoDetectedI18nDirectory": "📂 Directorio i18n auto-detectado: {directory}",
    "initializingProject": "⚙️ Inicializando configuración del proyecto...",
    "createdSampleTranslationFile": "✅ Archivo de traducción de ejemplo creado: {file}",
    "languageSelectionTitle": "🌐 Configuración de Idioma",
    "available": "Disponible",
    "defaultLanguages": "📝 Idiomas predeterminados: {languages}",
    "enterLanguageCodes": "🎯 Ingresa códigos de idioma objetivo (separados por comas, ej. de, es, fr, ru):",
    "targetLanguages": "🌍 Idiomas Objetivo",
    "foundSourceFiles": "📄 Encontrados {count} archivos fuente para analizar",
    "processingLanguage": "🔄 Procesando idioma: {language}",
    "fileProcessingResult": "✅ Procesado {file}: {translated}/{total} claves ({percentage}%)",
    "overallProgress": "📊 Progreso General: {translated}/{total} claves procesadas ({percentage}%)",
    "initializationSummaryTitle": "📋 Resumen de Inicialización",
    "languageSummary": "{icon} {name} ({code}): {percentage}% completo",
    "languageFiles": "   📄 Archivos: {count}",
    "languageKeys": "   🔤 Claves: {translated}/{total}",
    "languageMissing": "   ⚠️ Faltantes: {count}",
    "initializationCompletedSuccessfully": "🎉 ¡Inicialización del proyecto completada exitosamente!",
    "nextStepsTitle": "🚀 Siguientes Pasos",
    "nextStep1": "1. Revisa los archivos de traducción generados en tu directorio locales/",
    "nextStep2": "2. Agrega traducciones para cada idioma objetivo",
    "nextStep3": "3. Ejecuta 'npm run i18ntk' nuevamente para validar traducciones",
    "detectedFrameworks": "✅ Framework(s) i18n detectado(s): {frameworks}",
    "setup": {
      "título": "Configuración",
      "pregunta": "Pregunta de configuración",
      "opt_single": "Archivo único",
      "opt_modular": "Modular",
      "opt_existing": "Existente",
      "choice_prompt": "Elige una opción:",
      "opt_confirm": "Confirmar",
      "opt_cancel": "Cancelar",
      "apply_all_prompt": "¿Aplicar esta estructura a todos los idiomas? (s/N): ",
      "per_language_intro": "Has elegido configurar los idiomas individualmente. Estos son los idiomas disponibles:",
      "available_languages": "Idiomas disponibles: {languages}",
      "include_prompt": "Ingresa los códigos de idioma separados por comas (ej. 'de,fr,es'): "
    },
    "warnings": {
      "noPackageJson": "No se encontró package.json. No se puede auto-detectar el framework i18n."
    },
    "errorsPackageJsonRead": "Error al leer package.json: {error}",
    "errorsNoFramework": "No se detectó framework i18n. Por favor instala uno o especifica manualmente.",
    "suggestions": {
      "noFramework": "No se detectó framework i18n. Considera usar uno de los siguientes:",
      "installFramework": "Para instalar un framework, ejecuta: 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 se detectó framework i18n. ¿Deseas continuar sin uno? (s/N): ",
    "detectedI18nFramework": "Framework i18n detectado: {frameworks}",
    "existingDirectoryItem": "  {index}. {location}",
    "usingExistingStructure": "Usando estructura existente: {dir}",
    "creatingSourceDirectory": "Creando directorio fuente: {dir}",
    "creatingSourceLanguageDirectory": "Creando directorio de idioma fuente: {dir}",
    "errors": {
      "errorExecutingCommand": "Error al ejecutar comando: {error}",
      "sourceDirectoryNotFound": "Directorio fuente no encontrado: {dir}",
      "sourceLanguageDirectoryNotFound": "Directorio de idioma fuente no encontrado: {dir}",
      "noJsonFilesInSourceDirectory": "No se encontraron archivos JSON en el directorio fuente: {dir}",
      "invalidFilePathDetected": "Ruta de archivo inválida detectada",
      "initializationFailed": "Falló la inicialización: {error}"
    },
    "processingFile": "Procesando {file} para {language}...",
    "fileAlreadyExistsMerging": "El archivo {file} ya existe. Fusionando nuevas claves.",
    "createdNewFile": "Archivo nuevo creado: {file}",
    "updatedFile": "Archivo actualizado: {file}",
    "skippingExcludedFile": "Omitiendo {file} para {language} ya que está excluido."
  },
  "language": {
    "title": "🌍 Cambiar Idioma",
    "separator": "============================================================",
    "current": "Idioma actual: {language}",
    "available": "Idiomas Disponibles:",
    "languageOption": "{index}. {displayName}{current}",
    "backToMainMenu": "Volver al Menú Principal",
    "prompt": "Selecciona un idioma (0-8):",
    "cancelled": "Cambio de idioma cancelado.",
    "invalid": "Opción inválida. Por favor intenta de nuevo.",
    "changed": "Idioma cambiado a: {language}",
    "pressEnterToContinue": "Presiona Enter para continuar..."
  },
  "maintainLanguagePurity": {
    "workflow_title": "🚀 Flujo de Trabajo de Mantenimiento de Pureza de Idioma",
    "step1_title": "📊 PASO 1: Evaluación Inicial de Pureza de Idioma",
    "step2_title": "\n🔧 PASO 2: Detectar y Auto-Corregir Desajustes de Idioma",
    "step3_title": "\n🌐 PASO 3: Aplicar Traducciones Automáticas",
    "step4_title": "\n✅ PASO 4: Evaluación Final de Pureza de Idioma",
    "workflow_error": "❌ Error en el Flujo de Trabajo: {errorMessage}",
    "running_initial_validation": "Ejecutando validación inicial de pureza de idioma...",
    "initial_assessment_complete": "✅ Evaluación inicial completa: {count} violaciones encontradas\n",
    "initial_assessment_warnings": "⚠️ Evaluación inicial completada con advertencias\n",
    "detecting_fixing_mismatches": "Detectando y corrigiendo desajustes de idioma...",
    "detection_complete_applying_fixes": "Detección completa. Aplicando auto-correcciones...",
    "mismatch_fixes_complete": "✅ Correcciones de desajustes de idioma completas: {count} correcciones aplicadas\n",
    "mismatch_fixes_warnings": "⚠️ Correcciones de desajustes de idioma completadas con advertencias\n",
    "applying_automatic_translations": "Aplicando traducciones automáticas...",
    "translation_preview_complete": "Vista previa de traducción completa. Aplicando traducciones..."
  },
  "menu": {
    "title": "🌐 MENÚ DE GESTIÓN I18NTK",
    "separator": "============================================================",
    "options": {
      "init": "🚀 Inicializar nuevos idiomas",
      "analyze": "🔍 Analizar traducciones",
      "validate": "✅ Validar traducciones",
      "usage": "📊 Verificar uso de claves",
      "complete": "🎯 Completar traducciones (100% cobertura)",
      "sizing": "📏 Analizar dimensionamiento",
      "fix": "🛠️  Corregir traducciones provisionales",
      "scanner": "🔍 Buscar problemas de i18n",
      "workflow": "🔄 Ejecutar flujo completo",
      "status": "📋 Mostrar estado del proyecto",
      "delete": "🗑️  Eliminar todos los informes",
      "language": "🌍 Cambiar idioma de interfaz",
      "settings": "⚙️  Configuración",
      "help": "❓ Ayuda",
      "debug": "🔧 Herramientas de depuración",
      "exit": "🚪 Salir"
    },
    "update": "📦 Actualizar paquete",
    "goodbye": "👋 ¡Adiós!",
    "invalidChoice": "❌ Opción inválida. Por favor seleccione 0-15.",
    "returning": "🔄 Volviendo al menú principal...",
    "invalidOption": "❌ Opción inválida. Por favor intente de nuevo.",
    "nonInteractiveModeWarning": "⚠️ Modo no interactivo detectado. Menú mostrado solo como referencia.",
    "useDirectExecution": "💡 Use: node main/i18ntk-manage.js --command=<comando> para ejecución directa.",
    "useHelpForCommands": "📖 Use: node main/i18ntk-manage.js --help para ver comandos disponibles.",
    "returnToMainMenu": "Presione Enter para volver al Menú Principal.",
    "pressEnterToContinue": "Presione Enter para continuar...",
    "selectOptionPrompt": "Seleccione una opción:",
    "selectDebugToolPrompt": "Seleccione una herramienta de depuración:",
    "selectLogPrompt": "Seleccione un archivo de registro (1-{count}):",
    "autoDetectedI18nDirectory": "📂 Directorio i18n auto-detectado: {directory}",
    "executingCommand": "Ejecutando comando: {command}",
    "unknownCommand": "Comando desconocido: {command}",
    "languageOption": "  {index}. {displayName}{current}",
    "debugTools": {
      "1": "Análisis de archivo de registro",
      "2": "Análisis de uso de claves de traducción",
      "3": "Análisis de completitud de traducciones",
      "4": "Análisis de formato de traducción",
      "5": "Análisis de tipo de traducción",
      "6": "Análisis de estructura de traducción"
    },
    "native_translations": {
      "exact_translation_found": "  ✅ {keyPath}: {value}",
      "no_exact_translation": "  ⚠️ No se encontró traducción exacta para '{keyPath}', claves similares encontradas:",
      "similar_key": "    - {key} ({similarity}% coincidencia)",
      "processing_language_files": "🔄 Procesando {count} archivos de idioma...\n",
      "file_not_found": "⚠️ Archivo no encontrado: {file}",
      "processing_translations": "🌍 Procesando traducciones de {code}...",
      "backup_created": "📋 Respaldo creado: {filename}",
      "error_parsing_json": "❌ Error al analizar {code}.json: {errorMessage}",
      "existing_keys_found": "📊 {code}: Encontradas {count} claves existentes",
      "error_writing_json": "❌ Error al escribir {code}.json: {errorMessage}",
      "translations_replaced": "📊 {code}: {count} traducciones reemplazadas",
      "translation_replacement_complete": "\n✅ ¡Reemplazo de traducciones completado!",
      "total_replacements": "📊 Total de reemplazos: {count}",
      "dry_run_mode": "\n⚠️ MODO PRUEBA - No se modificaron archivos",
      "tool_title": "🌍 Reemplazador de Traducciones Nativas v1.10.1",
      "tool_separator": "======================================\n",
      "dry_run_warning": "⚠️ Ejecutando en modo PRUEBA - no se modificarán archivos\n",
      "error_during_replacement": "❌ Error durante el reemplazo de traducción:"
    }
  },
  "config": {
    "dirFallbackWarning": "⚠️ Directorio {dir} no encontrado. Usando {fallback}.",
    "dirInvalidError": "❌ Directorio inválido: {dir}"
  },
  "operations": {
    "completed": "✅ ¡Operación completada exitosamente!\n",
    "deleteReportsTitle": "🗑️ Eliminar Informes y Registros",
    "scanningForFiles": "🔍 Buscando archivos para eliminar...",
    "noFilesFoundToDelete": "✅ No se encontraron archivos para eliminar.",
    "availableDirectories": "📁 Directorios disponibles:",
    "allDirectories": "Todos los directorios",
    "andMore": "y más...",
    "cancelOption": "Cancelar",
    "cancelReportOption": "Cancelar / Volver al Menú",
    "invalidSelection": "❌ Selección inválida.",
    "foundFilesInSelectedDirectories": "📊 Encontrados {count} archivos en directorios seleccionados:",
    "deletionOptions": "🗑️ Opciones de eliminación:",
    "deleteAllFiles": "Eliminar todos los archivos",
    "keepLast3Files": "Mantener últimos 3 archivos (por fecha)",
    "keepLast5Files": "Mantener últimos 5 archivos (por fecha)",
    "noFilesToDelete": "✅ No hay archivos para eliminar.",
    "filesToDeleteCount": "📋 Archivos a eliminar: {count}",
    "filesToKeepCount": "📋 Archivos a mantener: {count}",
    "confirmDeletion": "⚠️ ¿Está seguro de que desea eliminar estos archivos? (s/N):",
    "deletedFile": "✅ Eliminado: {filename}",
    "failedToDeleteFile": "❌ Error al eliminar {filename}: {error}",
    "cancelled": "❌ Operación cancelada.",
    "init": {
      "title": "🚀 Inicializar Nuevo Idioma"
    },
    "usage": {
      "title": "📊 Verificar Uso de Claves",
      "noUsedKeysHint": "Se encontraron traducciones pero sin uso en el código fuente. Verifique --source-dir y translationPatterns."
    },
    "analyze": {
      "title": "🔍 Analizar Traducciones"
    },
    "validate": {
      "title": "✅ Validar Traducciones"
    },
    "settings": {
      "title": "⚙️  Gestión de Configuración",
      "separator": "============================================================"
    },
    "complete": {
      "deletingOldReport": "🗑️  Eliminando informe de uso antiguo para análisis nuevo",
      "generatingFreshAnalysis": "🔄 Generando nuevo análisis de uso...",
      "couldNotGenerate": "⚠️  No se pudo generar análisis de uso. Usando claves faltantes comunes.",
      "reportNotFound": "⚠️  Informe de uso no encontrado. Generando nuevo análisis...",
      "foundMissingKeys": "🔍 Encontradas {count} claves faltantes del análisis de uso",
      "couldNotParse": "⚠️  No se pudo analizar el informe de uso. Usando claves faltantes comunes.",
      "title": "🎯 COMPLETANDO TRADUCCIONES",
      "separator": "============================================================",
      "sourceDir": "📁 Directorio fuente: {sourceDir}",
      "sourceLanguage": "🔤 Idioma fuente: {sourceLanguage}",
      "dryRunMode": "🧪 MODO PRUEBA - No se modificarán archivos",
      "languages": "🎯 Idiomas objetivo: {languages}",
      "addingMissingKeys": "➕ Agregando claves faltantes a archivos de traducción...",
      "processing": "🔄 Procesando {language}...",
      "addedKeys": "✅ Agregadas {count} claves",
      "changeDetails": "📝 {file}: {key}",
      "noChangesNeeded": "✅ No se necesitan cambios para {language}",
      "summaryTitle": "📊 RESUMEN DE COMPLETADO",
      "totalChanges": "📝 Cambios totales: {totalChanges}",
      "languagesProcessed": "🌐 Idiomas procesados: {languagesProcessed}",
      "missingKeysAdded": "➕ Claves faltantes agregadas: {missingKeysAdded}",
      "nextStepsTitle": "📋 SIGUIENTES PASOS",
      "nextStep1": "1. Ejecutar análisis de uso:",
      "nextStep2": "2. Validar traducciones:",
      "nextStep3": "3. Analizar completitud:",
      "allKeysAvailable": "🎉 ¡Todas las claves de traducción están ahora disponibles!",
      "runWithoutDryRun": "💡 Ejecute sin --dry-run para aplicar cambios",
      "pressEnterToContinue": "Presione Enter para continuar..."
    },
    "updatePackage": {
      "title": "📦 Actualizar Paquete i18n-toolkit",
      "description": "Esto actualizará el paquete i18n-toolkit a la última versión disponible en npm.",
      "command": "Comando a ejecutar",
      "confirm": "¿Está seguro de que desea proceder con la actualización? (s/N): ",
      "updating": "Actualizando paquete... Esto puede tomar un momento.",
      "success": "✅ ¡i18n-toolkit actualizado exitosamente!",
      "error": "❌ Error al actualizar i18n-toolkit",
      "cancelled": "❌ Actualización cancelada."
    }
  },
  "security": {
    "pathValidationFailed": "validación_de_ruta_fallida",
    "invalidInputType": "tipo_de_entrada_inválido",
    "pathTraversalAttempt": "intento_de_atravesamiento_de_ruta",
    "pathValidated": "✅ Ruta validada exitosamente",
    "pathValidationError": "error_de_validación_de_ruta",
    "fileTooLarge": "Seguridad: Archivo demasiado grande: {filePath}",
    "fileReadError": "Seguridad: Error de lectura de archivo: {errorMessage}",
    "contentTooLargeForFile": "Seguridad: Contenido demasiado grande para archivo: {filePath}",
    "fileWriteError": "Seguridad: Error de escritura de archivo: {errorMessage}",
    "jsonStringTooLarge": "Seguridad: Cadena JSON demasiado grande",
    "jsonParseError": "Seguridad: Error al analizar JSON: {errorMessage}",
    "inputContainsDisallowedCharacters": "Seguridad: La entrada contiene caracteres no permitidos",
    "unknownCommandArgument": "Seguridad: Argumento de comando desconocido: {key}",
    "unknown_command_argument": "Seguridad: Argumento de comando desconocido: {key}",
    "unknownConfigKey": "Seguridad: Clave de configuración desconocida: {key}",
    "unknown_config_key": "Seguridad: Clave de configuración desconocida: {key}",
    "securityAlert": "[ALERTA DE SEGURIDAD] {timestamp}: {event}",
    "contentTooLarge": "Seguridad: Contenido demasiado grande para archivo: {validatedPath}",
    "inputDisallowedCharacters": "Seguridad: La entrada contiene caracteres no permitidos",
    "unknownCommandArg": "Argumento de comando desconocido",
    "logMessage": "[SEGURIDAD {level}] {timestamp}: {event}",
    "alertMessage": "[ALERTA DE SEGURIDAD] {timestamp}: {event}",
    "securityWarning": "[ADVERTENCIA DE SEGURIDAD] {timestamp}: {event}",
    "json_parse_error": "Seguridad: Error al analizar JSON: {errorMessage}",
    "file_too_large": "Archivo demasiado grande",
    "file_read_error": "Error de lectura de archivo",
    "content_too_large_for_file": "Contenido demasiado grande para archivo",
    "file_write_error": "Error de escritura de archivo",
    "json_string_too_large": "Cadena JSON demasiado grande",
    "security_alert": "Alerta de seguridad"
  },
  "settings-cli": {
    "settings": {
      "mainMenu": {
        "title": "Menú Principal:",
        "uiSettings": "Configuración de Interfaz",
        "uiSettingsDesc": "Opciones de idioma, tema e interfaz",
        "directorySettings": "Configuración de Directorios",
        "directorySettingsDesc": "Rutas de directorios de origen y salida",
        "scriptDirectorySettings": "Configuración de Directorios de Scripts",
        "scriptDirectorySettingsDesc": "Rutas de directorios para operaciones de scripts individuales",
        "processingSettings": "Configuración de Procesamiento",
        "processingSettingsDesc": "Tamaño de lote, concurrencia y rendimiento",
        "advancedSettings": "Configuración Avanzada",
        "advancedSettingsDesc": "Validación, registro y opciones avanzadas",
        "viewAllSettings": "Ver Todas las Configuraciones",
        "viewAllSettingsDesc": "Mostrar configuración actual",
        "importExport": "Importar/Exportar",
        "importExportDesc": "Respaldar y restaurar configuraciones",
        "resetToDefaults": "Restablecer a Valores Predeterminados",
        "resetToDefaultsDesc": "Restaurar configuración de fábrica",
        "reportBug": "Reportar Error",
        "reportBugDesc": "Enviar reporte de problema en GitHub",
        "saveChanges": "Guardar Cambios",
        "saveChangesDesc": "Guardar configuración actual en archivo",
        "updatePackage": "Actualizar Paquete",
        "updatePackageDesc": "Actualizar el paquete i18n-toolkit vía npm",
        "help": "Ayuda",
        "helpDesc": "Mostrar información de ayuda detallada",
        "quit": "Salir",
        "quitDesc": "Salir de configuración (con aviso de guardado si es necesario)",
        "unsavedChangesWarning": "⚠️  Tienes cambios sin guardar",
        "saveChangesBeforeQuit": "¿Deseas guardar los cambios antes de salir? (s/N): ",
        "selectOption": "Selecciona una opción: ",
        "goodbyeMessage": "¡Gracias por usar el administrador de configuración i18n!"
      },
      "goodbyeMessage": "¡Gracias por usar el administrador de configuración i18n!",
      "relativePathHint": "Usa rutas relativas desde este directorio (ej., ./src/i18n/locales)",
      "currentDirectory": "Directorio actual del proyecto"
    },
    "settings_manager": {
      "error_loading_settings": "❌ Error al cargar configuración:",
      "error_saving_settings": "❌ Error al guardar configuración:",
      "error_setting_value": "❌ Error al establecer valor:",
      "missing_required_setting": "❌ Falta configuración requerida: {prop}",
      "invalid_language": "❌ Idioma inválido: {language}",
      "invalid_source_language": "❌ Idioma fuente inválido: {sourceLanguage}",
      "default_languages_must_be_array": "❌ defaultLanguages debe ser un array",
      "invalid_date_format": "❌ Formato de fecha inválido: {dateFormat}. Formatos válidos: {validFormats}",
      "invalid_time_format": "❌ Formato de hora inválido: {timeFormat}. Formatos válidos: {validFormats}",
      "notifications_types_must_be_object": "❌ notifications.types debe ser un objeto",
      "exclude_files_must_be_array": "❌ excludeFiles debe ser un array",
      "exclude_dirs_must_be_array": "❌ excludeDirs debe ser un array",
      "include_extensions_must_be_array": "❌ includeExtensions debe ser un array",
      "invalid_batch_size": "❌ Tamaño de lote inválido. Debe ser un número positivo",
      "invalid_max_concurrent_files": "❌ Máximo de archivos concurrentes inválido. Debe ser un número positivo",
      "invalid_sizing_threshold": "❌ Umbral de tamaño inválido. Debe ser un número positivo",
      "invalid_timeout": "❌ Tiempo de espera inválido. Debe ser al menos 1000ms",
      "invalid_sizing_format": "❌ Formato de tamaño inválido: {sizingFormat}. Formatos válidos: {validFormats}",
      "error_validating_settings": "❌ Error al validar configuración:",
      "backup_created": "📋 Respaldo creado: {backupPath}",
      "error_creating_backup": "❌ Error al crear respaldo:",
      "language_not_supported": "El idioma '{language}' no está soportado. Disponibles: {availableLanguages}",
      "ui_language_set": "🌍 Idioma de interfaz establecido a: {language}"
    }
  },
  "settings": {
    "title": "⚙️ Administración de Configuración",
    "separator": "============================================================",
    "goodbyeMessage": "¡Gracias por usar el administrador de configuración i18ntk!",
    "relativePathHint": "Usa rutas relativas desde este directorio (ej., ./src/i18n/locales)",
    "currentDirectory": "Directorio actual del proyecto",
    "startingSettings": "Iniciando Configuración:",
    "pin": "PIN:",
    "reportBug": {
      "title": "Reportar Error",
      "description": "Reporta cualquier problema o error que encuentres",
      "guidance": "Para reportar problemas efectivamente:",
      "checkLogs": "1. Revisa los registros de depuración en tu directorio de proyecto",
      "documentIssue": "2. Documenta el problema con pasos para reproducirlo",
      "contactSupport": "3. Contacta a tu administrador de sistema o equipo de soporte",
      "completed": "Guía de reporte de errores mostrada",
      "instructions": "Sigue las instrucciones anteriores para reportar el error."
    },
    "mainMenu": {
      "title": "Menú Principal:",
      "uiSettings": "Configuración de Interfaz",
      "uiSettingsDesc": "Opciones de idioma, tema e interfaz",
      "directorySettings": "Configuración de Directorios",
      "directorySettingsDesc": "Rutas de directorios de origen y salida",
      "processingSettings": "Configuración de Procesamiento",
      "processingSettingsDesc": "Tamaño de lote, concurrencia y rendimiento",
      "advancedSettings": "Configuración Avanzada",
      "advancedSettingsDesc": "Validación, registro y opciones avanzadas",
      "viewAllSettings": "Ver Todas las Configuraciones",
      "viewAllSettingsDesc": "Mostrar configuración actual",
      "importExport": "Importar/Exportar",
      "updatePackage": "Actualizar Paquete",
      "updatePackageDesc": "Actualizar el paquete i18n-toolkit vía npm",
      "importExportDesc": "Respaldar y restaurar configuraciones",
      "resetToDefaults": "Restablecer a Valores Predeterminados",
      "resetToDefaultsDesc": "Restaurar configuración de fábrica",
      "reportBug": "Reportar Error",
      "reportBugDesc": "Enviar reporte de problema en GitHub",
      "saveChanges": "Guardar Cambios",
      "saveChangesDesc": "Guardar configuración actual en archivo",
      "help": "Ayuda",
      "helpDesc": "Mostrar información de ayuda detallada",
      "quit": "Salir",
      "quitDesc": "Salir de configuración (con aviso de guardado si es necesario)",
      "unsavedChangesWarning": "⚠️  Tienes cambios sin guardar",
      "saveChangesBeforeQuit": "¿Deseas guardar los cambios antes de salir? (s/N): ",
      "selectOption": "Selecciona una opción: ",
      "goodbyeMessage": "¡Gracias por usar el administrador de configuración i18n!",
      "selectSettingPrompt": "Selecciona una configuración para editar (o 'b' para volver): ",
      "enterNewValue": "Ingresa nuevo valor: ",
      "updatedSuccessfully": "¡{setting} actualizado exitosamente!",
      "scriptDirectorySettings": "Configuración de Directorios de Scripts",
      "scriptDirectoryDesc": "Especifica directorios personalizados para cada script",
      "scriptDirectorySettingsDesc": "Puedes establecer directorios personalizados para cada script. Si no se establece, se usará la configuración global.",
      "currentDirectory": "Directorio actual del proyecto",
      "securitySettings": "Configuración de Seguridad",
      "securitySettingsDesc": "PIN de administrador y otras opciones de seguridad",
      "backupSettings": "Configuración de Respaldo",
      "backupSettingsDesc": "Configuración de respaldo y restauración"
    },
    "updatePackage": {
      "title": "Actualizar Paquete",
      "description": "Actualizar el paquete i18n-toolkit vía npm",
      "command": "npm update i18ntk -g",
      "success": "Actualización completada exitosamente.",
      "failed": "Actualización fallida.",
      "prompt": "¿Deseas actualizar el paquete ahora? (s/N): ",
      "promptDesc": "Nota: Esto actualizará el paquete i18ntk a la última versión.",
      "confirm": "s",
      "cancelled": "Actualización cancelada."
    },
    "admin": {
      "selectOption": "Selecciona opción: ",
      "updateSuccess": "¡PIN de administrador actualizado exitosamente!",
      "updateFailed": "Error al actualizar PIN de administrador.",
      "protectionRemoved": "Protección de PIN de administrador eliminada.",
      "configSuccess": "¡PIN de administrador configurado exitosamente!",
      "configFailed": "Error al configurar PIN de administrador.",
      "setupPinPrompt": "¿Deseas configurar un PIN de administrador? (s/N): ",
      "pinUpdatedSuccess": "¡PIN de administrador actualizado exitosamente!",
      "pinUpdatedFailed": "Error al actualizar PIN de administrador.",
      "pinRemoved": "Protección de PIN de administrador eliminada.",
      "pinConfiguredSuccess": "¡PIN de administrador configurado exitosamente!",
      "pinConfiguredFailed": "Error al configurar PIN de administrador.",
      "accessDenied": "❌ Acceso denegado. Volviendo al menú.",
      "setupPin": "🔐 Configurando PIN de administrador...",
      "setupFailed": "❌ Error al configurar PIN de administrador. Configuración no cambiada.",
      "pinConfigured": "📌 El PIN de administrador está actualmente configurado.",
      "options": "Opciones:",
      "changePin": "1) Cambiar PIN existente",
      "removePin": "2) Eliminar protección de PIN",
      "cancel": "3) Cancelar",
      "verifyCurrentPin": "\n🔐 Verifica el PIN actual primero:",
      "settingNewPin": "\n🔄 Configurando nuevo PIN...",
      "verifyToRemove": "\n🔐 Verifica el PIN actual para eliminar protección:",
      "noPinConfigured": "🔓 No hay PIN de administrador configurado actualmente.",
      "pinBenefits": "Configurar PIN de administrador agregará seguridad para:",
      "benefitSecurity": "• Cambiar configuraciones de seguridad",
      "benefitAdvanced": "• Modificar configuraciones avanzadas",
      "benefitDebug": "• Acceder a herramientas de depuración",
      "benefitReset": "• Restablecer configuraciones",
      "setupCancelled": "⏭️  Configuración de PIN de administrador cancelada.",
      "operationCancelled": "❌ Operación cancelada.",
      "startingSettings": "🎛️  Iniciando CLI de Configuración...",
      "authRequired": "🔒 Autenticación de administrador requerida para: {label}",
      "pinSetupTitle": "Configuración de PIN de Administrador",
      "browserOpenFailed": "No se pudo abrir el navegador automáticamente.",
      "manualVisit": "Por favor visita manualmente: {url}",
      "browserOpened": "✅ ¡Navegador abierto exitosamente!"
    },
    "importExport": {
      "title": "Importar/Exportar Configuración",
      "export": "Exportar Configuración",
      "import": "Importar Configuración",
      "backup": "Crear Respaldo",
      "enterFilename": "Ingresa nombre de archivo (o presiona Enter para predeterminado): ",
      "exportSuccess": "Configuración exportada a {file}",
      "exportFailed": "Error al exportar configuración: {error}",
      "importFilename": "Ingresa nombre de archivo para importar: ",
      "fileNotFound": "Archivo no encontrado.",
      "invalidFormat": "Formato de archivo de configuración inválido.",
      "confirmImport": "Esto reemplazará todas las configuraciones actuales. Continuar? (y/N): ",
      "importSuccess": "Configuración importada exitosamente.",
      "importFailed": "Error al importar configuración: {error}",
      "backupSuccess": "Respaldo creado: {file}",
      "backupFailed": "Error al crear respaldo: {error}"
    },
    "selectOption": "Selecciona opción: ",
    "resetToDefaultsTitle": "Restablecer Configuraciones a Valores Predeterminados",
    "resetWarning1": "⚠️  Este restablecimiento restablecerá todas las configuraciones a sus valores predeterminados.",
    "resetWarning2": "Esta acción no se puede deshacer.",
    "resetConfirm": "¿Estás seguro de que deseas continuar? (y/N): ",
    "resetSuccess": "Configuraciones restablecidas a valores predeterminados exitosamente.",
    "resetFailed": "Error al restablecer configuraciones: {error}",
    "resetDone": "Configuraciones restablecidas a valores predeterminados exitosamente.",
    "resetScriptDirsDone": "Directorios de scripts restablecidos a valores predeterminados exitosamente.",
    "saveSuccess": "Configuraciones guardadas exitosamente.",
    "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": "Ayuda de Configuración",
      "navigationTitle": "Navegación",
      "navigation1": "1. Configuración General - Configura idioma de la interfaz, tema y preferencias básicas",
      "navigation2": "2. Configuración de Directorios - Establece directorios de origen y salida para archivos de traducción",
      "navigation3": "3. Configuración de Procesamiento - Configura tamaño de lote, concurrencia y opciones de rendimiento",
      "navigation4": "4. Configuración Avanzada - Acceso a validación, registro y opciones de configuración experta",
      "categoriesTitle": "Categorías de Configuración",
      "categoryUI": "• Configuración de Interfaz: Idioma de la interfaz, tema de color y preferencias de visualización",
      "categoryDirectory": "• Configuración de Directorios: Ubicación de archivos fuente y directorios de reporte de salida",
      "categoryProcessing": "• Configuración de Procesamiento: Procesamiento por lotes, límites de archivos y ajuste de rendimiento",
      "categoryAdvanced": "• Configuración Avanzada: Modo de depuración, registro de auditoría y opciones de seguridad",
      "envVarsTitle": "Variables de Entorno",
      "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": "Ejemplos de Uso de la CLI",
      "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": "Usa números para seleccionar opciones, 'b' para regresar",
      "editing": "Ingresa nuevos valores cuando se te solicite, o presiona Enter para mantener el actual",
      "saving": "Usa 's' para guardar cambios antes de salir",
      "reset": "Usa la opción 7 para restablecer todas las configuraciones a valores predeterminados"
    },
    "categories": {
      "uiSettings": "  Configuración de Interfaz",
      "directorySettings": "  Configuración de Directorios",
      "processingSettings": "  Configuración de Procesamiento",
      "advancedSettings": "  Configuración Avanzada",
      "scriptDirectorySettings": "  Configuración de Directorios de Script",
      "securitySettings": "  Configuración de Seguridad"
    },
    "security": {
      "title": "  🔐 Configuración de Seguridad",
      "description": "  Configure protección de PIN de administrador y opciones de seguridad",
      "currentPin": "PIN Actual:",
      "pinConfigured": "  ✅ Configurado",
      "pinNotConfigured": "  ❌ No configurado",
      "pinDisplay": "  PIN Mostrado:",
      "menu": {
        "enableDisable": "  1) Habilitar/Deshabilitar Protección de PIN de Administrador",
        "setupChange": "  2) Configurar/Cambiar PIN de Administrador",
        "sessionTimeout": "  3) Tiempo de Sesión",
        "maxAttempts": "  4) Máximo Intentos Fallidos",
        "lockoutDuration": "  5) Duración de Bloqueo",
        "back": "  b) Volver al Menú Principal"
      },
      "prompts": {
        "enablePin": "  ¿Habilitar protección de PIN de administrador? (y/N): ",
        "disablePin": "  ¿Deshabilitar protección de PIN de administrador? (y/N): ",
        "enterTimeout": "  Ingresa tiempo de sesión (en minutos): ",
        "enterMaxAttempts": "  Ingresa máximo intentos fallidos: ",
        "enterLockoutDuration": "  Ingresa duración de bloqueo (en minutos): "
      },
      "messages": {
        "pinEnabled": "  Protección de PIN de administrador habilitada",
        "pinDisabled": "  Protección de PIN de administrador deshabilitada",
        "timeoutUpdated": "  Tiempo de sesión actualizado a {minutes} minutos",
        "maxAttemptsUpdated": "  Máximo intentos fallidos actualizado a {attempts}",
        "lockoutDurationUpdated": "  Duración de bloqueo actualizada a {minutes} minutos"
      }
    },
    "fields": {
      "backup.enabled": {
        "label": "  Habilitar Copia de Seguridad",
        "description": "  Habilitar copia de seguridad automática de configuraciones",
        "help": "  Habilitar/deshabilitar función de copia de seguridad"
      },
      "backup.singleFileMode": {
        "label": "  Modo de Archivo Único",
        "description": " ar archivo único para copias de seguridad",
        "help": " ardar configuraciones en un archivo único"
      },
      "backup.singleBackupFile": {
        "label": " ta de Archivo de Copia de Seguridad",
        "description": "  Ruta al archivo de copia de seguridad",
        "help": " ta al archivo de copia de seguridad único"
      },
      "backup.retentionDays": {
        "label": "  Período de Retención",
        "description": "  Días para mantener archivos de copia de seguridad",
        "help": "  Número de días para retener archivos de copia de seguridad antiguos"
      },
      "backup.maxBackups": {
        "label": "  Máximo de Copias de Seguridad",
        "description": "  Máximo número de archivos de copia de seguridad a mantener",
        "help": "  Máximo número de archivos de copia de seguridad a mantener"
      },
      "backup.confirm": {
        "label": "  Confirmar Copia de Seguridad",
        "description": "  Requerir confirmación para operaciones de copia de seguridad",
        "help": "  Confirmar operación de copia de seguridad"
      },
      "i18nDir": {
        "label": "  Directorio de Traducciones",
        "description": "  Directorio que contiene archivos de traducción",
        "current": "  Actual: {value}",
        "help": "  Ruta al directorio con archivos de traducción"
      },
      "projectRoot": {
        "label": "  Directorio de Proyecto",
        "description": "  Directorio raíz del proyecto",
        "current": "  Actual: {value}",
        "help": "  Ruta al directorio raíz del proyecto"
      },
      "checkUsage": {
        "usage_analysis_failed": "  Análisis de uso fallido",
        "usage_analysis_success": " álisis de uso exitoso",
        "usage_analysis_complete": " álisis de uso completado",
        "usage_analysis_in_progress": " álisis de uso en curso",
        "usage_analysis_started": "  Análisis de uso iniciado",
        "usage_analysis_skipped": "  Análisis de uso omitido"
      },
      "language": {
        "label": "  Idioma de Interfaz",
        "description": "  Idioma para la interfaz de usuario",
        "current": "  Actual: {value}",
        "help": "  Selecciona tu idioma preferido para la interfaz"
      },
      "scriptDirectories": {
        "analyzeLabel": " alizar Directorios de Script",
        "analyzeHelp": "  Analizar directorios de script para problemas",
        "completeLabel": "  Completar Configuración de Directorios",
        "initLabel": "  Inicializar Directorios de Script",
        "manageLabel": "  Gestionar Directorios de Script",
        "sizingLabel": "  Tamaño de Directorios de Script",
        "summaryLabel": "  Resumen de Directorios de Script",
        "usageLabel": "  Uso de Directorios de Script",
        "validateLabel": "  Validar Directorios de Script"
      },
      "theme": {
        "label": " ma de Color",
        "description": " eferencia de tema de interfaz",
        "current": " tual: {value}",
        "help": "  Elige entre temas claros y oscuros"
      },
      "dateFormat": {
        "label": " rmato de Fecha",
        "description": " rmato para mostrar fechas",
        "current": "  Actual: {value}",
        "help": "  Elige cómo se muestran las fechas en los informes"
      },
      "notifications": {
        "enabled": {
          "label": "  Habilitar Notificaciones",
          "description": "  Mostrar notificaciones en escritorio",
          "current": "  Actual: {value}",
          "help": "  Habilitar notificaciones en escritorio para operaciones completadas"
        }
      },
      "sourceDir": {
        "label": "  Directorio de Código Fuente",
        "description": "  Directorio que contiene archivos de código fuente",
        "current": "  Actual: {value}",
        "help": "  Ruta al directorio con archivos de código fuente"
      },
      "sourceLanguage": {
        "label": "  Idioma de Código Fuente",
        "description": "  Idioma principal para traducciones",
        "current": "  Actual: {value}",
        "help": "  El idioma principal utilizado como fuente para traducciones"
      },
      "outputDir": {
        "label": "  Directorio de Salida",
        "description": "  Directorio para informes generados",
        "current": "  Actual: {value}",
        "help": "  Donde se guardarán los informes y archivos procesados"
      },
      "batchSize": {
        "label": "  Tamaño de Lote",
        "description": " mero de elementos procesados por lote",
        "current": "  Actual: {value}",
        "help": "  Número de archivos a procesar en cada lote"
      },
      "maxConcurrentFiles": {
        "label": "  Máximo de Archivos Concurrentes",
        "description": "  Máximo número de archivos procesados simultáneamente",
        "current": "  Actual: {value}",
        "help": "  Máximo número de archivos a procesar simultáneamente"
      },
      "sizingThreshold": {
        "label": " bral de Tamaño (%)",
        "description": " bral para advertencias de variación de tamaño",
        "current": "  Actual: {value}%",
        "help": " bral porcentual para detectar desviaciones de tamaño"
      },
      "strictMode": {
        "label": " do de Validación Estricta",
        "description": " bilitar modo de validación estricta",
        "current": " tual: {value}",
        "help": "  Habilitar validación estricta para archivos de traducción"
      },
      "enableAuditLog": {
        "label": "  Habilitar Registro de Auditoría",
        "description": " rastrear todos los cambios en traducciones",
        "current": "  Actual: {value}",
        "help": "  Registrar todos los cambios realizados en archivos de traducción"
      },
      "backupBeforeChanges": {
        "label": "  Habilitar Copia de Seguridad",
        "description": "  Crear copias de seguridad antes de modificaciones",
        "current": "  Actual: {value}",
        "help": "  Crear copias de seguridad automáticas antes de realizar cambios"
      },
      "advanced_maxConcurrentFiles": {
        "label": "  Máximo de Archivos Concurrentes",
        "description": "  Máximo número de archivos procesados simultáneamente",
        "current": "  Actual: {value}",
        "help": "  Máximo número de archivos a procesar simultáneamente"
      },
      "advanced_strictMode": {
        "label": "  Modo de Validación Estricta",
        "description": " bilitar modo de validación estricta",
        "current": "  Actual: {value}",
        "help": " bilitar validación estricta para archivos de traducción"
      },
      "adminPinEnabled": {
        "label": "  Protección con PIN de Administrador",
        "description": "  Habilitar autenticación con PIN para configuraciones sensibles",
        "current": "  Actual: {value}",
        "help": "  Requiere PIN de administrador para cambiar configuraciones de seguridad y avanzadas"
      },
      "sessionTimeout": {
        "label": "  Tiempo de Expiración de Sesión",
        "description": " empo de expiración de sesión en minutos",
        "current": " tual: {value} minutos",
        "help": "  Duración de tiempo de sesión antes de requerir re-autenticación"
      },
      "maxFailedAttempts": {
        "label": "  Máximo de Intentos Fallidos",
        "description": "  Máximo número de intentos fallidos antes de bloqueo",
        "current": "  Actual: {value} intentos",
        "help": "  Número de intentos fallidos permitidos antes de bloqueo temporal"
      },
      "lockoutDuration": {
        "label": "  Duración de Bloqueo",
        "description": "  Duración de bloqueo después de intentos fallidos",
        "current": "  Actual: {value} minutos",
        "help": "  Duración de tiempo de bloqueo después de intentos fallidos"
      },
      "scriptDirectories_analyze": {
        "label": "  Directorios de Análisis",
        "description": "  Directorios personalizados para el script de análisis",
        "current": "  Actual: {value}",
        "help": "  Especificar directorio personalizado para el script de análisis. Dejar en blanco para usar la configuración global."
      },
      "scriptDirectories_complete": {
        "label": "  Directorios de Completado",
        "description": "  Directorios personalizados para el script de completado",
        "current": "  Actual: {value}",
        "help": "  Especificar directorio personalizado para el script de completado. Dejar en blanco para usar la configuración global."
      },
      "scriptDirectories_init": {
        "label": "  Directorios de Inicialización",
        "description": "  Directorios personalizados para el script de inicialización",
        "current": "  Actual: {value}",
        "help": "  Especificar directorio personalizado para el script de inicialización. Dejar en blanco para usar la configuración global."
      },
      "scriptDirectories_manage": {
        "label": "  Directorios de Gestión",
        "description": "  Directorios personalizados para el script de gestión",
        "current": "  Actual: {value}",
        "help": "  Especificar directorio personalizado para el script de gestión. Dejar en blanco para usar la configuración global."
      },
      "scriptDirectories_sizing": {
        "label": "  Directorios de Tamaño",
        "description": "  Directorios personalizados para el script de tamaño",
        "current": "  Actual: {value}",
        "help": "  Especificar directorio personalizado para el script de tamaño. Dejar en blanco para usar la configuración global."
      },
      "scriptDirectories_summary": {
        "label": "  Directorios de Resumen",
        "description": "  Directorios personalizados para el script de resumen",
        "current": "  Actual: {value}",
        "help": "  Especificar directorio personalizado para el script de resumen. Dejar en blanco para usar la configuración global."
      },
      "scriptDirectories_usage": {
        "label": "  Directorios de Uso",
        "description": "  Directorios personalizados para el script de uso",
        "current": "  Actual: {value}",
        "help": "  Especificar directorio personalizado para el script de uso. Dejar en blanco para usar la configuración global."
      },
      "scriptDirectories_validate": {
        "label": "  Directorios de Validación",
        "description": "  Directorios personalizados para el script de validación",
        "current": "  Actual: {value}",
        "help": "  Especificar directorio personalizado para el script de validación. Dejar en blanco para usar la configuración global."
      },
      "security_adminPinEnabled": {
        "label": "  Protección con PIN de Administrador",
        "description": "  Habilitar autenticación con PIN para configuraciones sensibles",
        "current": "  Actual: {value}",
        "help": "  Requiere PIN de administrador para cambiar configuraciones de seguridad y avanzadas"
      },
      "fields": {
        "adminPinEnabled": {
          "label": "  Protección con PIN de Administrador",
          "description": " bilitar autenticación con PIN para configuraciones sensibles",
          "help": "  Requiere PIN de administrador para cambiar configuraciones de seguridad y avanzadas"
        }
      },
      "security_pinProtection_enabled": {
        "label": " otección con PIN",
        "description": "  Habilitar protección con PIN para configuraciones sensibles",
        "current": " tual: {value}",
        "help": "  Requiere PIN para cambiar configuraciones de seguridad y avanzadas"
      },
      "pinProtection_configure": {
        "label": "  Configurar Scripts Protegidos con PIN",
        "description": "  Configurar qué scripts requieren protección con PIN",
        "help": "  Seleccionar scripts individuales que requieren autenticación con PIN"
      },
      "pinProtection_debugMenu": {
        "label": "  Menú de Herramientas de Depuración",
        "description": "  Requiere PIN para acceder al menú de herramientas de depuración",
        "current": "  Actual: {value}",
        "help": "  Habilitar protección con PIN para acceder a las herramientas de depuración"
      },
      "pinProtection_deleteReports": {
        "label": "  Eliminar Reportes",
        "description": "  Requiere PIN para eliminar reportes",
        "current": "  Actual: {value}",
        "help": "  Habilitar protección con PIN para eliminar reportes"
      },
      "pinProtection_summaryReports": {
        "label": "  Resumen de Reportes",
        "description": "  Requiere PIN para generar resúmenes de reportes",
        "current": " tual: {value}",
        "help": " bilitar protección con PIN para generar resúmenes de reportes"
      },
      "pinProtection_settingsMenu": {
        "label": "  Menú de Configuración",
        "description": " quiere PIN para acceder al menú de configuración",
        "current": "  Actual: {value}",
        "help": "  Habilitar protección con PIN para acceder al menú de configuración"
      },
      "pinProtection_initScript": {
        "label": "  Inicializar Script",
        "description": "  Requiere PIN para inicializar el script",
        "current": "  Actual: {value}",
        "help": "  Habilitar protección con PIN para inicializar el script"
      },
      "pinProtection_resetDefaults": {
        "label": "  Restablecer Protección con PIN",
        "description": "  Restablecer todas las configuraciones de protección con PIN a valores predeterminados",
        "help": "  Restablecer todas las configuraciones individuales de protección con PIN a valores predeterminados"
      },
      "removeUiLanguages": {
        "label": "  Eliminar Idiomas de la Interfaz",
        "description": "  Eliminar idiomas de la interfaz no instalados",
        "help": "  Eliminar idiomas de la interfaz no instalados en el sistema"
      },
      "pinProtection_${helperKey}": {
        "help": "  Ayuda"
      }
    },
    "actions": {
      "editSetting": "  Editar {setting}: ",
      "settingUpdated": "  ✅ {setting} actualizado con éxito!",
      "invalidValue": "  ❌ Valor inválido. Por favor, inténtalo de nuevo.",
      "pressEnter": "  Presiona Enter para continuar...",
      "backToMenu": "  Volver al menú principal",
      "saveSuccess": "  ✅ Configuraciones guardadas con éxito!",
      "saveFailed": "  ❌ Error al guardar las configuraciones: {error}",
      "resetConfirm": "  ¿Estás seguro de que quieres restablecer todas las configuraciones a valores predeterminados? (y/N): ",
      "resetSuccess": "  ✅ Configuraciones restablecidas a valores predeterminados con éxito!",
      "importSuccess": "  ✅ Configuraciones importadas con éxito!",
      "exportSuccess": "  ✅ Configuraciones exportadas con éxito!",
      "fileNotFound": "  ❌ Archivo no encontrado: {path}",
      "invalidFormat": "  ❌ Formato de archivo de configuraciones inválido",
      "pinProtectionUpdated": "  ✅ Protección con PIN para {script} actualizada con éxito!",
      "pinProtectionReset": "  ✅ Todas las configuraciones de protección con PIN restablecidas a valores predeterminados!",
      "pinProtectionConfigure": "  Configurar protección con PIN para scripts individuales",
      "pinProtectionSelectScript": "  Seleccionar un script para alternar la protección con PIN:",
      "pinProtectionCurrentStatus": "  Estado actual: {status}",
      "pinProtectionEnabled": " bilitado",
      "pinProtectionDisabled": " shabilitado",
      "pinProtectionToggle": " ternar Protección con PIN",
      "pinProtectionResetAll": "  Restablecer Todo a Valores Predeterminados",
      "pinProtectionBack": " lver a Configuraciones de Seguridad"
    },
    "themes": {
      "light": "  Claro",
      "dark": " curo",
      "system": "  Sistema"
    },
    "languages": {
      "en": "  Inglés",
      "de": "  Alemán",
      "es": "  Español",
      "fr": "  Francés",
      "ru": "  Ruso",
      "ja": "  Japonés",
      "zh": "  Chino"
    },
    "viewAll": {
      "title": "  Ver Todas las Configuraciones"
    },
    "current": "  Actual",
    "back": "  Volver al menú principal",
    "selectSettingPrompt": "  Seleccionar configuración para editar (o b para volver, r para restablecer): ",
    "invalidOption": "  Opción inválida.",
    "editing": "  Editando",
    "enterNewValue": "  Ingresar nuevo valor (o presionar Enter para mantener el actual, tipo 'default' para usar el valor predeterminado del sistema):",
    "validOptions": "  Opciones válidas",
    "updatedSuccessfully": "  actualizado con éxito!",
    "noHelp": "  No ayuda disponible para esta configuración",
    "resetScriptDirectories": "  Restablecer a Valores Predeterminados",
    "resetScriptDirectoriesTitle": "  Restablecer Directorios de Script a Valores Predeterminados",
    "resetScriptDirectoriesWarning1": "  Esto restablecerá todas las configuraciones de directorios de script a sus valores predeterminados del sistema.",
    "resetScriptDirectoriesWarning2": "  borrarán todos los caminos de directorio personalizados. Esta acción no se puede deshacer.",
    "resetScriptDirectoriesConfirm": " stás seguro de que quieres restablecer todos los directorios de script a sus valores predeterminados? (y/N): ",
    "backup": {
      "title": "  Respaldar Configuraciones",
      "description": "  Respaldar configuraciones actuales a un archivo",
      "confirm": "  ¿Estás seguro de que quieres respaldar las configuraciones actuales? (y/N): ",
      "success": "  ✅ Configuraciones respaldadas con éxito a {backupFile}",
      "failed": "  ❌ Error al respaldar las configuraciones: {error}",
      "enabled": "  Habilitar Respaldos",
      "enabledHelp": "  Habilitar/deshabilitar la característica de respaldo",
      "singleFileMode": "  Modo de Archivo Único",
      "singleFileModeHelp": " spaldar configuraciones en un solo archivo",
      "singleBackupFile": "  Archivo de Respaldo Único",
      "singleBackupFileHelp": "  Ruta al archivo de respaldo único",
      "retentionDays": "  Días de Retención",
      "retentionDaysHelp": "  Número de días para retener archivos de respaldo antiguos",
      "maxBackups": "  Max Backups",
      "maxBackupsHelp": " mero máximo de archivos de respaldo a mantener",
      "confirmHelp": "  Confirmar operación de respaldo",
      "confirmYes": "  Sí",
      "confirmNo": "  No",
      "backupFile": "  Archivo de Respaldo",
      "backupFileHelp": "  Ruta al archivo de respaldo"
    }
  },
  "summary": {
    "separator": "  ============================================================",
    "configurationTitle": "  🔧 Configuración:",
    "sourceLanguage": "     Idioma Fuente: {sourceLanguage}",
    "supportedExtensions": "     Extensiones Soportadas: {extensions}",
    "excludedFiles": "     Archivos Excluidos: {files}",
    "reportContent": "  \n{report}",
    "fatalError": " Error Fatal: {error}",
    "helpTitle": "  Generador de Reporte Resumen I18NTK",
    "helpDescription": "  Analiza la estructura de carpetas i18n y genera un informe resumen detallado que incluye estadísticas clave, análisis de estructura de archivos y comprobaciones de validación.",
    "helpUsage": "  Uso: node i18ntk-summary.js [opciones]",
    "helpOptions": "    --source-dir <dir>     Directorio fuente para analizar",
    "helpSourceDir": "    --source-dir <dir>     Directorio fuente para analizar",
    "helpOutput": "    --output <file>        Archivo de salida para el informe",
    "helpVerbose": "    --verbose, -v           Mostrar información detallada",
    "helpKeepReports": "    --keep-reports          Mantener informes existentes",
    "helpDeleteReports": "    --delete-reports        Eliminar informes existentes",
    "helpHelp": "    --help, -h              Mostrar esta ayuda",
    "helpExamples": "  \n Ejemplos:",
    "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": "  ⚠️  No se pudo leer el archivo: {filePath}",
    "couldNotParseJSFile": "  ⚠️  No se pudo analizar el archivo JS/TS: {filePath}",
    "errorReadingFile": "  ⚠️  Error al leer el archivo {filePath}: {error}",
    "analyzingFolder": "  \n🔍 Analizando estructura de carpetas...\n",
    "noLanguageDirectoriesFound": "  \n❌ No se encontraron directorios de idiomas en el directorio fuente especificado.\n",
    "foundLanguages": "  \n✅ Encontrados {count} idiomas: {languages}\n",
    "referenceLanguageFiles": "  \n📁 Idioma de referencia '{language}' tiene {count} archivos\n",
    "analyzingLanguage": "  \n🌍 Analizando idioma: {language}",
    "keysInFiles": "  \n📊 Encontradas {keys} claves en {files} archivos\n",
    "checkingInconsistentKeys": "  \n🔍 Buscando claves inconsistentes entre idiomas...",
    "generatingSummaryReport": " 📝 Generando informe resumen...\n",
    "reportTitle": " 📊 I18NTK RESUMEN DE INFORMACIÓN\n",
    "generated": " Generado: {timestamp}\n",
    "sourceDirectory": "  \nDirectorio fuente: {dir}\n",
    "overview": " Resumen General",
    "languagesCount": " iomas: {count}",
    "totalFiles": " tal archivos: {count}",
    "totalKeys": "  Total claves: {count}",
    "avgKeysPerLanguage": " s promedio por idioma: {count}",
    "languagesBreakdown": "  \n🌍 Desglose de Idiomas",
    "languageBreakdown": " anguage}: {files} archivos, {keys} claves",
    "fileStructure": " 📁 Estructura de Archivos",
    "fileKeys": "  {file}: {keys} claves",
    "missingInLanguages": "  ⚠️ Faltan en: {languages}",
    "issuesFound": " ❌ PROBLEMAS ENCONTRADOS",
    "missingFiles": "  Archivos Faltantes:",
    "emptyFiles": "  📄 Archivos Vacíos:",
    "malformedFiles": "  ⚠️ Archivos Malformados:",
    "duplicateKeys": "  🔑 Claves Duplicadas:",
    "inconsistentKeys": "  🔍 Claves Inconsistentes:",
    "missingKeys": "     Faltantes: {keys}{more}",
    "extraKeys": "     Extras: {keys}{more}",
    "noIssuesFound": "  \n✅ NO PROBLEMAS ENCONTRADOS",
    "allFilesConsistent": "  Todos los archivos de traducción son consistentes entre idiomas.",
    "recommendations": "  \n💡 RECOMENDACIONES",
    "createMissingFiles": "  • Crear archivos de traducción faltantes",
    "addContentToEmptyFiles": "  • Añadir contenido a archivos vacíos",
    "fixMalformedFiles": "  • Corregir archivos JSON/JS malformados",
    "removeDuplicateKeys": "  • Eliminar claves duplicadas de archivos",
    "synchronizeKeys": "  • Sincronizar claves entre todos los idiomas",
    "splitLargeFiles": "  • Considerar dividir archivos grandes en espacios de nombres más pequeños",
    "addMoreLanguages": "  • Considerar agregar más idiomas",
    "nextSteps": "  🎯 PASOS SIGUIENTES",
    "nextStep1": "  1. Corregir cualquier problema identificado anteriormente",
    "nextStep2": "  2. Ejecutar validación para garantizar consistencia",
    "nextStep3": "  3. Considerar usar i18ntk-validate para validación detallada",
    "nextStep4": "  4. Monitoreo regular recomendado",
    "couldNotFindI18nDirectory": "  ❌ No se pudo encontrar el directorio i18n. Por favor, especifique --source-dir.",
    "sourceDirectoryDoesNotExist": "  ❌ El directorio fuente no existe: {dir}",
    "i18nSummaryReportGenerator": "  📊 Generador de Informe Resumen I18N",
    "analysisComplete": "  \n✅ Análisis Completado",
    "analyzedLanguages": "  \n📊 Idiomas Analizados: {count}",
    "processedFiles": "  \n📁 Archivos Procesados: {count}",
    "foundTranslationKeys": "  \n🔑 Claves de Traducción Encontradas: {count}",
    "foundIssues": "  \n❌ Encontrados {count} problemas",
    "noIssuesConsole": "  \n✅ No problemas encontrados - todos los archivos son consistentes!",
    "errorDuringAnalysis": "  ❌ Error durante el análisis: {error}",
    "usageReportTitle": "📊 INFORME DE USO I18NTK",
    "usageReportGenerated": "Generado: {timestamp}",
    "usageReportSourceDir": "Directorio fuente: {sourceDir}",
    "usageReportI18nDir": "Directorio i18n: {i18nDir}",
    "usageReportSummary": "📈 RESUMEN",
    "usageReportSourceFilesScanned": "Archivos fuente escaneados: {count}",
    "usageReportTranslationFilesFound": "Archivos de traducción encontrados: {count}",
    "usageReportAvailableKeys": "Claves de traducción disponibles: {count}",
    "usageReportUsedKeys": "Claves de traducción usadas: {count}",
    "usageReportDynamicKeys": "Claves de traducción dinámicas: {count}",
    "usageReportUnusedKeys": "Claves de traducción no usadas: {count}",
    "usageReportMissingKeys": "Claves de traducción faltantes: {count}",
    "usageReportNotTranslatedKeys": "Claves de traducción no traducidas: {count}",
    "usageReportTranslationCompleteness": "🌍 COMPLETITUD DE TRADUCCIONES",
    "usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
    "usageReportNotTranslatedInLanguage": "    No traducido: {count} claves",
    "usageReportTranslationFilesDiscovered": "📁 ARCHIVOS DE TRADUCCIÓN",
    "usageReportFileInfo": "{relativePath} (espacio de nombres: {namespace}, tipo: {type})",
    "usageReportUnusedTranslationKeys": "🗑️ CLAVES DE TRADUCCIÓN NO UTILIZADAS",
    "usageReportUnusedKeysDescription": "Estas claves existen en archivos de traducción pero no se usan en el código fuente:",
    "usageReportUnusedKey": "• {key}",
    "usageReportMoreUnusedKeys": "   ... y {count} claves no utilizadas más",
    "usageReportMissingTranslationKeys": "❌ CLAVES DE TRADUCCIÓN FALTANTES",
    "usageReportMissingKeysDescription": "Estas claves se usan en el código fuente pero faltan en los archivos de traducción:",
    "usageReportMissingKey": "• {key}",
    "usageReportUsedIn": "   Usado en: {filePath}",
    "usageReportMoreFiles": "   ... y {count} archivos más",
    "usageReportDynamicTranslationKeys": "⚡ CLAVES DE TRADUCCIÓN DINÁMICAS",
    "usageReportDynamicKeysDescription": "Estas claves se usan dinámicamente (construidas en tiempo de ejecución):",
    "usageReportDynamicKey": "• {key}",
    "usageReportFileUsageBreakdown": "📊 DESGLOSE DE USO DE ARCHIVOS",
    "usageReportFileUsage": "{filePath}: {count} claves",
    "status": {
      "generating": "⏳ Generando...",
      "completed": "✅ Completado"
    },
    "help": {
      "usage": "Uso: node i18ntk-manage.js [opciones]",
      "interactiveMode": "💡 Usar: node i18ntk-manage.js --command=<comando> para ejecución directa",
      "initProject": "🚀 Inicializar nuevos idiomas",
      "analyzeTranslations": "🔍 Analizar traducciones",
      "validateTranslations": "✅ Validar traducciones",
      "checkUsage": "📊 Verificar uso de claves",
      "showHelp": "📖 Usar: node i18ntk-manage.js --help para ver comandos disponibles",
      "availableCommands": "📖 Comandos Disponibles:",
      "initCommand": "  init      - Inicializar nuevos idiomas",
      "analyzeCommand": "  analyze   - Analizar traducciones",
      "validateCommand": "  validate  - Validar traducciones",
      "usageCommand": "  usage     - Verificar uso de claves",
      "sizingCommand": "  sizing    - Analizar dimensionamiento",
      "completeCommand": "  complete  - Completar traducciones (100% cobertura)",
      "summaryCommand": "  summary   - Mostrar estado del proyecto",
      "scannerCommand": "  scanner   - Escanear problemas i18n",
      "debugCommand": "  debug     - Depurar problemas de traducción"
    },
    "test_complete_system": {
      "starting_test": "🧪 Iniciando Prueba Completa del Sistema\n",
      "separator": "=",
      "testing_ui_translations": "\n📝 Probando Traducciones de UI...",
      "testing_settings_manager": "\n⚙️  Probando Gestor de Configuración...",
      "testing_main_scripts": "\n🔧 Probando Scripts Principales...",
      "checking_translation_consistency": "\n🌐 Verificando Consistencia de Traducción...",
      "non_critical_missing_keys": "ℹ️ {file}: {count} claves no críticas faltantes",
      "extra_keys": "ℹ️ {file}: {count} claves extra",
      "generating_report": "\n📊 Generando Informe...",
      "final_test_report_title": "📋 INFORME FINAL DE PRUEBA",
      "passed": "✅ Aprobado: {passed}",
      "failed": "❌ Fallido: {failed}",
      "warnings": "⚠️  Advertencias: {warnings}",
      "missing_translations_title": "\n🔍 Traducciones Faltantes ({count}):",
      "missing_translation_key": "   - {key}",
      "missing_translations_more": "   ... y {count} más",
      "errors_title": "\n❌ Errores:",
      "error_message": "   - {error}",
      "overall_status": "\n📊 Estado General: {status}",
      "success_message": "✅ {message}",
      "failure_message": "❌ {message}",
      "failure_error_message": "   {errorMessage}",
      "warning_message": "⚠️  {message}",
      "test_runner_failed": "❌ Ejecutor de pruebas falló:",
      "recommendations": {
        "add_missing_translation_keys": "Agregar claves de traducción faltantes para mantener consistencia",
        "fix_failing_scripts": "Corregir scripts fallidos antes del despliegue",
        "review_warning_messages": "Revisar y atender mensajes de advertencia",
        "system_ready_for_deployment": "El sistema está listo para despliegue"
      },
      "hardcodedTexts": {
        "addMissingTranslationKeys": "Agregar claves de traducción faltantes para mantener consistencia",
        "fixFailingScripts": "Corregir scripts fallidos antes del despliegue",
        "reviewWarningMessages": "Revisar y atender mensajes de advertencia",
        "systemReadyForDeployment": "El sistema está listo para despliegue"
      }
    },
    "testConsoleI18n": {
      "found_target_file": "Archivo objetivo encontrado: {fileName}",
      "scanning_files_for_console_statements": "Escaneando archivos para declaraciones de consola...",
      "found_javascript_files": "Encontrados {count} archivos JavaScript.",
      "console_i18n_analysis_results": "Resultados del Análisis de Consola I18n",
      "total_console_statements": "Total de declaraciones de consola: {count}",
      "translated_statements": "Declaraciones traducidas: {count}",
      "hardcoded_statements": "Declaraciones hardcodeadas: {count}",
      "translation_coverage": "Cobertura de Traducción: {percentage}%",
      "coverage_by_file": "Cobertura por Archivo:",
      "file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
      "hardcoded_console_statements": "Declaraciones de Consola Hardcodeadas:",
      "file_header": "Archivo: {file}",
      "line_statement": "  Línea {line}: {statement}",
      "suggested_key": "    Clave Sugerida: {key}",
      "suggested_replacement": "    Reemplazo Sugerido: {replacement}",
      "recommendations": "Recomendaciones:",
      "recommendation_1": "1. Reemplazar cadenas hardcodeadas con llamadas i18n.t().",
      "recommendation_2": "2. Agregar nuevas claves a los archivos JSON de traducción relevantes.",
      "recommendation_3": "3. Asegurar que todos los mensajes de consola sean visibles al usuario y requieran traducción.",
      "recommendation_4": "4. Usar literales de plantilla o concatenación de cadenas para mensajes dinámicos, pasando variables a i18n.t().",
      "translation_keys_to_add": "Claves de Traducción Sugeridas para Agregar:",
      "add_keys_instruction": "Copiar la siguiente estructura JSON en tus archivos de traducción:",
      "perfect_translation_coverage": "¡Cobertura de Traducción Perfecta!",
      "all_statements_using_translation": "Todas las declaraciones de consola están usando el sistema de traducción.",
      "i18n_console_translation_checker": "Verificador de Traducción de Consola I18n",
      "script_description_line1": "Este script escanea todos los archivos JavaScript para declaraciones de consola",
      "script_description_line2": "y verifica si están usando el sistema de traducción.",
      "analysis_completed_in_duration": "Análisis completado en {duration} segundos.",
      "report_saved_to_path": "Informe guardado en: {path}",
      "found_hardcoded_messages": "Encontrados {count} mensajes hardcodeados. Saliendo con código de error 1.",
      "all_console_messages_use_translation": "Todos los mensajes de consola usan traducción. Saliendo con código 0.",
      "consoleTranslationsCheck": "Verificación de Traducciones de Consola"
    },
    "translate_mismatches": {
      "title": "🌐 Ayudante de Traducción {dryRun}",
      "separator": "=====================================\n",
      "processing_file": "📄 Procesando {language}.json...",
      "translation_summary_title": "\n📊 Resumen de Traducciones:",
      "total_translations_applied": "    Total traducciones aplicadas: {totalTranslations}",
      "run_with_apply_instruction": "\n💡 Ejecutar con --apply para aplicar estas traducciones\n",
      "no_translation_mappings": "    ⚠️  No hay mapeos de traducción disponibles para {language}",
      "translation_applied": "    ✅ {key}: \"{oldValue}\" → \"{newValue}\"",
      "saved_translations": "    💾 Guardadas {count} traducciones en {filename}",
      "found_translatable_items": "    🔍 Encontrados {count} elementos traducibles",
      "no_automatic_translations": "    ✨ No hay traducciones automáticas disponibles",
      "error_processing_file": "    ❌ Error procesando {filename}: {errorMessage}",
      "coverage_report_title": "📊 Reporte de Cobertura de Traducción",
      "coverage_report_separator": "===============================\n",
      "file_header": "📄 {filename}:",
      "total_keys": "    Total de claves: {total}",
      "translated_keys": "    Traducidas: {translated}",
      "untranslated_markers": "    Marcadores sin traducir: {untranslated}",
      "contains_english": "    Contiene inglés: {hasEnglish}",
      "coverage_percentage": "    Cobertura: {coverage}%\n",
      "error_general": "❌ Error:",
      "use_help": "Use --help para ver información de uso"
    }
  },
  "scanner": {
    "help_message": "\nEscáner de Texto i18n\n\nUso: node i18ntk-scanner.js [opciones]\n\nOpciones:\n  --source-dir <dir>     Directorio fuente para escanear (por defecto: ./src)\n  --output <file>        Archivo de salida para resultados (por defecto: ./i18ntk-scanner-report.json)\n  --framework <nombre>   Framework a analizar (react, vue, angular, vanilla)\n  --patterns <patrones>  Patrones regex personalizados (separados por comas)\n  --include-tests        Incluir archivos de prueba en el escaneo\n  --exclude-dirs <dirs>  Directorios a excluir (separados por comas)\n  --help                 Mostrar esta ayuda\n\nEjemplos:\n  node i18ntk-scanner.js --source-dir=./src --framework=react\n  node i18ntk-scanner.js --patterns 'console\\.log\\((.*?)\\)' --include-tests\n  node i18ntk-scanner.js --output=./resultados-escaneo.json\n",
    "help_options": {
      "source_dir": "Directorio fuente para escanear",
      "output_dir": "Archivo de salida para resultados",
      "framework": "Framework a analizar (react, vue, angular, vanilla)",
      "patterns": "Patrones regex personalizados (separados por comas)",
      "exclude": "Directorios a excluir (separados por comas)",
      "output_report": "Archivo de salida para el informe",
      "min_length": "Longitud mínima del texto para incluir",
      "max_length": "Longitud máxima del texto para incluir",
      "include_tests": "Incluir archivos de prueba en el escaneo"
    },
    "starting": "🔍 Iniciando escáner de texto para framework: {framework}",
    "sourceDirectory": "📁 Escaneando directorio: {sourceDir}",
    "frameworkDetected": "🎯 Framework detectado: {framework}",
    "scanningFiles": "📊 Escaneando {fileCount} archivos...",
    "foundTexts": "📝 Encontrados {textCount} textos que requieren traducción",
    "generatingReport": "📊 Generando informe detallado...",
    "foundText": "Encontrado {count} instancias de texto potencialmente codificado",
    "reportSaved": "💾 Informe de escaneo guardado en: {reportPath}",
    "noTextsFound": "✅ No se encontraron textos en inglés hardcodeados",
    "scanComplete": "🎉 ¡Escaneo completado exitosamente!",
    "analysisTitle": "🔍 ANÁLISIS DE ESCÁNER DE TRADUCCIÓN",
    "fileSummary": "📄 {file}: {count} textos encontrados",
    "textLocation": "📍 Línea {line}: {text}",
    "context": "📝 Contexto: {context}",
    "severity": "⚠️  Severidad: {severity}",
    "recommendation": "💡 Recomendación: {recommendation}",
    "welcome": {
      "title": "🎯 ¡Bienvenido al Escáner de Texto!",
      "description": "Esta herramienta escanea tu código fuente en busca de textos en inglés hardcodeados que puedan necesitar traducción."
    },
    "frameworkPrompt": {
      "title": "🎯 Seleccionar Framework",
      "available": "Frameworks disponibles: react, vue, angular, vanilla",
      "description": "Ingrese el tipo de framework (o presione Enter para detección automática):",
      "input": "Framework: "
    },
    "directoryPrompt": {
      "title": "📁 Seleccionar Directorio Fuente",
      "current": "Directorio actual: {dir}",
      "description": "Ingrese el directorio a escanear (o presione Enter para el actual):",
      "input": "Directorio: "
    },
    "options": {
      "includeTests": "¿Incluir archivos de prueba?",
      "excludeDirs": "Directorios a excluir (separados por comas):",
      "customPatterns": "Patrones personalizados a escanear (regex):"
    }
  },
  "ui": {
    "autoDetectedI18nDirectory": "Directorio i18n autodetectado: {path}",
    "executingCommand": "🔄 Ejecutando comando: {command}",
    "unknownCommand": "❌ Comando desconocido: {command}",
    "errorExecutingCommand": "❌ Error al ejecutar comando: {error}",
    "errorLoadingTranslationFile": "❌ Error al cargar archivo de traducción para '{language}': {error}",
    "errorSavingLanguagePreference": "❌ Error al guardar preferencia de idioma: {error}",
    "noActiveReadlineInterface": "❌ No hay interfaz readline activa disponible",
    "uiLanguageUpdated": "🌍 Idioma de interfaz actualizado a: {language}",
    "selectOptionPrompt": "Seleccione una opción:",
    "pressEnterToReturn": "Presione Enter para volver al menú principal...",
    "detectedSourceDirectory": "Directorio fuente detectado: {sourceDir}",
    "detectedI18nDirectory": "Directorio i18n detectado: {directory}",
    "toolkitTitle": "🌍 i18ntk - Kit de Herramientas de Gestión i18n Empresarial",
    "versionInfo": "📦 Versión: {version}",
    "releaseDate": "📅 Fecha de lanzamiento: {date}",
    "maintainer": "👤 Mantenedor: {maintainer}",
    "nodeVersion": "🔧 Node.js: {version}",
    "license": "📄 Licencia: {license}",
    "whatsNew": "✨ Novedades en v{version}:",
    "changeItem": "   {change}",
    "documentation": "📚 Documentación: {url}",
    "issues": "🐛 Problemas: {url}",
    "versionInfoUnavailable": "Información de versión de i18ntk no disponible",
    "versionInfoError": "Error: {error}"
  },
  "validateLanguagePurity": {
    "phrase_debug_tools": "herramientas de depuración",
    "phrase_settings": "configuración",
    "phrase_configuration": "configuración",
    "phrase_invalid_choice": "opción inválida",
    "phrase_please_select": "por favor seleccione",
    "phrase_back_to_main_menu": "volver al menú principal",
    "phrase_error": "error",
    "phrase_warning": "advertencia",
    "phrase_success": "éxito",
    "phrase_failed": "fallido",
    "phrase_loading": "cargando",
    "phrase_saving": "guardando",
    "phrase_full_system_debug": "depuración completa del sistema",
    "phrase_configuration_debug": "depuración de configuración",
    "phrase_translation_debug": "depuración de traducción",
    "phrase_performance_debug": "depuración de rendimiento",
    "phrase_admin_pin_setup": "configuración de PIN de administrador",
    "phrase_enter_admin_pin": "ingrese PIN de administrador",
    "phrase_confirm_admin_pin": "confirme PIN de administrador",
    "phrase_authentication_failed": "autenticación fallida",
    "phrase_access_denied": "acceso denegado",
    "phrase_security_log": "registro de seguridad",
    "language_german": "Alemán",
    "language_french": "Francés",
    "language_spanish": "Español",
    "language_russian": "Ruso",
    "language_japanese": "Japonés",
    "language_chinese": "Chino",
    "validator_title": "🔍 Validador de Pureza de Idioma",
    "validating_file": "📄 Validando {language}.json ({name})...",
    "valid_file_message": "   ✅ Válido - Sin violaciones de pureza de idioma",
    "invalid_file_message": "   ❌ Inválido - {count} violación(es) encontrada(s)",
    "no_validation_rules": "No hay reglas de validación definidas para el idioma: {language}",
    "error_reading_file": "Error al leer archivo: {errorMessage}",
    "issue_forbidden_marker": "Contiene marcador prohibido: {marker}",
    "issue_english_phrase": "Contiene frase en inglés: \"{phrase}\"",
    "issue_english_words": "Contiene palabras en inglés: {words}",
    "issue_missing_cyrillic": "El texto largo debe contener caracteres cirílicos para Ruso",
    "issue_missing_japanese": "El texto largo debe contener caracteres japoneses",
    "issue_missing_chinese": "El texto largo debe contener caracteres chinos",
    "summary_title": "📊 RESUMEN DE VALIDACIÓN",
    "overall_results_header": "📋 Resultados Generales:",
    "total_files_validated": "   Total de archivos validados: {count}",
    "valid_files": "   Archivos válidos: {count}",
    "invalid_files": "   Archivos inválidos: {count}",
    "total_violations": "   Total de violaciones: {count}\n",
    "violations_by_file_header": "❌ VIOLACIONES POR ARCHIVO:\n"
  },
  "workflow": {
    "title": "Gestión de Flujos de Trabajo",
    "description": "Gestionar flujos de trabajo i18n.",
    "select_workflow_file": "Seleccione un archivo de flujo de trabajo para ejecutar:",
    "no_workflow_files": "No se encontraron archivos de flujo de trabajo en el directorio de flujos.",
    "invalid_selection": "Selección inválida. Por favor ingrese un número correspondiente a un archivo de flujo de trabajo.",
    "workflow_execution_started": "Iniciando flujo de trabajo: {workflowName}",
    "workflow_execution_completed": "Flujo de trabajo completado: {workflowName}",
    "workflow_execution_failed": "Flujo de trabajo fallido: {workflowName} - {error}",
    "workflow_cancelled": "Ejecución de flujo de trabajo cancelada.",
    "press_enter_to_continue": "¡Presione Enter para continuar!",
    "starting": "🚀 Iniciando flujo de trabajo...",
    "completed": "✅ ¡Flujo de trabajo completado exitosamente!",
    "checkReports": "📄 Revise los informes para más detalles.",
    "exitingCompleted": "📝 Flujo de trabajo completado. Saliendo...",
    "summary": {
      "title": "📋 RESUMEN DE FLUJO DE TRABAJO",
      "separator": "===================",
      "completedAt": "🕐 Flujo de trabajo completado en: {timestamp}",
      "initialViolations": "📊 Violaciones iniciales: {count}",
      "finalViolations": "📉 Violaciones finales: {count}",
      "totalFixes": "🔧 Total de correcciones aplicadas: {count}",
      "improvement": "📈 Mejora: {percentage}%",
      "stepResults": "📝 RESULTADOS POR PASO:\n",
      "stepDetail": "{number}. {status} {stepName}",
      "violations": "   Violaciones: {count}",
      "fixesApplied": "   Correcciones aplicadas: {count}",
      "nextSteps": "💡 PRÓXIMOS PASOS:\n",
      "congratulations": "🎉 ¡Felicitaciones! ¡Todos los archivos de localización tienen ahora pureza perfecta de idioma!",
      "cicdIntegration": "✅ Considere integrar el validador en su pipeline CI/CD",
      "automatedChecks": "✅ Configure verificaciones automatizadas para nuevas traducciones",
      "greatProgress": "🎯 ¡Gran progreso! La mayoría de los problemas han sido resueltos.",
      "manualReview": "🔍 Revise manualmente las violaciones restantes",
      "addMappings": "🌐 Considere agregar más mapeos de traducción para casos especiales",
      "goodProgress": "📈 Buen progreso realizado, pero se necesita más trabajo.",
      "expandMappings": "🔧 Amplíe los mapeos de traducción automática",
      "professionalReview": "👥 Considere la revisión manual de traducciones complejas",
      "runAgain": "🔄 Ejecute el flujo de trabajo nuevamente después de agregar más mapeos",
      "limitedProgress": "⚠️ Progreso limitado. Puede ser necesaria intervención manual.",
      "reviewMappings": "🔍 Revise los mapeos de traducción y agregue los faltantes",
      "professionalServices": "👥 Considere servicios de traducción profesional",
      "checkIssues": "🔧 Verifique problemas sistemáticos en archivos de localización",
      "success": "✅",
      "warning": "⚠️"
    }
  },
  "consoleI18nTester": {
    "found_target_file": "Archivo objetivo encontrado",
    "scanning_files_for_console_statements": "Escaneando archivos para declaraciones de consola",
    "found_javascript_files": "Archivos JavaScript encontrados",
    "console_i18n_analysis_results": "Resultados del análisis de i18n en consola",
    "total_console_statements": "Total de declaraciones de consola",
    "translated_statements": "Declaraciones traducidas",
    "hardcoded_statements": "Declaraciones hardcodeadas",
    "translation_coverage": "Cobertura de traducción",
    "coverage_by_file": "Cobertura por archivo",
    "file_coverage_stats": "Estadísticas de cobertura de archivo",
    "hardcoded_console_statements": "Declaraciones de consola hardcodeadas",
    "file_header": "Encabezado de archivo",
    "line_statement": "Declaración de línea",
    "suggested_key": "Clave sugerida",
    "suggested_replacement": "Reemplazo sugerido",
    "recommendations": "Recomendaciones",
    "recommendation_1": "Recomendación 1",
    "recommendation_2": "Recomendación 2",
    "recommendation_3": "Recomendación 3",
    "recommendation_4": "Recomendación 4",
    "translation_keys_to_add": "Claves de traducción para agregar",
    "add_keys_instruction": "Instrucción para agregar claves",
    "perfect_translation_coverage": "Cobertura de traducción perfecta",
    "all_statements_using_translation": "Todas las declaraciones usando traducción",
    "i18n_console_translation_checker": "Verificador de traducción de consola i18n",
    "script_description_line1": "Descripción del script línea 1",
    "script_description_line2": "Descripción del script línea 2",
    "analysis_completed_in_duration": "Análisis completado en duración",
    "report_saved_to_path": "Informe guardado en ruta",
    "found_hardcoded_messages": "Mensajes hardcodeados encontrados",
    "all_console_messages_use_translation": "Todos los mensajes de consola usan traducción"
  },
  "\\nSelect directory to clean (0-${availableDirs": {
    "length + 1}): ": "Seleccione directorio para limpiar (0-${availableDirs"
  },
  "exportTranslations": {
    "createdDirectory": "Directorio creado",
    "foundFiles": "Archivos encontrados",
    "createdTemplate": "Plantilla creada",
    "skippedExisting": "Existente omitido",
    "title": "Título",
    "creatingTemplates": "Creando plantillas",
    "summary": "Resumen",
    "summaryLanguages": "Resumen de idiomas",
    "summaryFilesPerLanguage": "Archivos por idioma",
    "summaryTotalFiles": "Total de archivos",
    "success": "Éxito",
    "location": "Ubicación",
    "nextSteps": "Siguientes pasos"
  },
  ")) {\n          console": {
    "log(": "Registro("
  },
  "dashboard": {
    "title": "Tablero",
    "overview": "Vista general"
  },
  "auth": {
    "title": "Autenticación",
    "email": "Correo electrónico",
    "password": "Contraseña",
    "signIn": "Iniciar sesión",
    "forgotPassword": "Olvidé mi contraseña",
    "signUp": "Registrarse"
  }
}