{
  "meta": {
    "version": "3.1.2",
    "updated": "2026-05-07"
  },
  "common": {
    "welcome": "Bienvenido",
    "hello": "Hola",
    "goodbye": "Adiós",
    "yes": "Sí",
    "no": "No",
    "save": "Ahorrar",
    "cancel": "Cancelar",
    "delete": "Borrar",
    "edit": "Editar",
    "loading": "Cargando...",
    "offlineTitle": "Estás desconectado",
    "offlineMessage": "Por favor revisa tu conexión a internet",
    "tryReconnect": "Intenta volver a conectarte",
    "logout": "Cerrar sesión",
    "login": "Acceso",
    "amount": "Cantidad",
    "success": "Éxito",
    "error": "Error",
    "warning": "Advertencia",
    "info": "Información:",
    "debug": "Depurar",
    "progress": "Progreso:",
    "remaining": "Restante:",
    "total": "Total:",
    "completed": "7. ¡Completado con éxito!",
    "missing": "Desaparecido",
    "partial": "Parcial",
    "sameAsSource": "Igual que la fuente:",
    "formatMismatch": "El formato no coincide:",
    "typeMismatch": "Tipo no coincidente:",
    "structureMismatch": "Desajuste de estructura:",
    "invalidOption": "Opción no válida",
    "separator": "====================================================",
    "initializationFailed": "❌ Falló la inicialización: {error}",
    "stackTrace": "Seguimiento de pila: {stack}",
    "pressEnterToContinue": "Presione Entrar para continuar...",
    "pressEnterToReturn": "Presione Enter para regresar al menú principal...",
    "stepCompleted": "Paso '{stepName}' completado.",
    "stepFailed": "Paso '{stepName}' fallido.",
    "runningStep": "Paso de carrera: {stepName}",
    "command": "Dominio: {command}",
    "startingWorkflow": "Iniciando flujo de trabajo...",
    "workflowCompleted": "Flujo de trabajo completado.",
    "checkReports": "Consulte los informes para obtener más detalles.",
    "errorExecutingCommand": "Error al ejecutar el comando: {error}",
    "genericError": "❌Error: {error}",
    "errors": {
      "errors": "Errores:",
      "genericError": "❌Error: {error}",
      "initializationFailed": "❌ Falló la inicialización: {error}",
      "initializationCancelled": "❌ Inicialización cancelada por el usuario.",
      "translationKeyNotFound": "Clave de traducción no encontrada: {key}",
      "sourceDirectoryNotFound": "Directorio fuente no encontrado: {directory}",
      "configLoadingFailed": "Error al cargar la configuración",
      "invalidSourceDirectory": "Directorio fuente no válido: {directory}",
      "securityViolation": "Violación de seguridad detectada",
      "authenticationFailed": "Error de autenticación",
      "sourceEqualsI18nWarn": "⚠️ sourceDir es igual a i18nDir ({sourceDir}). Volviendo a {fallback} para escanear el origen."
    },
    "errorGeneratingStatusSummary": "Error al generar el resumen de estado: {error}",
    "errorRunningDebugTool": "Error al ejecutar la herramienta de depuración '{displayName}': {error}",
    "errorReadingDebugLogs": "Error al leer los registros de depuración: {error}",
    "errorAnalyzingLogFile": "Error al analizar el archivo de registro: {error}",
    "errorAnalyzingTranslationKeys": "Error al analizar las claves de traducción: {error}",
    "errorAnalyzingTranslationCompleteness": "Error al analizar la integridad de la traducción: {error}",
    "analyzingTranslationCompleteness": "Analizando la integridad de la traducción en todos los idiomas...",
    "i18nDirectoryNotFound": "⚠️ directorio i18n no encontrado: {i18nDir}",
    "translationCompletenessAnalysisFailed": "⚠️ Error en el análisis de integridad de la traducción: {error}",
    "failedToAnalyzeLanguage": "❌ No se pudo analizar el idioma {language}: {error}",
    "errorReadingI18nDirectory": "❌ Error al leer el directorio i18n:",
    "languageCompletenessTitle": "📈 INTEGRIDAD DE LA TRADUCCIÓN POR IDIOMA",
    "errorAnalyzingTranslationFormat": "Error al analizar el formato de traducción: {error}",
    "errorAnalyzingTranslationType": "Error al analizar el tipo de traducción: {error}",
    "errorAnalyzingTranslationStructure": "Error al analizar la estructura de traducción: {error}",
    "errorAnalyzingTranslationFormatMismatch": "Error al analizar la falta de coincidencia del formato de traducción: {error}",
    "errorAnalyzingTranslationTypeMismatch": "Error al analizar la discrepancia del tipo de traducción: {error}",
    "errorAnalyzingTranslationStructureMismatch": "Error al analizar la estructura de traducción que no coincide: {error}",
    "errorAnalyzingTranslationSameAsSource": "Error al analizar la traducción igual que la fuente: {error}",
    "title": "Estado",
    "nextStep1": "1. Verifique el análisis de uso:",
    "nextStep2": "2. Validar traducciones:",
    "nextStep3": "3. Analizar la integridad:",
    "nextStep4": "4. Complete las traducciones que faltan:",
    "nextStep5": "5. Generar informe resumido:",
    "nextStep6": "6. Revisar y finalizar las traducciones:",
    "generating": "Generando informe resumido...",
    "review": "Revisando traducciones...",
    "finalizing": "Finalizando traducciones...",
    "finalized": "¡Finalizado con éxito!",
    "warnings": "Advertencias:",
    "completedKeys": "Claves completadas:",
    "missingKeys": "Teclas faltantes:",
    "partialKeys": "Claves parciales:",
    "home": "Hogar",
    "settings": "Ajustes",
    "startingSettings": "🎛️ Iniciando configuración CLI...",
    "confirm": "Confirmar",
    "errorExiting": "Error al salir."
  },
  "errors": {
    "invalidOption": "❌ Opción no válida: {option}. Por favor inténtalo de nuevo.",
    "readlineClosed": "El flujo de entrada está cerrado; ejecutándose en modo no interactivo.",
    "noPackageJson": "No se encontró ningún paquete.json. No se puede detectar automáticamente el marco i18n.",
    "noI18nDir": "No se encontró ningún directorio i18n en la raíz del proyecto.",
    "noI18nConfig": "No se encontró ningún archivo de configuración de i18n en la raíz del proyecto.",
    "errorReadingDebugLogs": "Error al leer los registros de depuración: {error}"
  },
  "scanner": {
    "help_message": "Uso del escáner de texto I18n: nodo i18ntk-scanner.js [opciones] Opciones: --source-dir <dir>     Directorio de origen para escanear (predeterminado: ./src) --salida <file>        Archivo de salida para los resultados del análisis (predeterminado: ./i18ntk-scanner-report.json) --framework <name>     Marco de destino (react, vue, angular, vanilla) --patrones <patterns>  Patrones de expresiones regulares personalizados (separados por comas) --include-tests Incluir archivos de prueba en el análisis --exclude-dirs <dirs>  Directorios para excluir (separados por comas) --help Mostrar esta ayuda Ejemplos: node i18ntk-scanner.js --source-dir=./src --framework=react node i18ntk-scanner.js --patterns 'console.log\\((.*?)\\)' --include-tests node i18ntk-scanner.js --output=./scan-results.json",
    "help_options": {
      "source_dir": "Directorio de origen para buscar problemas con i18n",
      "output_dir": "Directorio de informes y resultados de escaneo",
      "framework": "Marco de destino (react, vue, angular, vanilla)",
      "patterns": "Patrones de expresiones regulares personalizados para la detección de texto",
      "exclude": "Patrones de archivos para excluir del escaneo",
      "output_report": "Generar informe de escaneo detallado",
      "min_length": "Longitud mínima del texto a considerar para la traducción",
      "max_length": "Longitud máxima del texto a considerar para la traducción",
      "include_tests": "Incluir archivos de prueba en el proceso de escaneo"
    },
    "starting": "🔍 Iniciar el escáner de texto para framework: {framework}",
    "sourceDirectory": "📁 Directorio de escaneo: {sourceDir}",
    "frameworkDetected": "🎯 Marco detectado: {framework}",
    "scanningFiles": "📊 Escaneo {fileCount} archivos...",
    "foundTexts": "📝 Encontrado {textCount} textos que requieren traducción",
    "generatingReport": "📊 Generando informe detallado...",
    "reportSaved": "💾 Informe de escaneo guardado en: {reportPath}",
    "noTextsFound": "✅ No se encontraron textos en inglés codificados",
    "scanComplete": "🎉 ¡El escaneo se completó con éxito!",
    "analysisTitle": "🔍 ANÁLISIS DE ESCANEO DE TRADUCCIÓN",
    "fileSummary": "📄 {file}: {count} textos encontrados",
    "textLocation": "📍 Línea {line}: {text}",
    "foundText": "Encontró {count} posibles instancias de texto codificado",
    "context": "📝 Contexto: {context}",
    "severity": "⚠️ Gravedad: {severity}",
    "recommendation": "💡 Recomendación: {recommendation}",
    "welcome": {
      "title": "🎯 ¡Bienvenido al Escáner de Texto!",
      "description": "Esta herramienta escanea su código fuente en busca de texto codificado en inglés que pueda necesitar traducción."
    },
    "frameworkPrompt": {
      "title": "🎯 Seleccionar marco",
      "available": "Marcos disponibles: reaccionar, vue, angular, vainilla",
      "description": "Ingrese el tipo de marco (o presione Enter para la detección automática):",
      "input": "Estructura:"
    },
    "directoryPrompt": {
      "title": "📁 Seleccionar directorio de origen",
      "current": "Directorio actual: {dir}",
      "description": "Ingrese el directorio para escanear (o presione Enter para obtener el actual):",
      "input": "Directorio:"
    },
    "options": {
      "includeTests": "¿Incluir archivos de prueba?",
      "excludeDirs": "Directorios a excluir (separados por comas):",
      "customPatterns": "Patrones personalizados para buscar (regex):"
    },
    "reportGenerated": "Informe de escaneo generado: {path}"
  },
  "fixer": {
    "help_message": "Uso de I18n Translation Fixer: nodo i18ntk-fixer.js [opciones] Opciones: --source-dir <dir>     Directorio de origen para escanear (predeterminado: ./locales) --idiomas <langs>    Lista separada por comas de idiomas para corregir: marcadores <markers>    Marcadores separados por comas para tratarlos como no traducidos --no-backup Omitir la creación automática de copias de seguridad --help Mostrar esta ayuda Ejemplos: nodo i18ntk-fixer.js --languages ​​de,fr nodo i18ntk-fixer.js --source-dir=./locales --markers NOT_TRANSLATED nodo i18ntk-fixer.js --no-backup",
    "starting": "🚀 Inicio de corrección de traducción para idiomas: {languages}",
    "sourceDirectory": "📁 Directorio de fuentes: {sourceDir}",
    "sourceLanguage": "🔤 Idioma de origen: {sourceLanguage}",
    "markers": "🏷️ Marcadores para arreglar: {markers}",
    "scanningLanguage": "📊 Escaneo {language}...",
    "noLanguages": "❌ No se han especificado idiomas para la corrección.",
    "allComplete": "🎉 ¡Todas las traducciones ya están completas!",
    "fullReportSaved": "📊 Informe completo guardado en: {reportPath}",
    "reviewReport": "Revise el informe antes de continuar.",
    "backupCreated": "💾 Copia de seguridad creada exitosamente.",
    "applyingFixes": "🔄 Aplicando correcciones...",
    "fixingComplete": "✅ ¡Arreglo de traducción completo!",
    "operationCancelled": "❌ Operación cancelada por el usuario.",
    "analysisTitle": "🔍 ANÁLISIS DE FIJACIÓN DE TRADUCCIÓN",
    "analysisSeparator": "====================================================",
    "totalIssues": "Total de problemas encontrados: {totalIssues}",
    "missingTranslations": "Traducciones faltantes: {missing}",
    "placeholderTranslations": "Traducciones de marcadores de posición: {placeholder}",
    "noIssues": "✅ No se encontraron problemas. Todas las traducciones están completas.",
    "detailedIssues": "📋 CUESTIONES DETALLADAS:",
    "detailedSeparator": "--------------------------------------------------",
    "filePath": "📄 {file} → {path}",
    "missingKey": "❌ FALTA: {source} → {new}",
    "placeholderKey": "⚠️ MARCADOR DE LUGAR: \"{target}\" → \"{new}\"",
    "moreIssues": "... y {count} más problemas. Consulte el archivo del informe para obtener detalles completos.",
    "confirmationTitle": "🤔 ¿Quieres continuar 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 (s/n/s):",
    "nonInteractiveMode": "⚡ Se detectó modo no interactivo: se aplican correcciones automáticamente...",
    "reportGenerated": "📊 Informe de reparación generado: {path}",
    "summary": "Resumen del reparador:",
    "welcome": {
      "title": "🎯 ¡Bienvenido a Translation Fixer!",
      "description": "Esta herramienta le ayudará a corregir traducciones y marcadores de posición rotos en sus archivos locales."
    },
    "markerPrompt": {
      "title": "🏷️ Configurar marcadores de posición",
      "description": "Ingrese los marcadores que indican texto no traducido (separados por comas):",
      "currentDefaults": "Marcadores predeterminados: {markers}",
      "input": "Marcadores (o presione Enter para ver los valores predeterminados):"
    },
    "languagePrompt": {
      "title": "🌍 Seleccione idiomas para corregir",
      "available": "Idiomas disponibles: {languages}",
      "description": "Ingrese los idiomas a corregir (separados por comas) o presione Entrar para todos:",
      "input": "Idiomas:",
      "noLanguages": "No se encontraron idiomas para corregir."
    },
    "directoryPrompt": {
      "title": "📁 Seleccionar directorio",
      "current": "Directorio actual: {dir}",
      "description": "Ingrese el directorio que contiene sus archivos locales (o presione Enter para ver los actuales):",
      "input": "Directorio:"
    },
    "backupLocation": "Ubicación de la copia de seguridad: {dir}",
    "completed": "Reparación completada.",
    "creatingBackup": "Creando copia de seguridad en {dir}...",
    "dryRunMode": "Modo de funcionamiento en seco: {mode}",
    "error": "El reparador falló: {error}",
    "fixing": "Fijación {language}...",
    "foundLanguages": "Encontró {count} idiomas: {languages}",
    "languageFixed": "{language}: fijado {fixed} clave(s), omitida {skipped}.",
    "running": "Ejecutando el reparador de traducción...",
    "totalFixed": "Total fijo: {count}"
  },
  "autorun": {
    "stepAnalyzeTranslations": "Analizar traducciones",
    "stepCompletedWithIcon": "✅ Completado: {stepName}",
    "stepValidateTranslations": "Validar traducciones",
    "stepRunning": "▶️ Paso {stepNumber}/{totalSteps}: {stepName}",
    "separator": "====================================================",
    "stepFailed": "❌ Fallido: {stepName}",
    "errorLabel": "Error",
    "autoRunScriptTitle": "🧪 Flujo de trabajo de ejecución automática",
    "usageTitle": "Uso",
    "runAllSteps": "Ejecutar: nodo i18ntk-autorun.js",
    "configureSettingsFirst": "Configuración: i18ntk-config.json o indicadores CLI",
    "runSpecificSteps": "Utilice --steps=1,3 o --list para mostrar los pasos",
    "showHelp": "--ayuda para más información",
    "examplesTitle": "Ejemplos",
    "configExample": "nodo i18ntk-autorun.js --ui-language=zh",
    "stepsExample1": "nodo i18ntk-autorun.js --steps=analizar,validar",
    "stepsExample2": "nodo i18ntk-autorun.js --lista",
    "customSettingsConfiguration": "Configuración de ejecución automática personalizada",
    "availableSteps": "Pasos disponibles",
    "startingAutoRunWorkflow": "🚀 Iniciando flujo de trabajo de ejecución automática...",
    "workflowIncludesSteps": "El flujo de trabajo incluye {count} pasos:",
    "missingRequiredFile": "Falta el archivo requerido: {file}",
    "workflowStopped": "El flujo de trabajo se detuvo debido a una falla.",
    "workflowCompleted": "🎉 ¡Flujo de trabajo completado!",
    "successfulSteps": "Pasos exitosos: {count}",
    "failedSteps": "Pasos fallidos: {count}",
    "stepInitializeProject": "Inicializar proyecto",
    "stepCheckUsage": "Verificar el uso de claves",
    "stepGenerateSummary": "Generar informe resumido",
    "runInitializationFirst": "Ejecute primero la inicialización.",
    "initializationCheckPassed": "Se pasó la verificación de inicialización.",
    "runningStep": "Paso de carrera: {stepName}",
    "commandLabel": "Dominio: {command}",
    "stepCompletedWithTime": "Paso '{stepName}' completado en {duration}EM.",
    "stepCompleted": "Paso '{stepName}' completado.",
    "stepFailedWithError": "Paso '{stepName}'falló con error: {error}",
    "requiredStepFailed": "El paso requerido falló. Deteniendo el flujo de trabajo.",
    "optionalStepFailed": "El paso opcional falló. Flujo de trabajo continuo.",
    "stepRequired": "(Requerido)",
    "stepOptional": "(Opcional)",
    "startingExecution": "Iniciando ejecución...",
    "pressEnterToContinue": "Presione Entrar para continuar...",
    "runningSelectedSteps": "Ejecutando los pasos seleccionados...",
    "invalidStepNumber": "Número de paso no válido: {stepNum}",
    "executionReport": "Informe de Ejecución:",
    "requiredFailedSteps": "Los pasos requeridos fallaron: {count}",
    "stepDetails": "Detalles del paso:",
    "reportSavedTo": "Informe guardado en: {path}",
    "overallStatusSuccess": "ÉXITO",
    "overallStatusFailed": "FALLIDO",
    "overallStatus": "Estado general: {status}",
    "pressEnterForDefaults": "Presione Entrar para usar la configuración predeterminada para cualquier mensaje.",
    "sourceDirPrompt": "Ingrese el directorio de origen (predeterminado: {default}):",
    "sourceLangPrompt": "Ingrese el idioma de origen (predeterminado: {default}):",
    "targetLangsPrompt": "Introduzca los idiomas de destino (separados por comas, predeterminado: {default}):",
    "translationMarkerPrompt": "Ingrese el marcador de traducción (predeterminado: {default}):",
    "outputDirPrompt": "Ingrese el directorio de salida para los informes (predeterminado: {default}):",
    "settingsUpdatedSuccessfully": "¡La configuración se actualizó correctamente!",
    "errorConfiguringSettings": "Error al configurar los ajustes: {error}",
    "configurationComplete": "Configuración completa.",
    "runAutoRunCommand": "Ahora puede ejecutar el comando de ejecución automática.",
    "configurationFailed": "Error de configuración: {error}",
    "noValidStepNumbers": "No se han proporcionado números de paso válidos.",
    "autoRunFailed": "Error de ejecución automática: {error}",
    "stepCompleteTranslations": "Traducciones completas",
    "stepAnalyzeSizing": "Analizar tallas",
    "stepCompletedIcon": "✅",
    "stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Paso '{stepName}' correr...",
    "stepFailedIcon": "❌",
    "translationLoadWarning": "Advertencia: No se pudo cargar {lang} traducciones",
    "configReadError": "Error al leer {file}"
  },
  "analyze": {
    "help_message": "Uso del analizador de traducción I18n: nodo i18ntk-analyze.js [opciones] Opciones: --source-dir <dir>     Directorio de origen para escanear (predeterminado: ./src) --i18n-dir <dir>       Directorio I18n (predeterminado: ./src/locales) --output-report Generar informe detallado --output-dir <dir>     Directorio de salida para informes (predeterminado: ./reports) --help Mostrar esta ayuda Ejemplos: nodo i18ntk-analyze.js --output-report nodo i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales nodo i18ntk-analyze.js --output-dir=./analysis --output-report",
    "source_directory": "📁 Directorio de fuentes: {sourceDir}",
    "i18n_directory": "🌐 Directorio I18n: {i18nDir}",
    "loading_translation_files": "📋 Cargando archivos de traducción...",
    "sourceDirectoryLabel": "📁 Directorio de fuentes: {sourceDir}",
    "sourceLanguageLabel": "🌍 Idioma de origen: {sourceLanguage}",
    "strictModeLabel": "⚙️ Modo estricto: {mode}",
    "found_translation_files_count": "✅ Encontrado {count} archivos de traducción",
    "analyzing_translations": "🔍Analizando traducciones...",
    "analysis_completed_successfully": "🎉 ¡Análisis completado con éxito!",
    "analysis_results": "📊 RESULTADOS DEL ANÁLISIS",
    "language_analysis_stats": "{language}: {translatedKeys}/{totalKeys} ({percentage}% traducido)",
    "sample_missing_keys": "Ejemplos de claves faltantes:",
    "missing_key": "- {key}",
    "and_more_missing": "...y {count} más.",
    "sample_unused_keys": "Ejemplos de claves no utilizadas:",
    "unused_key": "- {key}",
    "and_more_unused": "...y {count} más.",
    "recommendations": "📋 RECOMENDACIONES",
    "add_missing_translations": "💡 Agregue traducciones faltantes para mejorar la cobertura.",
    "remove_unused_translations": "💡 Elimina las traducciones no utilizadas para mantener limpio tu proyecto.",
    "next_steps": "📋 PRÓXIMOS PASOS",
    "review_analysis_results": "1. Revise los resultados del análisis en la consola o en el informe generado.",
    "run_with_output_report": "2. Ejecute con --output-report para obtener un informe detallado.",
    "add_or_remove_translations": "3. Agregue las traducciones que faltan o elimine las que no se utilicen.",
    "rerun_analysis": "4. Vuelva 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 comprobados: {translationFileCount}",
    "total_keys": "Claves totales: {totalKeys}",
    "translated_keys": "Claves traducidas: {translatedKeys}",
    "missing_keys": "Teclas 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": "❌ El análisis falló para {language} ({missingKeys} desaparecido, {unusedKeys} no usado)",
    "starting": "🔍 Iniciando análisis de traducción...",
    "foundLanguages": "📋 Encontrado {count} Idiomas a analizar: {languages}",
    "analyzing": "🔄 Analizando {language}...",
    "reportTitle": "📊 INFORME DE ANÁLISIS DE TRADUCCIÓN",
    "generated": "Generado: {timestamp}",
    "status": "Estado: {translated}/{total} llaves ({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 con éxito!",
    "statusFileMissing": "❌ Falta el archivo de traducción",
    "sourceKeys": "📊 Claves de origen: {count}",
    "translation": "📊 Traducción: {translated}/{total} ({percentage}%)",
    "structure": "🗂️ Estructura: {status}",
    "consistent": "Coherente",
    "inconsistent": "Inconsistente",
    "missingKeys": "Teclas faltantes: {count}",
    "extraKeys": "Claves adicionales: {count}",
    "issues": "⚠️ Problemas encontrados: {count}",
    "issueType": {
      "not_translated": "No traducido: {count}",
      "empty_value": "Valores vacíos: {count}",
      "partial_translation": "Traducciones parciales: {count}",
      "format_mismatch": "El formato no coincide: {count}",
      "type_mismatch": "Los tipos no coinciden: {count}",
      "structure_mismatch": "Desajustes estructurales: {count}",
      "same_as_source": "Igual que la fuente: {count}"
    },
    "keysToTranslate": "📋 CLAVES PARA TRADUCIR",
    "key": "Llave",
    "english": "Inglés",
    "needsTranslation": "NECESITA TRADUCCIÓN",
    "andMoreKeys": "...y {count} más llaves.",
    "noLanguages": "⚠️ No se encontraron idiomas de destino.",
    "languageStats": "{language}: {percentage}% completo ({translated}/{total} llaves)",
    "invalidReportFilePath": "Ruta de archivo de informe no válida",
    "failedToWriteReportFile": "No se pudo escribir el archivo del informe de forma segura"
  },
  "complete": {
    "configLoadedSuccessfully": "Configuración cargada exitosamente",
    "configLoadingFailed": "Error al cargar la configuración",
    "sourceLanguageNotFound": "Directorio del idioma de origen no encontrado: {sourceLanguage}",
    "couldNotParseTarget": "No se pudo analizar el archivo de destino: {file}",
    "couldNotParseSource": "No se pudo analizar el archivo fuente: {file}",
    "reportGenerated": "Informe generado: {path}",
    "generateReportPrompt": "¿Le gustaría generar un informe?",
    "title": "🌍 TERMINACIÓN DE LA TRADUCCIÓN I18NTK",
    "separator": "===============================================================",
    "sourceDir": "📁 Directorio de fuentes: {sourceDir}",
    "sourceLanguage": "🌐 Idioma de origen: {sourceLanguage}",
    "dryRunMode": "🧪 Modo de ejecución en seco: no se realizarán cambios",
    "languages": "🌍 Idiomas disponibles: {languages}",
    "addingMissingKeys": "➕ Agregar claves faltantes a los archivos de traducción...",
    "processing": "🔄 Procesamiento {language}...",
    "addedKeys": "✅ Agregado {count} llaves faltantes",
    "noChangesNeeded": "✅ No se necesitan cambios para {language}",
    "summaryTitle": "📊 RESUMEN DE FINALIZACIÓN",
    "totalChanges": "📝 Cambios totales: {totalChanges}",
    "languagesProcessed": "🌍 Idiomas procesados: {languagesProcessed}",
    "missingKeysAdded": "➕ Se agregaron claves faltantes: {missingKeysAdded}",
    "nextStepsTitle": "📋 PRÓXIMOS PASOS",
    "nextStep1": "1. Ejecute el análisis de uso:",
    "nextStep2": "nodo i18ntk-usage.js --informe de salida",
    "nextStep3": "2. Validar traducciones:",
    "nextStep4": "nodo i18ntk-validate.js",
    "nextStep5": "3. Analizar patrones:",
    "nextStep6": "nodo i18ntk-analyze.js",
    "allKeysAvailable": "🎉 ¡Todas las claves de traducción ya están disponibles!",
    "runWithoutDryRun": "💡 Ejecute sin --dry-run para aplicar cambios",
    "deletingOldReport": "🗑️ Eliminando informe antiguo...",
    "generatingFreshAnalysis": "📊 Generando nuevos análisis de uso...",
    "couldNotGenerate": "❌ No se pudo generar el análisis de uso",
    "reportNotFound": "📋 Informe de uso no encontrado. Usando claves comunes...",
    "foundMissingKeys": "📋 Encontrado {count} claves faltantes en el análisis de uso",
    "couldNotParse": "❌ No se pudo analizar el informe de uso. Usando claves comunes...",
    "errorDuringCompletion": "❌ Error durante la finalización: {error}",
    "fatalError": "❌ Error fatal: {error}",
    "configurationValidationFailed": "Falló la validación de la configuración: faltan campos obligatorios"
  },
  "sizing": {
    "separator": "====================================================================================",
    "lineSeparator": "--------------------------------------------------------------------------------",
    "analysisStats": "{stats}",
    "sourceDirectoryLabel": "📁 Directorio de fuentes: {sourceDir}",
    "sourceLanguageLabel": "🌍 Idioma de origen: {sourceLanguage}",
    "strictModeLabel": "⚙️ Modo estricto: {mode}",
    "invalidSourceDirectoryError": "Ruta del directorio de origen no válida: {sourceDir}",
    "sourceDirectoryNotFoundError": "Directorio fuente no encontrado: {sourceDir}",
    "invalidOutputDirectoryError": "Ruta del directorio de salida no válida: {outputDir}",
    "invalidReportFileError": "Ruta de archivo de informe no válida",
    "problematic_keys": "Claves problemáticas: {problematicKeys}",
    "problematicKeysLabel": "Claves problemáticas: {problematicKeys}",
    "long_translations": "Traducciones largas: {longTranslations}",
    "failedToSaveReportError": "No se pudo guardar el informe de forma segura",
    "invalidCsvFileError": "Ruta del archivo CSV no válida",
    "failedToSaveCsvError": "No se pudo guardar el informe CSV de forma segura",
    "fatalError": "❌ Error en el análisis de tallas: {error}",
    "starting_i18n_sizing_analysis": "Iniciando análisis de tamaño de i18n...",
    "source_directory": "Directorio de origen: {sourceDir}",
    "found_languages": "Idiomas encontrados: {languages}",
    "analyzing_file_sizes": "Analizando tamaños de archivos...",
    "analyzing_translation_content": "Analizando el contenido de la traducción...",
    "generating_size_comparisons": "Generando comparaciones de tamaño...",
    "no_languages_found_for_comparison": "No se encontraron idiomas para comparar",
    "sizing_analysis_results": "Resultados del análisis de tamaño del 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 idiomas",
    "language_stats_header": "Idioma Teclas Caracteres Longitud promedio Longitud máxima Vacío Largo",
    "language_stats_row": "{lang}      {totalKeys}    {totalCharacters}    {averageKeyLength}    {maxKeyLength}    {emptyKeys}    {longKeys}",
    "size_variations_title": "Variaciones de tamaño",
    "size_variations_header": "Idioma Char Diff % Diff Problema",
    "size_variation_row": "{lang}      {characterDifference}    {percentageDifference}%    {problematic}",
    "problematic_yes": "Sí",
    "problematic_no": "No",
    "recommendations_title": "Recomendaciones",
    "recommendation_item": "{index}. {recommendation}",
    "problematic_key_detail": "{index}. Llave: '{key}' - Variaciones: {variations}",
    "generating_detailed_report": "Generando informe detallado...",
    "keysHaveSignificantSizeVariations": "Las claves tienen variaciones significativas de tamaño.",
    "longTranslationsDetected": "${lang} tiene traducciones ${data.longKeys} de más de 100 caracteres; considere dividirlas",
    "longer": "más extenso",
    "shorter": "más corto",
    "review_translations": "Considere revisar {lang} traducciones - son {percentageDifference}% {comparison} que la línea de base",
    "report_saved_to": "Informe guardado en: {reportPath}",
    "considerReviewingTranslations": "Considere revisar ${lang} traducciones: son ${data.percentageDifference}% más largas que el valor inicial",
    "csv_report_saved_to": "Informe CSV guardado en: {csvPath}",
    "human_report_saved": "Informe legible guardado: {reportPath}",
    "folder_summary_title": "Resumen de carpeta",
    "folder_summary_table_header": "Idioma Tamaño (KB) Claves Longitud 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 a nivel de clave en la consola",
    "too_many_keys_warning": "⚠️ Demasiadas claves para mostrar en la consola: consulte el archivo del informe detallado para obtener un análisis completo",
    "no_translation_files_found": "No se encontraron archivos de traducción",
    "analysis_completed": "Análisis completado en {duration}EM",
    "analysis_failed": "El análisis falló: {errorMessage}",
    "starting_analysis": "Iniciando análisis...",
    "found_files": "Encontró {count} archivos",
    "failed_to_parse_language_error": "No se pudo analizar {language} traducciones: {errorMessage}",
    "recommendations": {
      "keys_have_significant_size_variations": "Las claves tienen variaciones significativas de tamaño.",
      "consider_reviewing_translations": "Considere revisar {lang} traducciones - son {percentageDifference}% {comparison} que la línea de base",
      "long_translations_detected": "{lang} tiene {longKeys} traducciones más largo que {threshold} personajes: considere dividirlos"
    },
    "detailed_key_analysis_title": "Análisis clave detallado",
    "key_analysis_detail": "{lang}: {length} caracteres ({status}) - {translation}",
    "key_analysis_header": "Llave: {key}",
    "status_empty": "vacío",
    "status_long": "largo",
    "status_ok": "OK"
  },
  "usage": {
    "help_message": "Uso del analizador de uso I18n: nodo i18ntk-usage.js [opciones] Opciones: --source-dir <dir>     Directorio de origen para escanear (predeterminado: ./src) --i18n-dir <dir>       Directorio I18n (predeterminado: ./src/locales) --output-report Generar informe detallado --output-dir <dir>     Directorio de salida para informes (predeterminado: ./reports) --help Mostrar esta ayuda Ejemplos: nodo i18ntk-usage.js --output-report nodo i18ntk-usage.js --source-dir=./app --i18n-dir=./locales nodo i18ntk-usage.js --output-dir=./analysis --output-report",
    "source_directory_thissourcedir": "📁 Directorio de fuentes: {sourceDir}",
    "translationCompletenessTitle": "🌍 Integridad de la traducción:",
    "i18n_directory_thisi18ndir": "🌐 Directorio I18n: {i18nDir}",
    "failed_to_parse_filename_error": "⚠️ No se pudo analizar {fileName}: {errorMessage}",
    "analyzing_source_files": "🔍 Analizando archivos fuente...",
    "found_files_in_source": "📂 Encontrado {numFiles} archivos en el directorio fuente",
    "found_thisusedkeyssize_unique_": "🎯 Encontrado {usedKeysSize} llaves usadas únicas",
    "total_key_usages_totalkeysfoun": "📊 Usos totales de claves: {totalKeysFound}",
    "loading_available_translation_": "📋 Cargando claves de traducción disponibles...",
    "found_thisavailablekeyssize_av": "✅ Encontrado {availableKeysSize} llaves disponibles",
    "foundTranslationFiles": "✅ Encontrado {count} archivos de traducción",
    "errorReadingI18nDirectory": "⚠️ Error al leer el directorio i18n: {error}",
    "pressEnterToReturnToMenu": "📝 Pulsa Enter para volver al menú principal...",
    "notTranslatedKeysTotal": "⚠️ Claves no traducidas: {total}",
    "noSourceFilesFound": "⚠️ No se encontraron archivos fuente en el directorio fuente.",
    "reviewNotTranslatedKeys": "💡 Reseña de claves no traducidas",
    "analysisCompletedSuccessfully": "🎉 ¡Análisis completado con éxito!",
    "detectedSourceDirectory": "Directorio de origen detectado: {sourceDir}",
    "detectedI18nDirectory": "Directorio i18n detectado: {i18nDir}",
    "fileInfo": "📄 {namespace}: {keys} llaves",
    "failedToAnalyzeUsage": "❌ No se pudo analizar el uso: {error}",
    "failedToAnalyzeFile": "❌ No se pudo analizar el archivo: {error}",
    "failedToExtractKeys": "❌ No se pudieron extraer las claves de {filePath}: {error}",
    "analysisFailedError": "❌ El análisis falló: {error}",
    "analyzerInitialized": "Analizador inicializado",
    "analyzerInitFailed": "La inicialización del analizador falló: {error}",
    "argsParsed": "Argumentos analizados",
    "processedFiles": "Procesado {processedFiles} de {totalFiles} archivos.",
    "argsParseFailed": "Error al analizar el argumento: {error}",
    "translationDiscoveryError": "Error de descubrimiento de traducción: {error}",
    "fileTraversalError": "Error de recorrido de archivo: {error}",
    "sourceEqualsI18nWarn": "{reason}. El an?lisis de uso no escanear? archivos de idioma como c?digo fuente.",
    "i18nEqualsSourceWarn": "⚠️ El directorio I18n y el directorio fuente son los mismos. Esto puede causar problemas con el análisis.",
    "usageAnalysisFailed": "⚠️ Error en el análisis de uso: {error}",
    "translationFileParseError": "⚠️ Error de análisis del archivo de traducción: {error}",
    "translationKeysLoadError": "⚠️ Error al cargar las claves de traducción: {error}",
    "languageCompletenessStats": "🌐 {language}: {translated}/{total} ({completeness}% traducido)",
    "missingKeysCount": "⚠️ Teclas faltantes: {count}",
    "analyzingTranslationCompleteness": "Analizando la integridad de la traducción...",
    "unusedKeysCount": "Claves no utilizadas: {count}",
    "usedKeysCount": "Llaves usadas: {count}",
    "availableKeysCount": "Claves disponibles: {count}",
    "analysisResults": "Resultados del análisis:",
    "i18nDirectoryNotFound": "⚠️ No se encontró el directorio I18n. Por favor revisa la ruta.",
    "sourceDirectoryNotFound": "⚠️ Directorio fuente no encontrado: {dir}",
    "checkUsage": {
      "title": "🔍 ANÁLISIS DE USO DE I18NTK",
      "analyzing_source_files": "🔍 Analizando archivos fuente...",
      "source_directory_thissourcedir": "📁 Directorio de fuentes: {sourceDir}",
      "i18n_directory_thisi18ndir": "📁 directorio i18n: {i18nDir}",
      "found_files_in_source": "✅ Encontrado {numFiles} archivos en el directorio fuente",
      "no_source_files_found": "⚠️ No se encontraron archivos fuente en el directorio especificado",
      "processedFiles": "📊 Procesado {processedFiles} de {totalFiles} archivos",
      "failedToProcessFile": "❌ No se pudo procesar",
      "found_thisusedkeyssize_unique_": "🔍 Encontrado {usedKeysSize} llaves usadas únicas",
      "total_key_usages_totalkeysfoun": "📊 Usos totales de claves: {totalKeysFound}",
      "loading_available_translation_": "📂 Cargando claves de traducción disponibles...",
      "found_thisavailablekeyssize_av": "✅ Encontrado {availableKeysSize} llaves disponibles",
      "message": "Analizando el uso de claves de traducción en todo su 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 utilizadas: {usedKeysSize}",
      "dynamic_keys_detected_dynamick": "⚡ Teclas dinámicas detectadas: {dynamicKeysLength}",
      "unused_keys_unusedkeyslength": "🗑️ Claves no utilizadas: {unusedKeysLength}",
      "missing_keys_missingkeyslength": "❌ Teclas faltantes: {missingKeysLength}",
      "translation_completeness_title": "📈 INTEGRIDAD DE LA TRADUCCIÓN",
      "language_completeness_stats": "{language}: {translated}/{total} llaves ({percentage}%)",
      "n_sample_unused_keys": "🗑️ MUESTRAS DE LLAVES NO UTILIZADAS (primeras 5):",
      "key": "🔑 {key}",
      "and_unusedkeyslength_5_more": "... y {count} más llaves sin usar",
      "n_sample_missing_keys": "❌ MUESTRA DE TECLAS FALTANTES (primeras 5):",
      "and_missingkeyslength_5_more": "... y {count} más llaves faltantes",
      "n_generating_detailed_report": "📊 Generando informe detallado...",
      "report_saved_reportpath": "📄 Informe guardado: {reportPath}",
      "n_recommendations": "💡 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 que faltan para mantener la coherencia",
      "review_dynamic_keys_manually_t": "🔍 Revisar las claves dinámicas manualmente (pueden ser válidas)",
      "all_translation_keys_are_prope": "✅ ¡Todas las claves de traducción se utilizan correctamente!",
      "n_next_steps": "🎯 PRÓXIMOS PASOS:",
      "2_check_the_detailed_report_fo": "2. Consulte el informe detallado para conocer problemas específicos.",
      "help_message": "Uso del analizador de uso I18n: nodo i18ntk-usage.js [opciones] Opciones: --source-dir <dir>     Directorio de origen para escanear (predeterminado: ./src) --i18n-dir <dir>       Directorio I18n (predeterminado: ./src/locales) --output-report Generar informe detallado --output-dir <dir>     Directorio de salida para informes (predeterminado: ./reports) --help Mostrar esta ayuda Ejemplos: nodo i18ntk-usage.js --output-report nodo i18ntk-usage.js --source-dir=./app --i18n-dir=./locales nodo i18ntk-usage.js --output-dir=./analysis --output-report",
      "1_review_the_analysis_results": "1. Revise los resultados del análisis en la consola o en el informe generado.",
      "2_run_with_outputreport_for_de": "2. Ejecute con --output-report para obtener un informe detallado.",
      "3_remove_unused_keys_or_add_mi": "3. Elimine las claves no utilizadas o agregue las claves que faltan a su código fuente.",
      "4_rerun_analysis_to_verify_imp": "4. Vuelva a ejecutar el análisis para verificar las mejoras.",
      "noSourceFilesFound": "No se encontraron archivos fuente para analizar.",
      "i18nDirectoryNotFound": "Directorio I18n no encontrado: {i18nDir}",
      "noTranslationLanguagesFound": "No se encontraron idiomas de traducción.",
      "failedToAnalyzeFile": "No se pudo analizar el archivo {filePath}: {error}",
      "failedToAnalyzeLanguage": "No se pudo analizar el idioma {language}: {error}",
      "translationCompletenessAnalysisFailed": "El análisis de integridad de la traducción falló: {error}",
      "n": "\\norte"
    },
    "complete": {
      "configLoadedSuccessfully": "Configuración cargada exitosamente",
      "configLoadingFailed": "Error al cargar la configuración",
      "title": "🌍 TERMINACIÓN DE LA TRADUCCIÓN I18NTK",
      "separator": "===============================================================",
      "sourceDir": "📁 Directorio de fuentes: {sourceDir}",
      "sourceLanguage": "🌐 Idioma de origen: {sourceLanguage}",
      "dryRunMode": "🧪 Modo de ejecución en seco: no se realizarán cambios",
      "languages": "🌍 Idiomas disponibles: {languages}",
      "addingMissingKeys": "➕ Agregar claves faltantes a los archivos de traducción...",
      "processing": "🔄 Procesamiento {language}...",
      "addedKeys": "✅ Agregado {count} llaves faltantes",
      "changeDetails": "📝 {file}: {key}",
      "andMore": "...y {count} más",
      "noChangesNeeded": "✅ No se necesitan cambios para {language}",
      "summaryTitle": "📊 RESUMEN DE FINALIZACIÓN",
      "totalChanges": "📝 Cambios totales: {totalChanges}",
      "languagesProcessed": "🌍 Idiomas procesados: {languagesProcessed}",
      "missingKeysAdded": "➕ Se agregaron claves faltantes: {missingKeysAdded}",
      "nextStepsTitle": "📋 PRÓXIMOS PASOS",
      "nextStep1": "1. Ejecute el análisis de uso:",
      "nextStep2": "nodo i18ntk-usage.js --informe de salida",
      "nextStep3": "2. Validar traducciones:",
      "nextStep4": "nodo i18ntk-validate.js",
      "nextStep5": "3. Analizar patrones:",
      "nextStep6": "nodo i18ntk-analyze.js",
      "allKeysAvailable": "🎉 ¡Todas las claves de traducción ya están disponibles!",
      "runWithoutDryRun": "💡 Ejecute sin --dry-run para aplicar cambios",
      "deletingOldReport": "🗑️ Eliminando informe antiguo...",
      "generatingFreshAnalysis": "📊 Generando nuevos análisis de uso...",
      "couldNotGenerate": "❌ No se pudo generar el análisis de uso",
      "reportNotFound": "📋 Informe de uso no encontrado. Usando claves comunes...",
      "foundMissingKeys": "📋 Encontrado {count} claves faltantes en el 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": "No se pudo analizar el idioma",
    "translationCompletenessAnalysisFailed": "Error en el análisis de integridad de la traducción",
    "failedToProcessFile": "No se pudo procesar el archivo:",
    "failedToSaveReport": "No se pudo guardar el informe de uso: {error}",
    "i18nDirectoryDoesNotExist": "El directorio I18n no existe: {dir}",
    "reportSavedTo": "Informe de uso guardado en: {reportPath}",
    "sourceDirectoryDoesNotExist": "El directorio de origen no existe: {dir}",
    "noSourceDirectoryConfigured": "(sin configurar)"
  },
  "validate": {
    "help_message": "Uso del validador de traducción I18n: nodo i18ntk-validate.js [opciones] Opciones: --source-dir <dir>     Directorio de origen para escanear (predeterminado: ./src) --i18n-dir <dir>       Directorio I18n (predeterminado: ./src/locales) --output-report Generar informe detallado --output-dir <dir>     Directorio de salida para informes (predeterminado: ./reports) --help Mostrar esta ayuda Ejemplos: nodo i18ntk-validate.js --output-report nodo i18ntk-validate.js --source-dir=./app --i18n-dir=./locales nodo i18ntk-validate.js --output-dir=./analysis --output-report",
    "title": "🔍 Validador de traducción I18n",
    "message": "Iniciando proceso de validación...",
    "sourceDirectory": "📁 Directorio de fuentes: {dir}",
    "sourceLanguage": "🌍 Idioma de origen: {sourceLanguage}",
    "strictMode": "⚙️ Modo estricto: {mode}",
    "noTargetLanguages": "No hay idiomas de destino configurados; omitiendo la validación del objetivo. Agregue idiomas a través de \"i18ntk init --languages=de,fr\".",
    "validatingLanguages": "🌍 Idiomas de validación: {langs}",
    "validatingLanguage": "🔍 Idioma de validación: {lang}",
    "filesCount": "📄 Archivos: {count}",
    "keysCount": "🔑 Claves: {count}",
    "missingFilesCount": "📁 Archivos faltantes: {count}",
    "syntaxErrorsCount": "❌ Errores de sintaxis: {count}",
    "translationPercentage": "🎯 Traducción: {percentage}% ({translated}/{total} llaves)",
    "validationSummary": "📊 RESUMEN DE VALIDACIÓN",
    "validation_failed": "❌ La validación falló: {error}",
    "totalErrors": "❌ Errores totales: {count}",
    "totalWarnings": "⚠️ Advertencias totales: {count}",
    "errorsSection": "❌ ERRORES",
    "warningsSection": "⚠️ ADVERTENCIAS",
    "recommendationsSection": "💡 RECOMENDACIONES",
    "fixErrorsFirst": "1. Primero solucione todos los errores",
    "resolveMissingFilesAndSyntaxErrors": "1. Resolver archivos faltantes y errores de sintaxis",
    "fixStructuralInconsistencies": "2. Solucionar inconsistencias estructurales",
    "completeMissingTranslations": "3. Completa las traducciones que faltan",
    "rerunValidation": "4. Vuelva a ejecutar la validación para verificar las correcciones.",
    "addressWarnings": "Abordar las advertencias para mejorar la calidad.",
    "reviewWarnings": "Revisar las advertencias y corregirlas cuando corresponda",
    "considerRunningWithStrict": "2. Considere ejecutar con el indicador --strict para una validación más estricta",
    "allValidationsPassed": "🎉 ¡Todas las validaciones pasaron!",
    "considerRunningUsageAnalysis": "Considere ejecutar un análisis de uso: nodo i18ntk-usage.js",
    "deletedOldReport": "🗑️ Informe de validación antiguo eliminado",
    "sourceDir": "📁 Directorio de fuentes: {sourceDir}",
    "i18nDir": "🌐 Directorio I18n: {i18nDir}",
    "loadingTranslationFiles": "📋 Cargando archivos de traducción...",
    "foundTranslationFilesCount": "✅ Encontrado {count} archivos de traducción",
    "analyzingTranslations": "🔍Analizando traducciones...",
    "validationCompletedSuccessfully": "🎉 ¡La validación se completó con éxito!",
    "validationErrorsFound": "⚠️ Errores de validación encontrados: {count}",
    "validationWarningsFound": "⚠️ Advertencias de validación encontradas: {count}",
    "validationPassed": "✅ Validación aprobada sin errores",
    "validationFailed": "La validación falló: {error}",
    "startingValidationProcess": "🔍Iniciando proceso de validación...",
    "validationProcessCompletedSuccessfully": "✅ Proceso de validación completado con éxito",
    "stackTrace": "Seguimiento de pila: {stack}",
    "authenticationFailed": "❌ Error de autenticación. Acceso denegado.",
    "fatalValidationError": "❌ Error fatal de validación: {error}",
    "configAccess": "Accediendo a la configuración para su validación",
    "configValidated": "Configuración validada exitosamente",
    "configError": "Error de configuración: {error}",
    "validatorInit": "Inicializando el validador I18n",
    "validatorInitialized": "Validador I18n inicializado exitosamente",
    "validatorInitError": "Error de inicialización del validador: {error}",
    "argsParsing": "Analizando argumentos de línea de comando",
    "argsParsed": "Argumentos de la línea de comando analizados correctamente",
    "argsParseError": "Error de análisis de argumentos: {error}",
    "languagesScan": "Escaneando idiomas disponibles",
    "languagesFound": "Encontró {count} idiomas",
    "languagesScanError": "Error de escaneo de idioma: {error}",
    "filesScan": "Encontró {count} archivos en {language}",
    "filesScanError": "Error de escaneo de archivos: {error}",
    "jsonValidated": "Sintaxis JSON validada: {filePath}",
    "jsonValidationError": "Error de validación JSON: {error}",
    "languageValidation": "Idioma de validación: {language}",
    "languageValidationError": "Error de validación de idioma: {error}",
    "fileDeleted": "Archivo eliminado",
    "runStarted": "Iniciando ejecución de validación",
    "runCompleted": "La ejecución de validación se completó con éxito",
    "runError": "La ejecución de validación falló: {error}",
    "scriptExecution": "Ejecución de script",
    "validationCompleted": "Validación completada",
    "validationError": "Error de validación: {error}",
    "separator": "━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━",
    "languageHeader": "🌐 Idioma: {language}",
    "validationResults": "📊 Resultados de la validación",
    "noErrors": "✅ No se encontraron errores",
    "noWarnings": "✅ No se encontraron advertencias",
    "summaryHeader": "📋 RESUMEN GENERAL",
    "progressIndicator": "⏳ Procesamiento...",
    "completedIndicator": "✅ Completado",
    "errorIndicator": "❌Error",
    "warningIndicator": "⚠️ Advertencia",
    "infoIndicator": "ℹ️ Información",
    "sourceDirNotConfigured": "Directorio de origen no configurado",
    "sourceLanguageNotConfigured": "Idioma de origen no configurado",
    "translationFunctionNotInitialized": "La función de traducción no se inicializó correctamente",
    "sourceLanguageDirectoryNotFound": "Directorio del idioma de origen 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": "Se detectaron rutas de directorio no válidas",
    "invalidSampleFilePath": "Ruta de archivo de muestra no válida",
    "failedToCreateSampleTranslationFile": "No se pudo crear el archivo de traducción de muestra",
    "invalidFilePathDetected": "Se detectó una ruta de archivo no válida",
    "failedToWriteFile": "No se pudo escribir el archivo: {filePath}",
    "invalidSourceDirectory": "Directorio fuente no válido: {sourceDir}",
    "invalidSourceLanguageDirectory": "Directorio de idioma de origen no válido: {sourceDir}"
  },
  "adminCli": {
    "setupPinProtectionTitle": "🔐 Configuración de la protección con PIN de administrador",
    "setupPinProtectionDescription": "Esto requerirá un PIN de 4 a 6 dígitos para operaciones administrativas.",
    "enablePinProtectionPrompt": "¿Quieres habilitar la protección con PIN de administrador?",
    "setupCancelled": "Se canceló la configuración de protección del PIN de administrador.",
    "enterPinPrompt": "Ingrese un PIN de 4 a 6 dígitos:",
    "pinFormatError": "❌ El PIN debe tener entre 4 y 6 dígitos. Por favor inténtalo de nuevo.",
    "confirmPinPrompt": "Confirmar PIN:",
    "pinMismatchError": "❌ Los PIN no coinciden. Por favor inténtalo de nuevo.",
    "pinProtectionEnabledSuccess": "✅ ¡La protección con PIN de administrador se habilitó correctamente!",
    "pinRecoveryWarning": "⚠️ Recuerde su PIN: no podrá recuperarlo si lo pierde.",
    "setupPinProtectionFailed": "❌ No se pudo configurar la protección con PIN de administrador.",
    "errorSettingUpPin": "❌ Error al configurar el PIN de administrador: {message}",
    "authRequiredForOperation": "🔐 Se requiere autenticación de administrador para: {operation}",
    "invalidPinFormat": "❌ Formato de PIN no válido. El PIN debe tener entre 4 y 6 dígitos.",
    "authenticationSuccess": "✅ ¡Autenticación exitosa!",
    "invalidPinAttemptsRemaining": "❌ PIN no válido. {remaining} intentos restantes.",
    "authenticationFailedAccessDenied": "❌ Error de autenticación. Acceso denegado.",
    "authenticationError": "❌ Error de autenticación: {message}",
    "pinProtectionNotEnabled": "La protección con PIN de administrador no está habilitada actualmente.",
    "disablingPinProtectionTitle": "🔓 Deshabilitar la protección con PIN de administrador",
    "confirmDisablePinProtection": "¿Está seguro de que desea desactivar la protección con PIN de administrador?",
    "operationCancelled": "Operación cancelada.",
    "pinProtectionDisabledSuccess": "✅ Protección con PIN de administrador deshabilitada.",
    "disablePinProtectionFailed": "❌ No se pudo desactivar la protección con PIN de administrador.",
    "errorDisablingPinProtection": "❌ Error al desactivar la protección de administrador: {message}",
    "adminProtectionStatusTitle": "🔐 Estado de protección del administrador",
    "statusEnabled": "Estado: ✅ HABILITADO",
    "protectionDetails": "Protección: Se requiere PIN de 4 a 6 dígitos para operaciones de administración",
    "lockoutDetails": "Bloqueo: 3 intentos fallidos = bloqueo de 15 minutos",
    "statusDisabled": "Estado: ❌ DESHABILITADO",
    "noAuthRequired": "Protección: No se requiere autenticación",
    "unprotectedRisk": "Riesgo: Las operaciones administrativas están desprotegidas",
    "errorCheckingAdminStatus": "❌ Error al verificar el estado del administrador: {message}",
    "authRequired": "🔐 Se requiere autenticación de administrador.",
    "invalidPin": "❌ PIN no válido.",
    "authSuccess": "✅ ¡Autenticación exitosa!",
    "adminPinSetupCli": "admin_pin_setup_cli",
    "adminAuthFailedCli": "admin_auth_failed_cli",
    "adminAuthDisabledCli": "admin_auth_disabled_cli",
    "protectedAccess": "Acceso protegido: se requiere autenticación de administrador para operaciones confidenciales.",
    "enterPin": "Ingrese el PIN de administrador:",
    "accessGranted": "Acceso concedido."
  },
  "adminPin": {
    "setup_title": "🔐 Configuración del PIN de administrador",
    "setup_separator": "===============================================================",
    "setup_description": "Cree un PIN de 4 a 6 dígitos para el acceso de administrador a configuraciones confidenciales.",
    "required_for_title": "Este PIN será necesario para:",
    "required_for_1": "• Cambiar la configuración de seguridad",
    "required_for_2": "• Modificación de configuraciones avanzadas",
    "required_for_3": "• Acceder a herramientas de depuración",
    "required_for_4": "• Restablecer la configuración",
    "setup_note": "💡 Nota: Verás asteriscos (*) a medida que escribes; estos son solo caracteres enmascarantes.",
    "setup_digits_only": "Sólo se aceptan los números del 0 al 9 como dígitos del PIN.",
    "invalid_pin_length": "❌ PIN no válido. Debe tener entre 4 y 6 dígitos (solo números del 0 al 9).",
    "invalid_pin_example": "Ejemplo: 1234 o 567890",
    "pins_do_not_match": "❌ Los PIN no coinciden.",
    "setup_success": "✅ ¡El PIN de administrador se ha configurado correctamente!",
    "setup_warning": "⚠️ Mantenga este PIN seguro. No se puede recuperar si se pierde.",
    "setup_error": "❌ Error al configurar el PIN:",
    "session_expired": "⏰ La sesión de administrador expiró por inactividad.",
    "no_pin_set_setting_up": "⚠️ No se ha establecido ningún PIN de administrador. Configurando PIN...",
    "no_pin_configured_access_denied": "⚠️ No hay PIN de administrador configurado. Acceso denegado.",
    "use_admin_settings_to_set_pin": "💡 Utilice la configuración de administrador para configurar un PIN primero.",
    "locked_out": "🔒 El acceso de administrador está bloqueado debido a demasiados intentos fallidos.",
    "wait_before_retry": "Espere 5 minutos antes de volver a intentarlo.",
    "access_granted": "✅ Acceso de administrador concedido.",
    "incorrect_pin": "❌ PIN incorrecto. {attempts} intentos restantes.",
    "verify_pin_error": "❌ Error al verificar el PIN:",
    "already_configured": "✅ El PIN de administrador ya está configurado.",
    "optional_setup_title": "🔐 Configuración del PIN de administrador (opcional)",
    "optional_setup_description": "La protección con PIN de administrador agrega seguridad para operaciones confidenciales como:",
    "setup_prompt": "¿Le gustaría configurar un PIN de administrador? (sí/no):",
    "skipping_setup": "⏭️ Omitir la configuración del PIN de administrador. Puedes configurarlo más tarde en la configuración.",
    "setup_prompt_error": "❌ Error durante el mensaje de configuración del PIN:",
    "protectedAccess": "Acceso protegido: se requiere autenticación de administrador para operaciones confidenciales.",
    "enterPin": "Ingrese el PIN de administrador:",
    "accessGranted": "Acceso concedido.",
    "invalidPin": "❌ PIN no válido. Por favor inténtalo de nuevo.",
    "weak_pin_warning": "⚠️ ADVERTENCIA: Este PIN parece ser débil o común.",
    "weak_pin_suggestion": "💡 Considere utilizar un PIN más seguro con dígitos variados.",
    "use_anyway_prompt": "Escriba \"sí\" para usarlo de todos modos o presione Entrar para elegir un PIN diferente:",
    "enter_new_pin": "Ingrese el nuevo PIN de administrador (4-6 dígitos):",
    "confirm_pin": "Confirmar PIN de administrador:",
    "not_set": "No establecido",
    "pin_display_mask": "####"
  },
  "debug": {
    "title": "🔧 Herramientas de depuración",
    "separator": "===============================================================",
    "mainDebuggerSystemDiagnostics": "1. Diagnóstico del sistema",
    "_consoleTranslationsCheck": "// 2. Verificación de traducciones de la consola",
    "_exportMissingKeys": "// 3. Exportar claves de traducción faltantes",
    "_replaceHardcodedConsole": "// 4. Reemplazar cadenas de consola codificadas",
    "_consoleKeyChecker": "// 5. Comprobador de claves de consola",
    "debugLogs": "2. Registros de depuración",
    "backToMainMenu": "0. Volver al menú principal",
    "selectOption": "Seleccione una herramienta de depuración:",
    "runningDebugTool": "Correr {displayName}...",
    "debugToolNotFound": "❌ Herramienta de depuración no encontrada: {toolName}",
    "errorRunningDebugTool": "Error al ejecutar la herramienta de depuración '{displayName}': {error}",
    "recentDebugLogs": "📄 Registros de depuración recientes",
    "noDebugLogsFound": "❌ No se encontraron registros de depuración.",
    "debugLogsDirectoryNotFound": "❌ No se encontró el directorio de registros de depuración.",
    "selectLogPrompt": "Seleccione el archivo de registro para ver (1-{count}):",
    "invalidChoiceSelectRange": "Elección no válida. Seleccione entre el rango disponible.",
    "contentOf": "📄 Contenido de {filename}:",
    "pressEnterToContinue": "Presione Entrar para continuar..."
  },
  "detect_language_mismatches": {
    "tool_title": "🔍 Herramienta de detección de discrepancias de idioma",
    "separator": "=======================================",
    "analyzing_file": "📄 Analizando {language}.json...",
    "error_analyzing_file": "❌ Error al analizar {filename}: {errorMessage}",
    "results_title": "📊 RESULTADOS DE LA DETECCIÓN DE DISCORDANCIA DE IDIOMA",
    "results_separator": "==========================================",
    "summary_title": "📋 RESUMEN:",
    "total_files_analyzed": "Archivos totales analizados: {totalFiles}",
    "files_with_mismatches": "Archivos con discrepancias: {filesWithMismatches}",
    "total_mismatches_found": "Total de discrepancias encontradas: {totalMismatches}",
    "no_mismatches_found": "✅ ¡No se encontraron diferencias de idioma! Todas las traducciones parecen estar en sus idiomas correctos.",
    "detailed_results_title": "🔍 RESULTADOS DETALLADOS:",
    "file_mismatch_header": "📄 {filename} ({language})",
    "mismatches_count": "Encontró {count} discrepancias:",
    "mismatch_details": "{index}. Llave: {key}",
    "mismatch_value": "Valor: \"{value}\"",
    "mismatch_issue": "Asunto: {description}",
    "recommendations_title": "💡 RECOMENDACIONES:",
    "recommendation_1": "1. Revisa y traduce todas las entradas marcadas con [TRADUCIR]",
    "recommendation_2": "2. Reemplace los prefijos de idioma (por ejemplo, [DE], [FR]) con traducciones adecuadas",
    "recommendation_3": "3. Traducir el texto en inglés al idioma de destino apropiado.",
    "recommendation_4": "4. Utilice equivalentes en el idioma nativo para todo el texto de cara al usuario.",
    "recommendation_5": "5. Ejecute esta herramienta nuevamente después de realizar correcciones para verificar las correcciones.",
    "detailed_report_saved": "📄 Informe detallado guardado en: {reportPath}",
    "error_saving_report": "❌ Error al guardar informe: {errorMessage}",
    "auto_fix_mode": "🔧 Modo de reparación automática {dryRun}",
    "auto_fix_separator": "=======================================",
    "fixed_file": "✅ Fijo {filename}",
    "auto_fix_summary_title": "📊 Resumen de reparación automática:",
    "total_fixes_applied": "Correcciones totales aplicadas: {count}",
    "preview_fixes_title": "🔍 Vista previa de correcciones:",
    "fix_details": "{file}: {key}      Viejo: \"{old}\"      Nuevo: \"{new}\"",
    "more_fixes": "... y {count} más correcciones",
    "run_with_apply_fixes": "💡 Ejecute con --apply para aplicar estas correcciones",
    "error_general": "❌Error:",
    "mainDebuggerSystemDiagnostics": "Depurador principal/Diagnóstico del sistema",
    "exportMissingKeys": "Exportar claves faltantes",
    "replaceHardcodedConsole": "Reemplazar la consola codificada",
    "consoleKeyChecker": "Comprobador de claves de consola",
    "debugLogs": "Registros de depuración",
    "backToMainMenu": "Volver al menú principal",
    "invalidChoiceSelectRange": "❌ Elección no válida. Seleccione un número dentro del rango mostrado.",
    "runningDebugTool": "Ejecutando la herramienta de depuración: {displayName}",
    "debugToolNotFound": "Herramienta de depuración '{toolName}' extraviado.",
    "recentDebugLogs": "Registros de depuración recientes",
    "noDebugLogsFound": "No se encontraron registros de depuración.",
    "logEntry": "Entrada de registro: {timestamp} - {message}",
    "debugLogsDirectoryNotFound": "No se encontró el directorio de registros de depuración."
  },
  "help": {
    "title": "📊 AYUDA DE GESTIÓN I18NTK",
    "usage": "Uso: nodo principal/manage/index.js [opciones]",
    "interactiveMode": "💡 Utilice: nodo principal/manage/index.js --command=<command> para ejecución directa",
    "showHelp": "📖 Utilice: node main/manage/index.js --ayuda para los comandos disponibles",
    "availableCommands": "📖 Comandos disponibles:",
    "initProject": "🚀 Inicializar nuevos idiomas",
    "analyzeTranslations": "🔍 Analizar traducciones",
    "validateTranslations": "✅ Validar traducciones",
    "checkUsage": "📊 Verifique el uso de claves",
    "initCommand": "init - Inicializar nuevos idiomas",
    "analyzeCommand": "analizar - Analizar traducciones",
    "validateCommand": "validar - Validar traducciones",
    "usageCommand": "uso - Verificar el uso de claves",
    "sizingCommand": "dimensionamiento - Analizar dimensionamiento",
    "completeCommand": "complete - Traducciones completas (100% de cobertura)",
    "summaryCommand": "resumen - Mostrar el estado del proyecto",
    "debugCommand": "debug - Problemas de traducción de depuración",
    "scannerCommand": "escáner - Escanear en busca de llaves",
    "translateCommand": "traducir: traducción automática de archivos locales",
    "menu": {
      "pressEnterToContinue": "Presione Entrar para continuar...",
      "title": "🌐 MENÚ DE GESTIÓN I18NTK",
      "description": "Menú interactivo para gestionar la internacionalización",
      "exit": "🚪 Salir"
    },
    "commands": {
      "init": "init - Inicializar nuevos idiomas",
      "analyze": "analizar - Analizar traducciones",
      "validate": "validar - Validar traducciones",
      "usage": "uso - Verificar el uso de claves",
      "sizing": "dimensionamiento - Analizar dimensionamiento",
      "complete": "complete - Traducciones completas (100% de cobertura)",
      "summary": "resumen - Mostrar el estado del proyecto",
      "debug": "debug - Problemas de traducción de depuración"
    },
    "options": {
      "sourceDir": "--directorio-fuente <dir>     Directorio fuente para analizar",
      "output": "--producción <file>        Archivo de salida para el informe.",
      "verbose": "--verbose, -v Mostrar información detallada",
      "keepReports": "--keep-reports Conserva los informes existentes",
      "deleteReports": "--delete-reports Eliminar informes existentes",
      "help": "--help, -h Mostrar esta ayuda"
    },
    "examples": {
      "title": "Ejemplos:",
      "example1": "nodo i18ntk-manage.js",
      "example2": "nodo i18ntk-manage.js --source-dir ./locales",
      "example3": "nodo i18ntk-manage.js --resumen de salida-report.txt",
      "example4": "nodo i18ntk-manage.js --detallado",
      "example5": "nodo i18ntk-manage.js --source-dir ./locales --output report.json"
    },
    "features": {
      "initProject": "🚀 Inicializar nuevos idiomas",
      "analyzeTranslations": "🔍 Analizar traducciones",
      "validateTranslations": "✅ Validar traducciones",
      "checkUsage": "📊 Verifique el uso de claves",
      "completeTranslations": "🎯 Traducciones completas (100% de cobertura)",
      "showSizing": "📏 Analizar tallas",
      "runWorkflow": "🔄 Ejecute el flujo de trabajo completo",
      "showStatus": "📋 Mostrar estado del proyecto",
      "deleteReports": "🗑️ Eliminar todos los informes",
      "changeLanguage": "🌍 Cambiar idioma de la interfaz de usuario",
      "settings": "⚙️ Configuración",
      "showHelp": "❓ Ayuda",
      "debugTools": "🔧 Herramientas de depuración"
    },
    "messages": {
      "selectOption": "Seleccione una opción:",
      "invalidOption": "Opción no válida. Por favor inténtalo de nuevo.",
      "operationCompleted": "✅ ¡Operación finalizada con éxito!",
      "pressEnter": "Presione Entrar para continuar...",
      "goodbye": "👋 ¡Adiós!",
      "unknownCommand": "Comando desconocido: {command}",
      "nonInteractive": "⚠️ Se detectó modo no interactivo. Menú mostrado solo como referencia."
    },
    "i18n_helper": {
      "translation_file_not_found": "Archivo de traducción no encontrado: {translationFile}",
      "error_loading_translations": "Error al cargar traducciones: {errorMessage}",
      "translation_not_found": "Traducción no encontrada para clave: {key}",
      "translation_key_not_string": "La clave de traducción no se resuelve en una cadena: {key}",
      "error_reading_locales_directory": "Error al leer el directorio local: {errorMessage}"
    }
  },
  "init": {
    "initializationTitle": "🚀 Kit de herramientas de gestión i18n: inicialización de proyectos",
    "initializationCancelled": "🚫 Inicialización cancelada por el usuario.",
    "sourceDirectoryLabel": "📁 Directorio de fuentes: {dir}",
    "requiredTitle": "Inicialización requerida",
    "requiredBody": "Este proyecto debe inicializarse antes de ejecutar este comando.",
    "promptRunNow": "¿Le gustaría ejecutar la inicialización ahora? (sí/no):",
    "sourceLanguageLabel": "🌍 Idioma de origen: {language}",
    "detectedI18nFrameworks": "🔍 Marco(s) i18n detectado(s): {frameworks}",
    "pinMustBe4Digits": "🔐 El PIN debe tener 4 dígitos.",
    "existingDirectoriesFound": "📁 Directorios de traducción existentes encontrados:",
    "useExistingDirectoryPrompt": "¿Quiere utilizar el directorio existente? (t/n)",
    "selectDirectoryPrompt": "Seleccione un directorio ingresando el número (o elija 'Crear nuevo directorio')",
    "enterNewDirectoryName": "Ingrese el nombre de su nuevo directorio de traducción",
    "createdNewDirectory": "✅ Nuevo directorio creado: {dir}",
    "directoryAlreadyExists": "⚠️ El directorio ya existe: {dir}",
    "invalidDirectoryName": "❌ Se proporcionó un nombre de directorio no válido.",
    "usingExistingDirectory": "Usando el directorio existente: {dir}",
    "adminPinSetupOptional": "🔐 Configuración del PIN de administrador opcional (recomendado por seguridad)",
    "adminPinSeparator": "------------------------------",
    "adminPinDescription1": "PIN de administrador: número de 4 dígitos para acceso seguro",
    "adminPinDescription2": "Déjelo en blanco para omitir la configuración del PIN",
    "adminPinDescription3": "Si configura un PIN, será necesario para todas las acciones seguras futuras.",
    "adminPinDescription4": "Cifrado AES-256-GCM utilizado para el almacenamiento seguro del PIN.",
    "adminPinSetupPrompt": "Ingrese el PIN de administrador (4 dígitos) o déjelo en blanco para omitir:",
    "skippingAdminPinSetup": "Saltando la configuración del PIN de administrador...",
    "settingUpAdminPin": "🔐 Configurando el PIN de administrador...",
    "enterAdminPin": "Ingrese el PIN de administrador:",
    "confirmAdminPin": "Confirmar PIN de administrador:",
    "pinMismatch": "Los PIN no coinciden. Por favor inténtalo de nuevo.",
    "adminPinSetupSuccess": "🔐 ¡La configuración del PIN de administrador fue exitosa!",
    "adminPinSetupFailure": "🔐 Error al configurar el PIN de administrador. Por favor inténtalo de nuevo.",
    "adminProtectionEnabled": "🔐 Protección de administrador habilitada. Todas las acciones requieren autenticación con PIN.",
    "adminProtectionDisabled": "🔐 Protección de administrador deshabilitada. Todas las acciones ahora están disponibles sin PIN.",
    "autoDetectedI18nDirectory": "Directorio i18n detectado automáticamente: {directory}",
    "initializingProject": "⚙️ Inicializando la configuración del proyecto...",
    "createdSampleTranslationFile": "✅ Archivo de traducción de muestra creado: {file}",
    "languageSelectionTitle": "🌐 Configuración de idioma",
    "available": "Disponible",
    "defaultLanguages": "📝 Idiomas predeterminados: {languages}",
    "enterLanguageCodes": "🎯 Introduzca los códigos del idioma de destino (separados por comas, por ejemplo, de, es, fr, ru):",
    "targetLanguages": "🌍 Idiomas de destino",
    "foundSourceFiles": "📄 Encontrado {count} archivos fuente para analizar",
    "processingLanguage": "🔄 Idioma de procesamiento: {language}",
    "fileProcessingResult": "✅ Procesado {file}: {translated}/{total} llaves ({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": "⚠️ Falta: {count}",
    "initializationCompletedSuccessfully": "🎉 ¡La inicialización del proyecto se completó con éxito!",
    "nextStepsTitle": "🚀 Próximos pasos",
    "nextStep1": "1. Revise los archivos de traducción generados en su directorio local/",
    "nextStep2": "2. Agregue traducciones para cada idioma de destino.",
    "nextStep3": "3. Ejecute 'npm run i18ntk' nuevamente para validar las traducciones.",
    "detectedFrameworks": "✅ Marco(s) i18n detectado(s): {frameworks}",
    "setup": {
      "title": "Configuración",
      "question": "Pregunta de configuración",
      "opt_single": "Fila india",
      "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í/no):",
      "per_language_intro": "Ha elegido configurar los idiomas individualmente. Estos son los idiomas disponibles:",
      "available_languages": "Idiomas disponibles: {languages}",
      "include_prompt": "Ingrese códigos de idioma separados por comas para incluir (por ejemplo, 'de,fr,es'):"
    },
    "warnings": {
      "noPackageJson": "No se encontró ningún paquete.json. No se puede detectar automáticamente el marco i18n."
    },
    "errorsPackageJsonRead": "Error al leer paquete.json: {error}",
    "errorsNoFramework": "No se detectó ningún marco i18n. Instale uno o especifíquelo manualmente.",
    "suggestions": {
      "noFramework": "No se detectó ningún marco i18n. Considere usar uno de los siguientes:",
      "installFramework": "Para instalar un marco, ejecute: npm install <nombre-paquete>"
    },
    "frameworks": {
      "react": "- Reaccionar i18next (reaccionar-i18next)",
      "vue": "- Vue i18n (vue-i18n)",
      "i18next": "- i18siguiente (i18siguiente)",
      "nuxt": "- Nuxt i18n (@nuxtjs/i18n)",
      "svelte": "- Esbelto i18n (esbelto-i18n)"
    },
    "continueWithoutI18nPrompt": "No se detectó ningún marco i18n. ¿Quieres seguir sin uno? (sí/no):",
    "detectedI18nFramework": "Marco i18n detectado: {frameworks}",
    "existingDirectoryItem": "{index}. {location}",
    "usingExistingStructure": "Usando la estructura existente: {dir}",
    "creatingSourceDirectory": "Creando directorio fuente: {dir}",
    "creatingSourceLanguageDirectory": "Creando el directorio del idioma de origen: {dir}",
    "errors": {
      "errorExecutingCommand": "Error al ejecutar el comando: {error}",
      "sourceDirectoryNotFound": "Directorio fuente no encontrado: {dir}",
      "sourceLanguageDirectoryNotFound": "Directorio del idioma de origen no encontrado: {dir}",
      "noJsonFilesInSourceDirectory": "No se encontraron archivos JSON en el directorio fuente: {dir}",
      "invalidFilePathDetected": "Se detectó una ruta de archivo no válida",
      "initializationFailed": "La inicialización falló: {error}",
      "noFramework": "No se detectó ningún marco i18n. Continúe con el modo genérico.",
      "packageJsonRead": "Error al leer el paquete.json."
    },
    "processingFile": "Tratamiento {file} para {language}...",
    "fileAlreadyExistsMerging": "Archivo {file} ya existe. Fusionando nuevas claves.",
    "createdNewFile": "Nuevo archivo creado: {file}",
    "updatedFile": "Archivo actualizado: {file}",
    "skippingExcludedFile": "Salto a la comba {file} para {language} ya que está excluido.",
    "continuingWithoutAdminPin": "Continuar sin configurar el PIN de administrador.",
    "createdSourceLanguageDirectory": "Directorio de idioma de origen creado: {dir}",
    "errorSettingUpAdminPin": "Error al configurar el PIN de administrador: {error}",
    "noTargetLanguagesSpecified": "No se han especificado idiomas de destino.",
    "translationFilesCreatedWarning": "Los archivos de traducción se crearon con marcadores de posición; revisión antes del uso en producción.",
    "warningCannotReadSourceDir": "Advertencia: no se puede leer el directorio fuente {dir}: {error}",
    "warningInvalidLanguageCodes": "Advertencia: se ignoran los códigos de idioma no válidos: {languages}",
    "warningProceedingWithoutFramework": "Procediendo sin marco i18n detectado.",
    "backup": {
      "title": "Configuraci?n de copias de seguridad",
      "description": "Las copias de seguridad est?n desactivadas por defecto para evitar recursi?n y contaminaci?n del repositorio.",
      "enablePrompt": "?Activar copias de seguridad autom?ticas? (s/N): ",
      "keepPrompt": "?Cu?ntas copias conservar autom?ticamente (1-3, predeterminado 1)?: "
    },
    "completionSummaryTitle": "Resumen de finalizaci?n",
    "completionSummaryBasicTitle": "Resumen de finalizaci?n (b?sico)",
    "totalChanges": "Cambios totales: {count}",
    "languagesProcessed": "Idiomas procesados: {count}",
    "missingKeysAdded": "Claves faltantes a?adidas: {count}",
    "reportPrompt": "?Quieres generar un informe? (S/n): ",
    "reportGenerated": "Informe generado: {reportPath}",
    "reportFailed": "No se pudo generar el informe: {error}",
    "completionError": "Error durante la finalizaci?n: {error}",
    "optimize": {
      "title": "Optimizacion del tamano del paquete",
      "preview": "Ejecutando vista previa de optimizacion de locales...",
      "reduceTip": "Puedes reducir el tamano del paquete seleccionando solo los idiomas necesarios.",
      "prompt": "Quieres ejecutar la optimizacion interactiva ahora? (s/N): ",
      "starting": "Iniciando optimizacion interactiva de locales...",
      "completed": "Optimizacion del paquete completada.",
      "later": "Puedes ejecutar la optimizacion de locales mas tarde con:",
      "unavailable": "No se pudo ofrecer la optimizacion de locales: {error}"
    }
  },
  "language": {
    "title": "🌍 Cambiar idioma",
    "separator": "===============================================================",
    "current": "Idioma actual: {language}",
    "available": "Idiomas disponibles:",
    "languageOption": "{index}. {displayName}{current}",
    "backToMainMenu": "Volver al menú principal",
    "prompt": "Seleccione un idioma (0-8):",
    "cancelled": "Cambio de idioma cancelado.",
    "invalid": "Elección no válida. Por favor inténtalo de nuevo.",
    "changed": "El idioma cambió a: {language}",
    "changeFailed": "No se pudo cambiar el idioma: {error}",
    "pressEnterToContinue": "Presione Entrar para continuar..."
  },
  "maintainLanguagePurity": {
    "workflow_title": "🚀 Flujo de trabajo de mantenimiento de la pureza del lenguaje",
    "step1_title": "📊 PASO 1: Evaluación inicial de la pureza del lenguaje",
    "step2_title": "🔧 PASO 2: Detectar y corregir automáticamente discrepancias de idioma",
    "step3_title": "🌐 PASO 3: Aplicar traducciones automáticas",
    "step4_title": "✅ PASO 4: Evaluación final de la pureza del lenguaje",
    "workflow_error": "❌ Error de flujo de trabajo: {errorMessage}",
    "running_initial_validation": "Ejecutando la validación inicial de pureza del lenguaje...",
    "initial_assessment_complete": "✅ Evaluación inicial completa: {count} violaciones encontradas",
    "initial_assessment_warnings": "⚠️ Evaluación inicial completada con advertencias",
    "detecting_fixing_mismatches": "Detectar y corregir discrepancias de idioma...",
    "detection_complete_applying_fixes": "Detección completa. Aplicando correcciones automáticas...",
    "mismatch_fixes_complete": "✅ Corrección de discrepancias de idioma completadas: {count} correcciones aplicadas",
    "mismatch_fixes_warnings": "⚠️ Correcciones de discrepancias de idioma completadas con advertencias",
    "applying_automatic_translations": "Aplicando traducciones automáticas...",
    "translation_preview_complete": "Vista previa de la 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": "📊 Verifique el uso de claves",
      "complete": "🎯 Traducciones completas (100% de cobertura)",
      "sizing": "📏 Analizar tallas",
      "fix": "🛠️ Corregir traducciones de marcadores de posición",
      "scanner": "🔍 Escanee en busca de problemas con i18n",
      "translate": "🌐 Traducción automática",
      "workflow": "🔄 Ejecute el flujo de trabajo completo",
      "status": "📋 Mostrar estado del proyecto",
      "delete": "🗑️ Eliminar todos los informes",
      "language": "🌍 Cambiar idioma de la interfaz de usuario",
      "settings": "⚙️ Configuración",
      "help": "❓ Ayuda",
      "debug": "🔧 Herramientas de depuración",
      "exit": "🚪 Salir"
    },
    "update": "📦 Paquete de actualización",
    "goodbye": "👋 ¡Adiós!",
    "invalidChoice": "Elección no válida. Seleccione 0-15.",
    "returning": "Volviendo al menú principal...",
    "invalidOption": "Opción no válida. Por favor inténtalo de nuevo.",
    "nonInteractiveModeWarning": "Modo no interactivo detectado. Menú mostrado solo como referencia.",
    "useDirectExecution": "Uso: nodo principal/manage/index.js --command=<command> para ejecución directa.",
    "useHelpForCommands": "Utilice: node main/manage/index.js --ayuda para los comandos disponibles.",
    "returnToMainMenu": "Presione Entrar para regresar al Menú principal.",
    "pressEnterToContinue": "Presione Entrar 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 detectado automáticamente: {directory}",
    "executingCommand": "Ejecutando comando: {command}",
    "unknownCommand": "Comando desconocido: {command}",
    "languageOption": "{index}. {displayName}{current}",
    "debugTools": {
      "1": "Análisis de archivos de registro",
      "2": "Análisis de uso de claves de traducción",
      "3": "Análisis de integridad de la traducción",
      "4": "Análisis del formato de traducción.",
      "5": "Análisis del tipo de traducción",
      "6": "Análisis de la estructura de traducción."
    },
    "native_translations": {
      "exact_translation_found": "✅ {keyPath}: {value}",
      "no_exact_translation": "⚠️ No hay traducción exacta para '{keyPath}', se encontraron claves similares:",
      "similar_key": "- {key} ({similarity}% fósforo)",
      "processing_language_files": "🔄 Procesamiento {count} archivos de idioma...",
      "file_not_found": "⚠️ Archivo no encontrado: {file}",
      "processing_translations": "🌍 Procesamiento {code} traducciones...",
      "backup_created": "📋 Copia de seguridad creada: {filename}",
      "error_parsing_json": "❌ Error al analizar {code}.json: {errorMessage}",
      "existing_keys_found": "📊 {code}: Encontró {count} claves existentes",
      "error_writing_json": "❌ Error al escribir {code}.json: {errorMessage}",
      "translations_replaced": "📊 {code}: {count} traducciones reemplazado",
      "translation_replacement_complete": "✅ ¡Reemplazo de traducción completo!",
      "total_replacements": "📊 Reemplazos totales: {count}",
      "dry_run_mode": "⚠️ MODO DE FUNCIONAMIENTO EN SECO: no se modificaron archivos",
      "tool_title": "🌍 Reemplazo de traducción nativo v1.9.1",
      "tool_separator": "========================================",
      "dry_run_warning": "⚠️ Ejecutando en modo DRY RUN: no se modificarán archivos",
      "error_during_replacement": "❌ Error durante el reemplazo de la traducción:"
    }
  },
  "config": {
    "dirFallbackWarning": "⚠️ Directorio {dir} extraviado. Usando {fallback}.",
    "dirInvalidError": "❌ Directorio no válido: {dir}"
  },
  "operations": {
    "completed": "✅ ¡Operación finalizada con éxito!",
    "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 no válida.",
    "foundFilesInSelectedDirectories": "📊 Encontrado {count} archivos en directorios seleccionados:",
    "deletionOptions": "🗑️ Opciones de eliminación:",
    "deleteAllFiles": "Eliminar todos los archivos",
    "keepLast3Files": "Conservar los últimos 3 archivos (por fecha)",
    "keepLast5Files": "Conservar los últimos 5 archivos (por fecha)",
    "noFilesToDelete": "✅ No hay archivos para eliminar.",
    "filesToDeleteCount": "📋 Archivos para eliminar: {count}",
    "filesToKeepCount": "📋 Archivos para conservar: {count}",
    "confirmDeletion": "⚠️ ¿Estás seguro de que deseas eliminar estos archivos? (sí/no):",
    "deletedFile": "✅ Eliminado: {filename}",
    "failedToDeleteFile": "❌ No se pudo eliminar {filename}: {error}",
    "cancelled": "❌ Operación cancelada.",
    "init": {
      "title": "🚀 Inicializar nuevo idioma"
    },
    "usage": {
      "title": "📊 Verificar uso de claves",
      "noUsedKeysHint": "Traducciones encontradas pero sin uso en la fuente. Verifique --source-dir y TranslationPatterns."
    },
    "analyze": {
      "title": "🔍 Analizar Traducciones"
    },
    "validate": {
      "title": "✅ Validar Traducciones"
    },
    "settings": {
      "title": "⚙️ Gestión de configuración",
      "separator": "==============================================================="
    },
    "complete": {
      "deletingOldReport": "🗑️ Eliminación del informe de uso anterior para realizar análisis nuevos",
      "generatingFreshAnalysis": "🔄 Generando nuevos análisis de uso...",
      "couldNotGenerate": "⚠️ No se pudo generar el análisis de uso. Usando claves faltantes comunes.",
      "reportNotFound": "⚠️ No se encontró el informe de uso. Generando nuevos análisis...",
      "foundMissingKeys": "🔍 Encontrado {count} claves faltantes en el análisis de uso",
      "couldNotParse": "⚠️ No se pudo analizar el informe de uso. Usando claves faltantes comunes.",
      "title": "🎯 COMPLETAR TRADUCCIONES",
      "separator": "===============================================================",
      "sourceDir": "📁 Directorio de fuentes: {sourceDir}",
      "sourceLanguage": "🔤 Idioma de origen: {sourceLanguage}",
      "dryRunMode": "🧪 MODO DE FUNCIONAMIENTO EN SECO: no se modificarán archivos",
      "languages": "🎯 Idiomas de destino: {languages}",
      "addingMissingKeys": "➕ Agregar claves faltantes a los archivos de traducción...",
      "processing": "🔄 Procesamiento {language}...",
      "addedKeys": "✅ Agregado {count} llaves",
      "changeDetails": "📝 {file}: {key}",
      "noChangesNeeded": "✅ No se necesitan cambios para {language}",
      "summaryTitle": "📊 RESUMEN DE FINALIZACIÓN",
      "totalChanges": "📝 Cambios totales: {totalChanges}",
      "languagesProcessed": "🌐 Idiomas procesados: {languagesProcessed}",
      "missingKeysAdded": "➕ Se agregaron claves faltantes: {missingKeysAdded}",
      "nextStepsTitle": "📋 PRÓXIMOS PASOS",
      "nextStep1": "1. Ejecute el análisis de uso:",
      "nextStep2": "2. Validar traducciones:",
      "nextStep3": "3. Analizar la integridad:",
      "allKeysAvailable": "🎉 ¡Todas las claves de traducción ya están disponibles!",
      "runWithoutDryRun": "💡 Ejecute sin --dry-run para aplicar cambios",
      "pressEnterToContinue": "Presione Entrar para continuar..."
    },
    "updatePackage": {
      "title": "📦 Actualización del paquete i18n-toolkit",
      "description": "Esto actualizará el paquete i18n-toolkit a la última versión disponible en npm.",
      "command": "Comando para ejecutar",
      "confirm": "¿Está seguro de que desea continuar con la actualización? (sí/no):",
      "updating": "Actualizando paquete... Esto puede tardar un momento.",
      "success": "✅ ¡i18n-toolkit actualizado con éxito!",
      "error": "❌ No se pudo actualizar el kit de herramientas i18n",
      "cancelled": "❌ Actualización cancelada."
    }
  },
  "security": {
    "pathValidationFailed": "ruta_validación_fallida",
    "invalidInputType": "tipo_entrada_inválida",
    "pathTraversalAttempt": "intento_trazado_ruta",
    "pathValidated": "✅ Ruta validada exitosamente",
    "pathValidationError": "ruta_validación_error",
    "fileTooLarge": "Seguridad: Archivo demasiado grande: {filePath}",
    "fileReadError": "Seguridad: Error de lectura de archivo: {errorMessage}",
    "contentTooLargeForFile": "Seguridad: Contenido demasiado grande para el archivo: {filePath}",
    "fileWriteError": "Seguridad: Error de escritura de archivo: {errorMessage}",
    "jsonStringTooLarge": "Seguridad: cadena JSON demasiado grande",
    "jsonParseError": "Seguridad: error de análisis 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 el 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 de análisis 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 el archivo",
    "file_write_error": "Error de escritura de archivo",
    "json_string_too_large": "Cadena Json demasiado grande",
    "recursion_detected": "Recursión detectada en {operation}",
    "operation_timeout": "Tiempo de espera de operación: {operation}",
    "operation_error": "Error de operación en {operation}: {error}",
    "directory_read_error": "Error de lectura del directorio: {errorMessage}",
    "security_alert": "Alerta de seguridad"
  },
  "settings-cli": {
    "settings": {
      "mainMenu": {
        "title": "Menú principal:",
        "uiSettings": "Configuración de la interfaz de usuario",
        "uiSettingsDesc": "Opciones de idioma, tema e interfaz",
        "directorySettings": "Configuración del directorio",
        "directorySettingsDesc": "Rutas del directorio de origen y salida",
        "scriptDirectorySettings": "Configuración del directorio de secuencias de comandos",
        "scriptDirectorySettingsDesc": "Rutas de directorio para operaciones de script individuales",
        "processingSettings": "Configuración de procesamiento",
        "processingSettingsDesc": "Tamaño de lote, simultaneidad y rendimiento",
        "advancedSettings": "Configuración avanzada",
        "advancedSettingsDesc": "Validación, registro y opciones de expertos",
        "viewAllSettings": "Ver todas las configuraciones",
        "viewAllSettingsDesc": "Mostrar la configuración actual",
        "importExport": "Importar/Exportar",
        "importExportDesc": "Configuración de copia de seguridad y restauración",
        "resetToDefaults": "Restablecer los valores predeterminados",
        "resetToDefaultsDesc": "Restaurar la configuración de fábrica",
        "reportBug": "Informar error",
        "reportBugDesc": "Enviar un informe de problema en GitHub",
        "saveChanges": "Guardar cambios",
        "saveChangesDesc": "Guardar la configuración actual en un archivo",
        "updatePackage": "Paquete de actualización",
        "updatePackageDesc": "Actualice el paquete i18n-toolkit a través de npm",
        "help": "Ayuda",
        "helpDesc": "Mostrar información de ayuda detallada",
        "quit": "Abandonar",
        "quitDesc": "Salir de la configuración (con mensaje de guardar si es necesario)",
        "unsavedChangesWarning": "⚠️ Tienes cambios sin guardar",
        "saveChangesBeforeQuit": "¿Quieres guardar los cambios antes de salir? (sí/no):",
        "selectOption": "Seleccione una opción:",
        "goodbyeMessage": "¡Gracias por utilizar el administrador de configuración del i18n!"
      },
      "goodbyeMessage": "¡Gracias por utilizar el administrador de configuración del i18n!",
      "relativePathHint": "Utilice rutas relativas desde este directorio (por ejemplo, ./src/i18n/locales)",
      "currentDirectory": "Directorio del proyecto actual"
    },
    "settings_manager": {
      "error_loading_settings": "❌ Error al cargar la configuración:",
      "error_saving_settings": "❌ Error al guardar la configuración:",
      "error_setting_value": "❌ Error al configurar el valor:",
      "missing_required_setting": "❌ Falta la configuración requerida: {prop}",
      "invalid_language": "❌ Idioma no válido: {language}",
      "invalid_source_language": "❌ Idioma de origen no válido: {sourceLanguage}",
      "default_languages_must_be_array": "❌ defaultLanguages ​​debe ser una matriz",
      "invalid_date_format": "❌ Formato de fecha no válido: {dateFormat}. Formatos válidos: {validFormats}",
      "invalid_time_format": "❌ Formato de hora no válido: {timeFormat}. Formatos válidos: {validFormats}",
      "notifications_types_must_be_object": "❌ Notificaciones.tipos debe ser un objeto.",
      "exclude_files_must_be_array": "❌ excluirFiles debe ser una matriz",
      "exclude_dirs_must_be_array": "❌ excluirDirs debe ser una matriz",
      "include_extensions_must_be_array": "❌ includeExtensions debe ser una matriz",
      "invalid_batch_size": "❌ Tamaño de lote no válido. debe ser un numero positivo",
      "invalid_max_concurrent_files": "❌ Archivos concurrentes máximos no válidos. debe ser un numero positivo",
      "invalid_sizing_threshold": "❌ Umbral de tamaño no válido. debe ser un numero positivo",
      "invalid_timeout": "❌ Tiempo de espera no válido. Debe ser al menos 1000 ms",
      "invalid_sizing_format": "❌ Formato de talla no válido: {sizingFormat}. Formatos válidos: {validFormats}",
      "error_validating_settings": "❌ Error al validar la configuración:",
      "backup_created": "📋 Copia de seguridad creada: {backupPath}",
      "error_creating_backup": "❌ Error al crear la copia de seguridad:",
      "language_not_supported": "Idioma '{language}' no es compatible. Disponible: {availableLanguages}",
      "ui_language_set": "🌍 Idioma de la interfaz de usuario configurado en: {language}"
    }
  },
  "settings": {
    "title": "⚙️ Gestión de configuración",
    "separator": "===============================================================",
    "goodbyeMessage": "¡Gracias por utilizar el administrador de configuración de i18ntk!",
    "relativePathHint": "Utilice rutas relativas desde este directorio (por ejemplo, ./src/i18n/locales)",
    "currentDirectory": "Directorio del proyecto actual",
    "startingSettings": "Configuración inicial:",
    "pin": "ALFILER:",
    "reportBug": {
      "title": "Informar error",
      "description": "Informe cualquier problema o error que encuentre",
      "guidance": "Para informar problemas de manera efectiva:",
      "checkLogs": "1. Verifique los registros de depuración en el directorio de su proyecto",
      "documentIssue": "2. Documente el problema con pasos para reproducirlo.",
      "contactSupport": "3. Póngase en contacto con el administrador del sistema o el equipo de soporte.",
      "completed": "Se muestra una guía para informar errores",
      "instructions": "Siga las instrucciones anteriores para informar el error."
    },
    "mainMenu": {
      "title": "Menú principal:",
      "uiSettings": "Configuración de la interfaz de usuario",
      "uiSettingsDesc": "Opciones de idioma, tema e interfaz",
      "directorySettings": "Configuración del directorio",
      "directorySettingsDesc": "Rutas del directorio de origen y salida",
      "processingSettings": "Configuración de procesamiento",
      "processingSettingsDesc": "Tamaño de lote, simultaneidad y rendimiento",
      "advancedSettings": "Configuración avanzada",
      "advancedSettingsDesc": "Validación, registro y opciones de expertos",
      "viewAllSettings": "Ver todas las configuraciones",
      "viewAllSettingsDesc": "Mostrar la configuración actual",
      "importExport": "Importar/Exportar",
      "updatePackage": "Paquete de actualización",
      "updatePackageDesc": "Actualice el paquete i18n-toolkit a través de npm",
      "importExportDesc": "Configuración de copia de seguridad y restauración",
      "resetToDefaults": "Restablecer los valores predeterminados",
      "resetToDefaultsDesc": "Restaurar la configuración de fábrica",
      "reportBug": "Informar error",
      "reportBugDesc": "Enviar un informe de problema en GitHub",
      "saveChanges": "Guardar cambios",
      "saveChangesDesc": "Guardar la configuración actual en un archivo",
      "help": "Ayuda",
      "helpDesc": "Mostrar información de ayuda detallada",
      "quit": "Abandonar",
      "quitDesc": "Salir de la configuración (con mensaje de guardar si es necesario)",
      "unsavedChangesWarning": "⚠️ Tienes cambios sin guardar",
      "saveChangesBeforeQuit": "¿Quieres guardar los cambios antes de salir? (sí/no):",
      "selectOption": "Seleccione una opción:",
      "goodbyeMessage": "¡Gracias por utilizar el administrador de configuración del i18n!",
      "selectSettingPrompt": "Seleccione una configuración para editar (o 'b' para regresar):",
      "enterNewValue": "Ingrese un nuevo valor:",
      "updatedSuccessfully": "{setting} actualizado exitosamente!",
      "scriptDirectorySettings": "Configuración del directorio de secuencias de comandos",
      "scriptDirectoryDesc": "Especificar directorios personalizados para cada script",
      "scriptDirectorySettingsDesc": "Puede configurar directorios personalizados para cada script. Si no se establece, se utilizarán las configuraciones globales.",
      "currentDirectory": "Directorio del proyecto actual",
      "securitySettings": "Configuración de seguridad",
      "securitySettingsDesc": "PIN de administrador y otras opciones de seguridad",
      "backupSettings": "Configuración de copia de seguridad",
      "backupSettingsDesc": "Copia de seguridad y restauración de los ajustes de configuración",
      "autoTranslate": "Traduccion automatica",
      "autoTranslateDesc": "Ajustar marcadores, concurrencia, lotes e informes"
    },
    "updatePackage": {
      "title": "Paquete de actualización",
      "description": "Actualice el paquete i18n-toolkit a través de npm",
      "command": "actualización de npm i18ntk -g",
      "success": "Actualización completada exitosamente.",
      "failed": "La actualización falló.",
      "prompt": "¿Quieres actualizar el paquete ahora? (sí/no):",
      "promptDesc": "Nota: Esto actualizará el paquete i18ntk a la última versión.",
      "confirm": "y",
      "cancelled": "Actualización cancelada.",
      "error": "No se pudo actualizar el paquete",
      "updating": "Actualizando paquete..."
    },
    "admin": {
      "selectOption": "Seleccionar opción:",
      "updateSuccess": "¡PIN de administrador actualizado exitosamente!",
      "updateFailed": "No se pudo actualizar el PIN de administrador.",
      "protectionRemoved": "Se eliminó la protección del PIN de administrador.",
      "configSuccess": "¡PIN de administrador configurado exitosamente!",
      "configFailed": "No se pudo configurar el PIN de administrador.",
      "setupPinPrompt": "¿Le gustaría configurar un PIN de administrador? (sí/no):",
      "pinUpdatedSuccess": "¡PIN de administrador actualizado exitosamente!",
      "pinUpdatedFailed": "No se pudo actualizar el PIN de administrador.",
      "pinRemoved": "Se eliminó la protección del PIN de administrador.",
      "pinConfiguredSuccess": "¡PIN de administrador configurado exitosamente!",
      "pinConfiguredFailed": "No se pudo configurar el PIN de administrador.",
      "accessDenied": "❌ Acceso denegado. Volviendo al menú.",
      "setupPin": "🔐 Configurando PIN de administrador...",
      "setupFailed": "❌ No se pudo configurar el PIN de administrador. La configuración no ha cambiado.",
      "pinConfigured": "📌 El PIN de administrador está configurado actualmente.",
      "options": "Opciones:",
      "changePin": "1) Cambiar PIN existente",
      "removePin": "2) Eliminar la protección PIN",
      "cancel": "3) Cancelar",
      "verifyCurrentPin": "🔐 Primero verifique el PIN actual:",
      "settingNewPin": "🔄 Configurando un nuevo PIN...",
      "verifyToRemove": "🔐 Verifique el PIN actual para eliminar la protección:",
      "noPinConfigured": "🔓 Actualmente no hay ningún PIN de administrador configurado.",
      "pinBenefits": "Configurar el PIN de administrador agregará seguridad para:",
      "benefitSecurity": "• Cambiar la configuración de seguridad",
      "benefitAdvanced": "• Modificación de configuraciones avanzadas",
      "benefitDebug": "• Acceder a herramientas de depuración",
      "benefitReset": "• Restablecer la configuración",
      "setupCancelled": "⏭️ Se canceló la configuración del PIN de administrador.",
      "operationCancelled": "❌ Operación cancelada.",
      "startingSettings": "🎛️ Iniciando configuración CLI...",
      "authRequired": "🔒 Se requiere autenticación de administrador para: {label}",
      "pinSetupTitle": "Configuración del PIN de administrador",
      "browserOpenFailed": "No se pudo abrir automáticamente el navegador.",
      "manualVisit": "Por favor visite manualmente: {url}",
      "browserOpened": "✅ ¡El navegador se abrió correctamente!"
    },
    "importExport": {
      "title": "Configuración de importación/exportación",
      "export": "Configuración de exportación",
      "import": "Importar configuración",
      "backup": "Crear copia de seguridad",
      "enterFilename": "Ingrese el nombre del archivo (o presione Enter para el valor predeterminado):",
      "exportSuccess": "Configuraciones exportadas a {file}",
      "exportFailed": "No se pudo exportar la configuración: {error}",
      "importFilename": "Ingrese el nombre del archivo para importar:",
      "fileNotFound": "Archivo no encontrado.",
      "invalidFormat": "Formato de archivo de configuración no válido.",
      "confirmImport": "Esto reemplazará todas las configuraciones actuales. ¿Continuar? (sí/no):",
      "importSuccess": "La configuración se importó correctamente.",
      "importFailed": "No se pudo importar la configuración: {error}",
      "backupSuccess": "Copia de seguridad creada: {file}",
      "backupFailed": "No se pudo crear la copia de seguridad: {error}",
      "exportFilenamePrompt": "Ingrese el nombre del archivo de exportación:",
      "importConfirm": "¿Importar este archivo de configuración? (sí/no):",
      "importFilenamePrompt": "Ingrese el nombre del archivo de importación:",
      "manageBackups": "Administrar copias de seguridad",
      "restore": "Restaurar configuración"
    },
    "selectOption": "Seleccione una opción:",
    "resetToDefaultsTitle": "Restablecer la configuración a los valores predeterminados",
    "resetWarning1": "⚠️ Esto restablecerá TODAS las configuraciones a sus valores predeterminados.",
    "resetWarning2": "Esta acción no se puede deshacer.",
    "resetConfirm": "¿Estás seguro de que quieres continuar? (sí/no):",
    "resetSuccess": "La configuración se restableció correctamente a los valores predeterminados.",
    "resetFailed": "No se pudo restablecer la configuración: {error}",
    "resetDone": "La configuración se restableció correctamente a los valores predeterminados.",
    "resetScriptDirsDone": "Los directorios de scripts se restablecieron correctamente a los valores predeterminados del sistema.",
    "saveSuccess": "La configuración se guardó correctamente.",
    "saveFailed": "No se pudo guardar la configuración.",
    "saveError": "Se proporcionaron configuraciones no válidas",
    "pressEnter": "Presione Entrar para continuar...",
    "initFailed": "No se pudo inicializar la configuración: {error}",
    "invalidValueFormat": "Formato de valor no válido.",
    "help": {
      "title": "Ayuda de configuración",
      "navigationTitle": "Navegación",
      "navigation1": "1. Configuración general: configure el idioma, el tema y las preferencias básicas de la interfaz de usuario",
      "navigation2": "2. Configuración de directorio: establezca directorios de origen y de salida para archivos de traducción",
      "navigation3": "3. Configuración de procesamiento: configure el tamaño del lote, la simultaneidad y las opciones de rendimiento",
      "navigation4": "4. Configuración avanzada: acceda a opciones de validación, registro y configuración experta",
      "categoriesTitle": "Categorías de configuración",
      "categoryUI": "• Configuración de la interfaz de usuario: idioma de la interfaz, tema de color y preferencias de visualización",
      "categoryDirectory": "• Configuración del directorio: ubicación de los archivos de origen y directorios de informes de salida",
      "categoryProcessing": "• Configuración de procesamiento: procesamiento por lotes, límites de archivos y ajuste del 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: anula la ruta del directorio de origen predeterminado",
      "envVar2": "• I18N_OUTPUT_DIR: anula la ruta del directorio de salida predeterminada",
      "envVar3": "• I18N_DEBUG: Habilitar el modo de depuración (verdadero/falso)",
      "cliUsageTitle": "Ejemplos de uso de CLI",
      "cliUsage1": "• npx i18ntk --settings: abre el menú de configuración interactivo",
      "cliUsage2": "• npx i18ntk --settings --lang de: Abrir configuración en alemán",
      "cliUsage3": "• npx i18ntk --reset-settings: restablece todas las configuraciones a los valores predeterminados",
      "navigation": "Utilice las teclas numéricas para seleccionar opciones, 'b' para regresar",
      "editing": "Ingrese nuevos valores cuando se le solicite o presione Entrar para mantenerlos actualizados",
      "saving": "Utilice 's' para guardar los cambios antes de salir",
      "reset": "Utilice la opción 7 para restablecer todas las configuraciones a los valores predeterminados"
    },
    "categories": {
      "uiSettings": "Configuración de la interfaz de usuario",
      "directorySettings": "Configuración del directorio",
      "processingSettings": "Configuración de procesamiento",
      "advancedSettings": "Configuración avanzada",
      "scriptDirectorySettings": "Configuración del directorio de secuencias de comandos",
      "securitySettings": "Configuración de seguridad",
      "autoTranslate": "Configuracion de traduccion automatica"
    },
    "security": {
      "title": "🔐 Configuración de seguridad",
      "description": "Configurar las opciones de seguridad y protección del PIN de administrador",
      "currentPin": "PIN actual:",
      "pinConfigured": "✅ Configurado",
      "pinNotConfigured": "❌ No configurado",
      "pinDisplay": "Pantalla de PIN:",
      "menu": {
        "enableDisable": "1) Activar/Desactivar PIN de administrador",
        "setupChange": "2) Configurar/Cambiar PIN de administrador",
        "sessionTimeout": "3) Tiempo de espera de la sesión",
        "maxAttempts": "4) Máximo de intentos fallidos",
        "lockoutDuration": "5) Duración del bloqueo",
        "back": "b) Volver al menú principal"
      },
      "prompts": {
        "enablePin": "¿Habilitar la protección con PIN de administrador? (sí/no):",
        "disablePin": "¿Desactivar la protección con PIN de administrador? (sí/no):",
        "enterTimeout": "Ingrese el tiempo de espera de la sesión (minutos):",
        "enterMaxAttempts": "Ingrese el máximo de intentos fallidos:",
        "enterLockoutDuration": "Ingrese la duración del bloqueo (minutos):"
      },
      "messages": {
        "pinEnabled": "Protección con PIN de administrador habilitada",
        "pinDisabled": "Protección con PIN de administrador deshabilitada",
        "timeoutUpdated": "Tiempo de espera de sesión actualizado a {minutes} minutos",
        "maxAttemptsUpdated": "Máximo de intentos fallidos actualizado a {attempts}",
        "lockoutDurationUpdated": "Duración del bloqueo actualizada a {minutes} minutos"
      }
    },
    "fields": {
      "backup.enabled": {
        "label": "Enable Backup",
        "description": "Enable automatic backup of settings",
        "help": "Enable/disable backup feature"
      },
      "backup.singleFileMode": {
        "label": "Single File Mode",
        "description": "Use single file for backups",
        "help": "Backup settings in a single file"
      },
      "backup.singleBackupFile": {
        "label": "Backup File Path",
        "description": "Path to the backup file",
        "help": "Path to the single backup file"
      },
      "backup.retentionDays": {
        "label": "Retention Period",
        "description": "Days to keep backup files",
        "help": "Number of days to retain old backup files"
      },
      "backup.maxBackups": {
        "label": "Maximum Backups",
        "description": "Maximum backup files to keep",
        "help": "Maximum number of backup files to keep"
      },
      "backup.confirm": {
        "label": "Confirm Backup",
        "description": "Require confirmation for backup operations",
        "help": "Confirm backup operation"
      },
      "i18nDir": {
        "label": "Directorio I18n",
        "description": "Directorio que contiene archivos de traducción",
        "current": "Actual: {value}",
        "help": "Ruta al directorio con archivos de traducción."
      },
      "projectRoot": {
        "label": "Raíz del proyecto",
        "description": "Directorio raíz del proyecto.",
        "current": "Actual: {value}",
        "help": "Ruta al directorio raíz del proyecto"
      },
      "checkUsage": {
        "usage_analysis_failed": "Error en el análisis de uso",
        "usage_analysis_success": "Análisis de uso exitoso",
        "usage_analysis_complete": "Análisis de uso completo",
        "usage_analysis_in_progress": "Análisis de uso en curso",
        "usage_analysis_started": "Se inició el análisis de uso",
        "usage_analysis_skipped": "Análisis de uso omitido"
      },
      "language": {
        "label": "Idioma de la interfaz",
        "description": "Idioma de la interfaz de usuario",
        "current": "Actual: {value}",
        "help": "Seleccione su idioma de interfaz preferido"
      },
      "scriptDirectories": {
        "analyzeLabel": "Analizar directorios de scripts",
        "analyzeHelp": "Analizar directorios de scripts para detectar problemas",
        "completeLabel": "Directorios de configuración completos",
        "initLabel": "Inicializar directorios de scripts",
        "manageLabel": "Administrar directorios de scripts",
        "sizingLabel": "Dimensionamiento de directorios de scripts",
        "summaryLabel": "Directorios de informes resumidos",
        "usageLabel": "Directorios de informes de uso",
        "validateLabel": "Validar directorios de scripts"
      },
      "theme": {
        "label": "Tema de color",
        "description": "Preferencia de tema de interfaz de usuario",
        "current": "Actual: {value}",
        "help": "Elige entre temas claros y oscuros"
      },
      "dateFormat": {
        "label": "Formato de fecha",
        "description": "Formato para mostrar fechas.",
        "current": "Actual: {value}",
        "help": "Elija cómo se muestran las fechas en los informes"
      },
      "notifications": {
        "enabled": {
          "label": "Habilitar notificaciones",
          "description": "Mostrar notificaciones de escritorio",
          "current": "Actual: {value}",
          "help": "Habilite las notificaciones de escritorio para operaciones completadas"
        }
      },
      "sourceDir": {
        "label": "Directorio de origen",
        "description": "Directorio que contiene archivos de traducción",
        "current": "Actual: {value}",
        "help": "Ruta al directorio con archivos de traducción fuente"
      },
      "sourceLanguage": {
        "label": "Idioma de origen",
        "description": "Idioma principal para las traducciones",
        "current": "Actual: {value}",
        "help": "El idioma principal utilizado como fuente para las traducciones."
      },
      "outputDir": {
        "label": "Directorio de salida",
        "description": "Directorio de informes generados",
        "current": "Actual: {value}",
        "help": "Dónde se guardarán los informes y archivos procesados"
      },
      "batchSize": {
        "label": "Tamaño del lote",
        "description": "Número de artículos procesados ​​por lote",
        "current": "Actual: {value}",
        "help": "¿Cuántos archivos procesar en cada lote?"
      },
      "maxConcurrentFiles": {
        "label": "Máximo de archivos simultáneos",
        "description": "Máximo de archivos procesados ​​simultáneamente",
        "current": "Actual: {value}",
        "help": "Número máximo de archivos para procesar al mismo tiempo"
      },
      "sizingThreshold": {
        "label": "Umbral de tamaño (%)",
        "description": "Umbral para advertencias de variación de tamaño",
        "current": "Actual: {value}%",
        "help": "Umbral porcentual para detectar discrepancias de tamaño"
      },
      "strictMode": {
        "label": "Modo de validación estricto",
        "description": "Habilitar el modo de validación estricta",
        "current": "Actual: {value}",
        "help": "Habilitar validación estricta para archivos de traducción"
      },
      "enableAuditLog": {
        "label": "Habilitar registro de auditoría",
        "description": "Seguimiento de todos los cambios de traducción",
        "current": "Actual: {value}",
        "help": "Registre todos los cambios realizados en los archivos de traducción"
      },
      "backupBeforeChanges": {
        "label": "Copia de seguridad automática",
        "description": "Crear copias de seguridad antes de las modificaciones.",
        "current": "Actual: {value}",
        "help": "Cree copias de seguridad automáticamente antes de realizar cambios"
      },
      "advanced_maxConcurrentFiles": {
        "label": "Máximo de archivos simultáneos",
        "description": "Máximo de archivos procesados ​​simultáneamente",
        "current": "Actual: {value}",
        "help": "Número máximo de archivos para procesar al mismo tiempo"
      },
      "advanced_strictMode": {
        "label": "Modo de validación estricto",
        "description": "Habilitar el modo de validación estricta",
        "current": "Actual: {value}",
        "help": "Habilitar validación estricta para archivos de traducción"
      },
      "adminPinEnabled": {
        "label": "Protección PIN de administrador",
        "description": "Habilite la autenticación de PIN de administrador para configuraciones confidenciales",
        "current": "Actual: {value}",
        "help": "Requerir PIN de administrador para cambiar la seguridad y la configuración avanzada"
      },
      "sessionTimeout": {
        "label": "Tiempo de espera de sesión",
        "description": "Tiempo de espera de la sesión de administrador en minutos",
        "current": "Actual: {value} minutos",
        "help": "Cuánto tiempo permanecen activas las sesiones de administración antes de requerir una nueva autenticación"
      },
      "maxFailedAttempts": {
        "label": "Intentos fallidos máximos",
        "description": "Máximo de intentos fallidos de PIN antes del bloqueo",
        "current": "Actual: {value} intentos",
        "help": "Número de intentos fallidos de PIN permitidos antes del bloqueo temporal"
      },
      "lockoutDuration": {
        "label": "Duración del bloqueo",
        "description": "Duración del bloqueo después de intentos fallidos",
        "current": "Actual: {value} minutos",
        "help": "¿Cuánto tiempo permanece bloqueado el sistema después del máximo de intentos fallidos?"
      },
      "scriptDirectories_analyze": {
        "label": "Analizar directorios de scripts",
        "description": "Directorios personalizados para analizar script",
        "current": "Actual: {value}",
        "help": "Especifique el directorio de origen personalizado para el script de análisis. Déjelo vacío para usar la configuración global."
      },
      "scriptDirectories_complete": {
        "label": "Directorios de configuración completos",
        "description": "Directorios personalizados para un script de configuración completo",
        "current": "Actual: {value}",
        "help": "Especifique el directorio de origen personalizado para el script de instalación completo. Déjelo vacío para usar la configuración global."
      },
      "scriptDirectories_init": {
        "label": "Inicializar directorios de scripts",
        "description": "Directorios personalizados para inicializar script",
        "current": "Actual: {value}",
        "help": "Especifique el directorio de origen personalizado para el script de inicialización. Déjelo vacío para usar la configuración global."
      },
      "scriptDirectories_manage": {
        "label": "Administrar directorios de scripts",
        "description": "Directorios personalizados para administrar scripts",
        "current": "Actual: {value}",
        "help": "Especifique el directorio de origen personalizado para el script de administración. Déjelo vacío para usar la configuración global."
      },
      "scriptDirectories_sizing": {
        "label": "Dimensionamiento de directorios de scripts",
        "description": "Directorios personalizados para dimensionar scripts",
        "current": "Actual: {value}",
        "help": "Especifique el directorio de origen personalizado para el script de dimensionamiento. Déjelo vacío para usar la configuración global."
      },
      "scriptDirectories_summary": {
        "label": "Directorios de informes resumidos",
        "description": "Directorios personalizados para script de informe resumido",
        "current": "Actual: {value}",
        "help": "Especifique el directorio de origen personalizado para el script del informe resumido. Déjelo vacío para usar la configuración global."
      },
      "scriptDirectories_usage": {
        "label": "Directorios de informes de uso",
        "description": "Directorios personalizados para script de informe de uso",
        "current": "Actual: {value}",
        "help": "Especifique el directorio de origen personalizado para el script del informe de uso. Déjelo vacío para usar la configuración global."
      },
      "scriptDirectories_validate": {
        "label": "Validar directorios de scripts",
        "description": "Directorios personalizados para validar script",
        "current": "Actual: {value}",
        "help": "Especifique el directorio de origen personalizado para el script de validación. Déjelo vacío para usar la configuración global."
      },
      "security_adminPinEnabled": {
        "label": "Protección PIN de administrador",
        "description": "Habilite la autenticación de PIN de administrador para configuraciones confidenciales",
        "current": "Actual: {value}",
        "help": "Requerir PIN de administrador para cambiar la seguridad y la configuración avanzada"
      },
      "fields": {
        "adminPinEnabled": {
          "label": "Protección PIN de administrador",
          "description": "Habilite la autenticación de PIN de administrador para configuraciones confidenciales",
          "help": "Requerir PIN de administrador para cambiar la seguridad y la configuración avanzada"
        }
      },
      "security_pinProtection_enabled": {
        "label": "Protección PIN",
        "description": "Habilite la protección con PIN para configuraciones confidenciales",
        "current": "Actual: {value}",
        "help": "Requerir PIN para cambiar la seguridad y la configuración avanzada"
      },
      "pinProtection_configure": {
        "label": "Configurar scripts protegidos con PIN",
        "description": "Configurar qué scripts requieren protección con PIN",
        "help": "Seleccione scripts individuales que requieran autenticación de PIN"
      },
      "pinProtection_debugMenu": {
        "label": "Menú de herramientas de depuración",
        "description": "Requerir PIN para el menú de herramientas de depuración",
        "current": "Actual: {value}",
        "help": "Habilite la protección PIN para acceder a las herramientas de depuración"
      },
      "pinProtection_deleteReports": {
        "label": "Eliminar informes",
        "description": "Requerir PIN para eliminar informes",
        "current": "Actual: {value}",
        "help": "Habilite la protección PIN para eliminar informes"
      },
      "pinProtection_summaryReports": {
        "label": "Informes resumidos",
        "description": "Requerir PIN para informes resumidos",
        "current": "Actual: {value}",
        "help": "Habilite la protección PIN para generar informes resumidos"
      },
      "pinProtection_settingsMenu": {
        "label": "Menú de configuración",
        "description": "Requerir PIN para el menú de configuración",
        "current": "Actual: {value}",
        "help": "Habilite la protección PIN para acceder a la configuración"
      },
      "pinProtection_initScript": {
        "label": "Inicializar secuencia de comandos",
        "description": "Requerir PIN para inicializar script",
        "current": "Actual: {value}",
        "help": "Habilite la protección PIN para ejecutar el script de inicialización"
      },
      "pinProtection_resetDefaults": {
        "label": "Restablecer protección PIN",
        "description": "Restablecer todas las configuraciones de protección de PIN a los valores predeterminados",
        "help": "Restablecer todas las protecciones de PIN de scripts individuales a los valores predeterminados"
      },
      "removeUiLanguages": {
        "label": "Eliminar idiomas de la interfaz de usuario",
        "description": "Eliminar idiomas de UI que no están instalados",
        "help": "Eliminar idiomas de UI que no están instalados en el sistema"
      },
      "${helperKey}": {
        "help": "Ayuda"
      },
      "backup": {
        "enabled": {
          "label": "Habilitar copia de seguridad",
          "description": "Habilitar copia de seguridad automática de la configuración",
          "help": "Activar/desactivar la función de copia de seguridad"
        },
        "singleFileMode": {
          "label": "Modo de archivo único",
          "description": "Utilice un solo archivo para las copias de seguridad",
          "help": "Configuración de copia de seguridad en un solo archivo"
        },
        "singleBackupFile": {
          "label": "Ruta del archivo de respaldo",
          "description": "Ruta al archivo de copia de seguridad",
          "help": "Ruta al archivo de copia de seguridad único"
        },
        "retentionDays": {
          "label": "Período de retención",
          "description": "Días para guardar archivos de respaldo",
          "help": "Número de días para conservar los archivos de copia de seguridad antiguos"
        },
        "maxBackups": {
          "label": "Copias de seguridad máximas",
          "description": "Archivos de copia de seguridad máximos para conservar",
          "help": "Número máximo de archivos de copia de seguridad para conservar"
        },
        "confirm": {
          "label": "Confirmar copia de seguridad",
          "description": "Requerir confirmación para operaciones de respaldo",
          "help": "Confirmar operación de copia de seguridad"
        }
      },
      "reports_format": {
        "label": "Formato de informe",
        "help": "Elige markdown para informes legibles, json para automatizacion o text para registros simples."
      },
      "autoTranslate_placeholderMode": {
        "label": "Modo de marcadores",
        "help": "Como se tratan las cadenas con marcadores durante la traduccion automatica."
      },
      "autoTranslate_concurrency": {
        "label": "Solicitudes de traduccion simultaneas",
        "help": "Maximo de solicitudes simultaneas al proveedor. Google admite hasta 100 en i18ntk; DeepL y LibreTranslate tienen limites mas bajos."
      },
      "autoTranslate_batchSize": {
        "label": "Segmentos de texto por lote",
        "help": "Numero de segmentos de texto programados por lote."
      },
      "autoTranslate_progressInterval": {
        "label": "Intervalo de progreso",
        "help": "Segmentos completados entre actualizaciones de progreso."
      },
      "autoTranslate_retryCount": {
        "label": "Reintentos",
        "help": "Maximo de reintentos por solicitud fallida."
      },
      "autoTranslate_retryDelay": {
        "label": "Retraso de reintento (ms)",
        "help": "Retraso base de reintento en milisegundos."
      },
      "autoTranslate_timeout": {
        "label": "Tiempo limite de solicitud (ms)",
        "help": "Tiempo limite de la solicitud al proveedor de traduccion."
      },
      "autoTranslate_dryRunFirst": {
        "label": "Vista previa primero",
        "help": "Previsualizar lo que se traducira antes de escribir archivos."
      },
      "autoTranslate_onlyMissingOrEnglish": {
        "label": "Solo claves faltantes o en ingles",
        "help": "Conservar valores ya traducidos y traducir solo valores faltantes, marcadores, copias del origen o probablemente en ingles."
      },
      "autoTranslate_reportStdout": {
        "label": "Imprimir informe en terminal",
        "help": "Imprimir el informe posterior a la traduccion en stdout."
      },
      "autoTranslate_bom": {
        "label": "Escribir BOM UTF-8",
        "help": "Escribir archivos JSON traducidos con BOM UTF-8."
      },
      "autoTranslate_protectionEnabled": {
        "label": "Proteger marcas, claves y valores",
        "help": "Activar terminos, claves, valores y patrones protegidos editables por el usuario."
      },
      "autoTranslate_protectionFile": {
        "label": "Archivo JSON de proteccion",
        "help": "Archivo JSON del proyecto con reglas de proteccion de traduccion automatica."
      },
      "autoTranslate_promptProtectionSetup": {
        "label": "Preguntar para crear archivo de proteccion",
        "help": "Preguntar si se crea el archivo de proteccion cuando se ejecuta por primera vez."
      },
      "autoTranslate_promptProtectionUpdate": {
        "label": "Preguntar para actualizar reglas de proteccion",
        "help": "Preguntar si se actualizan las reglas de proteccion antes de traducciones desde el gestor."
      }
    },
    "actions": {
      "editSetting": "Editar {setting}:",
      "settingUpdated": "✅ {setting} actualizado exitosamente!",
      "invalidValue": "❌ Valor no válido. Por favor inténtalo de nuevo.",
      "pressEnter": "Presione Entrar para continuar...",
      "backToMenu": "Volver al menú principal",
      "saveSuccess": "✅ ¡La configuración se guardó correctamente!",
      "saveFailed": "❌ No se pudo guardar la configuración: {error}",
      "resetConfirm": "¿Está seguro de que desea restablecer todas las configuraciones a los valores predeterminados? (sí/no):",
      "resetSuccess": "✅ ¡La configuración se restablece a los valores predeterminados con éxito!",
      "importSuccess": "✅ ¡Configuración importada exitosamente!",
      "exportSuccess": "✅ ¡Configuración exportada exitosamente!",
      "fileNotFound": "❌ Archivo no encontrado: {path}",
      "invalidFormat": "❌ Formato de archivo de configuración no válido",
      "pinProtectionUpdated": "✅ Protección PIN para {script} actualizado exitosamente!",
      "pinProtectionReset": "✅ ¡Todas las configuraciones de protección de PIN se restablecen a sus valores predeterminados!",
      "pinProtectionConfigure": "Configurar la protección PIN para scripts individuales",
      "pinProtectionSelectScript": "Seleccione una secuencia de comandos para alternar la protección con PIN:",
      "pinProtectionCurrentStatus": "Estado actual: {status}",
      "pinProtectionEnabled": "Activado",
      "pinProtectionDisabled": "Desactivado",
      "pinProtectionToggle": "Alternar protección mediante PIN",
      "pinProtectionResetAll": "Restablecer todo a los valores predeterminados",
      "pinProtectionBack": "Volver a la configuración de seguridad"
    },
    "themes": {
      "light": "Luz",
      "dark": "Oscuro",
      "system": "Sistema"
    },
    "languages": {
      "en": "Inglés",
      "de": "Alemán",
      "es": "Español",
      "fr": "Francés",
      "ru": "Ruso",
      "ja": "Japonés",
      "zh": "Chino",
      "it": "Italiano",
      "pt": "Portugués",
      "nl": "Neerlandés",
      "pl": "Polaco",
      "sv": "Sueco",
      "uk": "Ucraniano",
      "cs": "Checo",
      "tr": "Turco",
      "ko": "Coreano",
      "ar": "Árabe",
      "hi": "Hindi",
      "th": "Tailandés",
      "vi": "Vietnamita",
      "he": "Hebreo",
      "el": "Griego",
      "hu": "Húngaro"
    },
    "viewAll": {
      "title": "Ver todas las configuraciones"
    },
    "current": "Actual",
    "back": "Volver al menú principal",
    "selectSettingPrompt": "Seleccione la configuración para editar (ob para retroceder, r para restablecer):",
    "invalidOption": "Opción no válida.",
    "editing": "Edición",
    "enterNewValue": "Ingrese un nuevo valor (o presione Entrar para mantenerlo actualizado, escriba 'predeterminado' para usar el valor predeterminado del sistema):",
    "validOptions": "Opciones válidas",
    "updatedSuccessfully": "actualizado exitosamente!",
    "noHelp": "No hay ayuda disponible para esta configuración",
    "resetScriptDirectories": "Restablecer los valores predeterminados",
    "resetScriptDirectoriesTitle": "Restablecer directorios de secuencias de comandos a los valores predeterminados",
    "resetScriptDirectoriesWarning1": "Esto restablecerá todas las configuraciones del directorio de scripts a los valores predeterminados del sistema.",
    "resetScriptDirectoriesWarning2": "Se borrarán todas las rutas de directorio personalizadas. Esta acción no se puede deshacer.",
    "resetScriptDirectoriesConfirm": "¿Está seguro de que desea restablecer todos los directorios de scripts a sus valores predeterminados? (sí/no):",
    "backup": {
      "title": "Configuración de copia de seguridad",
      "description": "Copia de seguridad de la configuración actual en un archivo",
      "confirm": "¿Está seguro de que desea hacer una copia de seguridad de la configuración actual? (sí/no):",
      "success": "✅ Configuración respaldada exitosamente para {backupFile}",
      "failed": "❌ No se pudo realizar la copia de seguridad de la configuración: {error}",
      "enabled": "Habilitar copia de seguridad",
      "enabledHelp": "Activar/desactivar la función de copia de seguridad",
      "singleFileMode": "Modo de archivo único",
      "singleFileModeHelp": "Configuración de copia de seguridad en un solo archivo",
      "singleBackupFile": "Archivo de copia de seguridad único",
      "singleBackupFileHelp": "Ruta al archivo de copia de seguridad único",
      "retentionDays": "Días de retención",
      "retentionDaysHelp": "Número de días para conservar los archivos de copia de seguridad antiguos",
      "maxBackups": "Copias de seguridad máximas",
      "maxBackupsHelp": "Número máximo de archivos de copia de seguridad para conservar",
      "confirmHelp": "Confirmar operación de copia de seguridad",
      "confirmYes": "Sí",
      "confirmNo": "No"
    },
    "validation": {
      "valid": "Válido",
      "validatingPaths": "Validando rutas configuradas...",
      "validationComplete": "Validación de ruta completa: {valid}/{total} válido."
    }
  },
  "summary": {
    "separator": "===============================================================",
    "configurationTitle": "🔧 Configuración:",
    "sourceLanguage": "Idioma de origen: {sourceLanguage}",
    "supportedExtensions": "Extensiones compatibles: {extensions}",
    "excludedFiles": "Archivos excluidos: {files}",
    "reportContent": "{report}",
    "fatalError": "❌ Error fatal: {error}",
    "helpTitle": "📊 GENERADOR DE INFORMES RESUMEN I18NTK",
    "helpDescription": "Analiza la estructura de carpetas de i18n y genera un informe resumido completo que incluye estadísticas clave, análisis de la estructura de archivos y comprobaciones de validación.",
    "helpUsage": "Uso: nodo i18ntk-summary.js [opciones]",
    "helpOptions": "--directorio-fuente <dir>     Directorio fuente para analizar",
    "helpSourceDir": "--directorio-fuente <dir>     Directorio fuente para analizar",
    "helpOutput": "--producción <file>        Archivo de salida para el informe.",
    "helpVerbose": "--verbose, -v Mostrar información detallada",
    "helpKeepReports": "--keep-reports Conserva los informes existentes",
    "helpDeleteReports": "--delete-reports Eliminar informes existentes",
    "helpHelp": "--help, -h Mostrar esta ayuda",
    "helpExamples": "Ejemplos:",
    "helpExample1": "nodo i18ntk-summary.js",
    "helpExample2": "nodo i18ntk-summary.js --source-dir ./locales",
    "helpExample3": "node i18ntk-summary.js --resumen de salida-report.txt",
    "helpExample4": "nodo i18ntk-summary.js --verbose",
    "helpExample5": "nodo 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": "🔍 Analizando la estructura de carpetas...",
    "noLanguageDirectoriesFound": "❌ No se encontraron directorios de idiomas en el directorio de origen especificado.",
    "foundLanguages": "✅ Encontrado {count} idiomas: {languages}",
    "referenceLanguageFiles": "📁 Idioma de referencia'{language}' tiene {count} archivos",
    "analyzingLanguage": "🌍 Analizando el lenguaje: {language}",
    "keysInFiles": "📊 Encontrado {keys} llaves a través {files} archivos",
    "checkingInconsistentKeys": "🔍 Comprobando claves inconsistentes en todos los idiomas...",
    "generatingSummaryReport": "📝 Generando informe resumido...",
    "reportTitle": "📊 INFORME RESUMEN I18NTK",
    "generated": "Generado: {timestamp}",
    "sourceDirectory": "Directorio de origen: {dir}",
    "overview": "📈 RESUMEN",
    "languagesCount": "Idiomas: {count}",
    "totalFiles": "Archivos totales: {count}",
    "totalKeys": "Claves totales: {count}",
    "avgKeysPerLanguage": "Claves promedio por idioma: {count}",
    "languagesBreakdown": "🌍 DESGLOSE DE IDIOMAS",
    "languageBreakdown": "{language}: {files} archivos, {keys} llaves",
    "fileStructure": "📁 ESTRUCTURA DEL ARCHIVO",
    "fileKeys": "{file}: {keys} llaves",
    "missingInLanguages": "⚠️ Desaparecido en: {languages}",
    "issuesFound": "❌ PROBLEMAS ENCONTRADOS",
    "missingFiles": "📁 Archivos faltantes:",
    "emptyFiles": "📄 Archivos vacíos:",
    "malformedFiles": "⚠️ Archivos con formato incorrecto:",
    "duplicateKeys": "🔑 Claves duplicadas:",
    "inconsistentKeys": "🔍 Claves inconsistentes:",
    "missingKeys": "Desaparecido: {keys}{more}",
    "extraKeys": "Extra: {keys}{more}",
    "noIssuesFound": "✅ NO SE ENCONTRARON PROBLEMAS",
    "allFilesConsistent": "Todos los archivos de traducción son consistentes en todos los idiomas.",
    "recommendations": "💡 RECOMENDACIONES",
    "createMissingFiles": "• Crear archivos de traducción faltantes",
    "addContentToEmptyFiles": "• Agregar contenido a archivos de traducción vacíos",
    "fixMalformedFiles": "• Reparar archivos JSON/JS con formato incorrecto",
    "removeDuplicateKeys": "• Eliminar claves duplicadas de los archivos",
    "synchronizeKeys": "• Sincronizar claves en todos los idiomas",
    "splitLargeFiles": "• Considere dividir archivos grandes en espacios de nombres más pequeños",
    "addMoreLanguages": "• Considere agregar más idiomas",
    "nextSteps": "🎯 PRÓXIMOS PASOS",
    "nextStep1": "1. Solucione cualquier problema identificado anteriormente",
    "nextStep2": "2. Ejecute la validación para garantizar la coherencia.",
    "nextStep3": "3. Considere utilizar i18ntk-validate para una validación detallada",
    "nextStep4": "4. Se recomienda un seguimiento regular",
    "couldNotFindI18nDirectory": "❌ No se pudo encontrar el directorio i18n. Por favor especifique --source-dir.",
    "sourceDirectoryDoesNotExist": "❌ El directorio de origen no existe: {dir}",
    "i18nSummaryReportGenerator": "📊 Generador de informes resumidos I18N",
    "analysisComplete": "✅ Análisis completo",
    "analyzedLanguages": "📊 Idiomas analizados: {count}",
    "processedFiles": "📁 Archivos procesados: {count}",
    "foundTranslationKeys": "🔑 Claves de traducción encontradas: {count}",
    "foundIssues": "❌ Encontrado {count} asuntos",
    "noIssuesConsole": "✅ No se encontraron problemas: ¡todos los archivos son consistentes!",
    "errorDuringAnalysis": "❌ Error durante el análisis: {error}",
    "usageReportTitle": "📊 INFORME DE USO DE I18NTK",
    "usageReportGenerated": "Generado: {timestamp}",
    "usageReportSourceDir": "Directorio de origen: {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 utilizadas: {count}",
    "usageReportDynamicKeys": "Claves de traducción dinámica: {count}",
    "usageReportUnusedKeys": "Claves de traducción no utilizadas: {count}",
    "usageReportMissingKeys": "Claves de traducción faltantes: {count}",
    "usageReportNotTranslatedKeys": "Claves no traducidas: {count}",
    "usageReportTranslationCompleteness": "🌍 INTEGRIDAD DE LA TRADUCCIÓN",
    "usageReportLanguageCompleteness": "{language}: {completeness}% ({translated}/{total})",
    "usageReportNotTranslatedInLanguage": "No traducido: {count} llaves",
    "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 los archivos de traducción pero no se utilizan en el código fuente:",
    "usageReportUnusedKey": "• {key}",
    "usageReportMoreUnusedKeys": "... y {count} más llaves sin usar",
    "usageReportMissingTranslationKeys": "❌ FALTAN TECLAS DE TRADUCCIÓN",
    "usageReportMissingKeysDescription": "Estas claves se utilizan en el código fuente pero faltan en los archivos de traducción:",
    "usageReportMissingKey": "• {key}",
    "usageReportUsedIn": "Utilizado en: {filePath}",
    "usageReportMoreFiles": "... y {count} más archivos",
    "usageReportDynamicTranslationKeys": "⚡ CLAVES DE TRADUCCIÓN DINÁMICA",
    "usageReportDynamicKeysDescription": "Estas claves se usan dinámicamente (construidas en tiempo de ejecución):",
    "usageReportDynamicKey": "• {key}",
    "usageReportFileUsageBreakdown": "📊 DESGLOSE DEL USO DE ARCHIVOS",
    "usageReportFileUsage": "{filePath}: {count} llaves",
    "status": {
      "generating": "⏳ Generando...",
      "completed": "✅ Completado"
    },
    "help": {
      "usage": "Uso: nodo principal/manage/index.js [opciones]",
      "interactiveMode": "💡 Utilice: nodo principal/manage/index.js --command=<command> para ejecución directa",
      "initProject": "🚀 Inicializar nuevos idiomas",
      "analyzeTranslations": "🔍 Analizar traducciones",
      "validateTranslations": "✅ Validar traducciones",
      "checkUsage": "📊 Verifique el uso de claves",
      "showHelp": "📖 Utilice: node main/manage/index.js --ayuda para los comandos disponibles",
      "availableCommands": "📖 Comandos disponibles:",
      "initCommand": "init - Inicializar nuevos idiomas",
      "analyzeCommand": "analizar - Analizar traducciones",
      "validateCommand": "validar - Validar traducciones",
      "usageCommand": "uso - Verificar el uso de claves",
      "sizingCommand": "dimensionamiento - Analizar dimensionamiento",
      "completeCommand": "complete - Traducciones completas (100% de cobertura)",
      "summaryCommand": "resumen - Mostrar el estado del proyecto",
      "scannerCommand": "escáner - Escanear en busca de problemas con i18n",
      "translateCommand": "traducir: traducción automática de archivos locales",
      "debugCommand": "debug - Problemas de traducción de depuración"
    },
    "test_complete_system": {
      "starting_test": "🧪 Iniciar la prueba completa del sistema",
      "separator": "=",
      "testing_ui_translations": "📝 Probando traducciones de la interfaz de usuario...",
      "testing_settings_manager": "⚙️ Administrador de configuración de prueba...",
      "testing_main_scripts": "🔧 Probando guiones principales...",
      "checking_translation_consistency": "🌐 Comprobando la coherencia de la traducción...",
      "non_critical_missing_keys": "ℹ️ {file}: {count} claves faltantes no críticas",
      "extra_keys": "ℹ️ {file}: {count} llaves extra",
      "generating_report": "📊 Generando Informe...",
      "final_test_report_title": "📋 INFORME DE PRUEBA FINAL",
      "passed": "✅ Aprobado: {passed}",
      "failed": "❌ Fallido: {failed}",
      "warnings": "⚠️ Advertencias: {warnings}",
      "missing_translations_title": "🔍 Traducciones faltantes ({count}):",
      "missing_translation_key": "- {key}",
      "missing_translations_more": "... y {count} más",
      "errors_title": "❌ Errores:",
      "error_message": "- {error}",
      "overall_status": "📊 Estado general: {status}",
      "success_message": "✅ {message}",
      "failure_message": "❌ {message}",
      "failure_error_message": "{errorMessage}",
      "warning_message": "⚠️  {message}",
      "test_runner_failed": "❌ El corredor de prueba falló:",
      "recommendations": {
        "add_missing_translation_keys": "Agregue las claves de traducción que faltan para mantener la coherencia",
        "fix_failing_scripts": "Corregir scripts fallidos antes de la implementación",
        "review_warning_messages": "Revisar y abordar mensajes de advertencia",
        "system_ready_for_deployment": "El sistema está listo para su implementación."
      },
      "hardcodedTexts": {
        "addMissingTranslationKeys": "Agregue las claves de traducción que faltan para mantener la coherencia",
        "fixFailingScripts": "Corregir scripts fallidos antes de la implementación",
        "reviewWarningMessages": "Revisar y abordar mensajes de advertencia",
        "systemReadyForDeployment": "El sistema está listo para su implementación."
      }
    },
    "testConsoleI18n": {
      "found_target_file": "Archivo de destino encontrado: {fileName}",
      "scanning_files_for_console_statements": "Escaneando archivos en busca de declaraciones de consola...",
      "found_javascript_files": "Encontró {count} Archivos JavaScript.",
      "console_i18n_analysis_results": "Resultados del análisis de la consola I18n",
      "total_console_statements": "Declaraciones totales de la consola: {count}",
      "translated_statements": "Declaraciones traducidas: {count}",
      "hardcoded_statements": "Declaraciones codificadas: {count}",
      "translation_coverage": "Cobertura de traducción: {percentage}%",
      "coverage_by_file": "Cobertura por Expediente:",
      "file_coverage_stats": "{emoji} {fileName}: {coverage}% ({translated}/{total})",
      "hardcoded_console_statements": "Declaraciones de consola codificadas:",
      "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. Reemplace las cadenas codificadas con llamadas i18n.t().",
      "recommendation_2": "2. Agregue nuevas claves a los archivos JSON de traducción relevantes.",
      "recommendation_3": "3. Asegúrese de que todos los mensajes de la consola sean de cara al usuario y requieran traducción.",
      "recommendation_4": "4. Utilice 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": "Copie la siguiente estructura JSON en sus archivos de traducción:",
      "perfect_translation_coverage": "¡Cobertura de traducción perfecta!",
      "all_statements_using_translation": "Todas las declaraciones de la consola utilizan el sistema de traducción.",
      "i18n_console_translation_checker": "Comprobador de traducción de la consola I18n",
      "script_description_line1": "Este script escanea todos los archivos JavaScript en busca de declaraciones de consola.",
      "script_description_line2": "y comprueba si están utilizando el sistema de traducción.",
      "analysis_completed_in_duration": "Análisis completado en {duration} artículos de segunda clase.",
      "report_saved_to_path": "Informe guardado en: {path}",
      "found_hardcoded_messages": "Encontró {count} mensajes codificados. Saliendo con el código de error 1.",
      "all_console_messages_use_translation": "Todos los mensajes de la consola utilizan traducción. Saliendo con código 0.",
      "consoleTranslationsCheck": "Verificación de traducciones de la consola"
    },
    "translate_mismatches": {
      "title": "🌐 Ayudante de traducción {dryRun}",
      "separator": "=======================================",
      "processing_file": "📄 Procesamiento {language}.json...",
      "translation_summary_title": "📊 Resumen de traducción:",
      "total_translations_applied": "Total de traducciones aplicadas: {totalTranslations}",
      "run_with_apply_instruction": "💡 Ejecute con --apply para aplicar estas traducciones",
      "no_translation_mappings": "⚠️ No hay asignaciones de traducción disponibles para {language}",
      "translation_applied": "✅ {key}: \"{oldValue}\" → \"{newValue}\"",
      "saved_translations": "💾 Guardado {count} traducciones a {filename}",
      "found_translatable_items": "🔍 Encontrado {count} elementos traducibles",
      "no_automatic_translations": "✨ No hay traducciones automáticas disponibles",
      "error_processing_file": "❌ Error al procesar {filename}: {errorMessage}",
      "coverage_report_title": "📊 Informe de cobertura de traducción",
      "coverage_report_separator": "=================================",
      "file_header": "📄 {filename}:",
      "total_keys": "Claves totales: {total}",
      "translated_keys": "Traducido: {translated}",
      "untranslated_markers": "Marcadores sin traducir: {untranslated}",
      "contains_english": "Contiene inglés: {hasEnglish}",
      "coverage_percentage": "Cobertura: {coverage}%",
      "error_general": "❌Error:",
      "use_help": "Utilice --help para obtener información de uso"
    },
    "cleaningUpReportFiles": "Limpiando archivos de informes antiguos...",
    "couldNotDelete": "No se pudo eliminar {file}: {error}",
    "deletedOldReportFiles": "Eliminado {count} archivos de informes antiguos.",
    "errorCleaningUpReports": "Error al limpiar informes: {error}",
    "noOldReportFilesToDelete": "No hay archivos de informes antiguos que eliminar.",
    "reportFilesPreserved": "Archivos de informes conservados.",
    "reportSaveFailed": "No se pudo guardar el informe en: {reportPath}",
    "reportSaved": "Informe guardado en: {reportPath}"
  },
  "ui": {
    "autoDetectedI18nDirectory": "Directorio i18n detectado automáticamente: {path}",
    "executingCommand": "Ejecutando comando: {command}",
    "unknownCommand": "Comando desconocido: {command}",
    "errorExecutingCommand": "Error al ejecutar el comando: {error}",
    "errorLoadingTranslationFile": "Error al cargar el archivo de traducción para '{language}': {error}",
    "errorSavingLanguagePreference": "Error al guardar la preferencia de idioma: {error}",
    "noActiveReadlineInterface": "No hay ninguna interfaz de línea de lectura activa disponible",
    "uiLanguageUpdated": "Idioma de la interfaz de usuario actualizado a: {language}",
    "selectOptionPrompt": "Seleccione una opción:",
    "pressEnterToReturn": "Presione Enter para regresar al menú principal...",
    "detectedSourceDirectory": "Directorio de origen detectado: {sourceDir}",
    "detectedI18nDirectory": "Directorio i18n detectado: {directory}",
    "toolkitTitle": "i18ntk - Kit de herramientas de gestión empresarial i18n",
    "versionInfo": "Versión: {version}",
    "releaseDate": "Fecha de lanzamiento: {date}",
    "maintainer": "Mantenedor: {maintainer}",
    "nodeVersion": "Nodo.js: {version}",
    "license": "Licencia: {license}",
    "whatsNew": "✨ Novedades en v{version}:",
    "changeItem": "{change}",
    "documentation": "📚 Documentación: {url}",
    "issues": "🐛 Problemas: {url}",
    "versionInfoUnavailable": "Información de la versión i18ntk no disponible",
    "versionInfoError": "Error: {error}"
  },
  "validateLanguagePurity": {
    "phrase_debug_tools": "herramientas de depuración",
    "phrase_settings": "ajustes",
    "phrase_configuration": "configuración",
    "phrase_invalid_choice": "elecció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": "ahorro",
    "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 del pin de administrador",
    "phrase_enter_admin_pin": "introduce el pin de administrador",
    "phrase_confirm_admin_pin": "confirmar pin de administrador",
    "phrase_authentication_failed": "la autenticación falló",
    "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 del lenguaje",
    "validating_file": "📄 Validando {language}.json ({name})...",
    "valid_file_message": "✅ Válido: sin violaciones de pureza del idioma",
    "invalid_file_message": "❌ Inválido - {count} violaciones encontradas",
    "no_validation_rules": "No hay reglas de validación definidas para el idioma: {language}",
    "error_reading_file": "Error al leer el 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 el 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 no válidos: {count}",
    "total_violations": "Infracciones totales: {count}",
    "violations_by_file_header": "❌ VIOLACIONES POR EXPEDIENTE:"
  },
  "workflow": {
    "title": "Gestión del flujo de trabajo",
    "description": "Administre los flujos de trabajo de 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 de trabajo.",
    "invalid_selection": "Selección no válida. Introduzca un número correspondiente a un archivo de flujo de trabajo.",
    "workflow_execution_started": "Flujo de trabajo inicial: {workflowName}",
    "workflow_execution_completed": "Flujo de trabajo completado: {workflowName}",
    "workflow_execution_failed": "Error en el flujo de trabajo: {workflowName} - {error}",
    "workflow_cancelled": "Se canceló la ejecución del flujo de trabajo.",
    "press_enter_to_continue": "¡Presiona Enter para continuar!",
    "starting": "🚀 Iniciando flujo de trabajo...",
    "completed": "✅ ¡Flujo de trabajo completado con éxito!",
    "checkReports": "📄 Consulta los informes para más detalles.",
    "exitingCompleted": "📝 Flujo de trabajo completado. Saliendo...",
    "summary": {
      "title": "📋 RESUMEN DEL FLUJO DE TRABAJO",
      "separator": "====================",
      "completedAt": "🕐 Flujo de trabajo completado en: {timestamp}",
      "initialViolations": "📊 Infracciones iniciales: {count}",
      "finalViolations": "📉 Infracciones finales: {count}",
      "totalFixes": "🔧 Correcciones totales aplicadas: {count}",
      "improvement": "📈 Mejora: {percentage}%",
      "stepResults": "📝 RESULTADOS DEL PASO:",
      "stepDetail": "{number}. {status} {stepName}",
      "violations": "Violaciones: {count}",
      "fixesApplied": "Correcciones aplicadas: {count}",
      "nextSteps": "💡 PRÓXIMOS PASOS:",
      "congratulations": "🎉 ¡Felicidades! ¡Todos los archivos locales ahora tienen una pureza de lenguaje perfecta!",
      "cicdIntegration": "✅ Considere integrar el validador en su proceso de CI/CD",
      "automatedChecks": "✅ Configure comprobaciones automáticas para nuevas traducciones",
      "greatProgress": "🎯 ¡Gran progreso! La mayoría de los problemas se han resuelto.",
      "manualReview": "🔍 Revisar las infracciones restantes manualmente",
      "addMappings": "🌐 Considere agregar más asignaciones de traducción para casos extremos",
      "goodProgress": "📈 Se han logrado buenos avances, pero se necesita más trabajo.",
      "expandMappings": "🔧 Ampliar asignaciones de traducción automática",
      "professionalReview": "👥 Considere la posibilidad de revisar manualmente traducciones complejas",
      "runAgain": "🔄 Ejecute el flujo de trabajo nuevamente después de agregar más asignaciones",
      "limitedProgress": "⚠️ Progreso limitado. Puede ser necesaria una intervención manual.",
      "reviewMappings": "🔍 Revise las asignaciones de traducción y agregue las que faltan",
      "professionalServices": "👥 Considere servicios de traducción profesionales",
      "checkIssues": "🔧 Verifique si hay problemas sistemáticos en los archivos locales",
      "success": "✅",
      "warning": "⚠️"
    }
  },
  "consoleI18nTester": {
    "found_target_file": "Archivo de destino encontrado",
    "scanning_files_for_console_statements": "Escaneando archivos en busca de declaraciones de consola",
    "found_javascript_files": "Archivos javascript encontrados",
    "console_i18n_analysis_results": "Resultados del análisis de la consola i18n",
    "total_console_statements": "Declaraciones totales de consola",
    "translated_statements": "Declaraciones traducidas",
    "hardcoded_statements": "Declaraciones codificadas",
    "translation_coverage": "Cobertura de traducción",
    "coverage_by_file": "Cobertura por expediente",
    "file_coverage_stats": "Estadísticas de cobertura de archivos",
    "hardcoded_console_statements": "Declaraciones de consola codificadas",
    "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": "Agregar instrucciones de claves",
    "perfect_translation_coverage": "Cobertura de traducción perfecta",
    "all_statements_using_translation": "Todas las declaraciones usando traducción.",
    "i18n_console_translation_checker": "Comprobador de traducción de consola I18n",
    "script_description_line1": "Línea de descripción del guión 1",
    "script_description_line2": "Línea de descripción del guión 2",
    "analysis_completed_in_duration": "Análisis completado en duración",
    "report_saved_to_path": "Informe guardado en la ruta",
    "found_hardcoded_messages": "Mensajes codificados encontrados",
    "all_console_messages_use_translation": "Todos los mensajes de la consola usan traducción."
  },
  "exportTranslations": {
    "createdDirectory": "Directorio creado",
    "foundFiles": "Archivos encontrados",
    "createdTemplate": "Plantilla creada",
    "skippedExisting": "Omitido existente",
    "title": "Título",
    "creatingTemplates": "Crear plantillas",
    "summary": "Resumen",
    "summaryLanguages": "Idiomas de resumen",
    "summaryFilesPerLanguage": "Archivos de resumen por idioma",
    "summaryTotalFiles": "Resumen total de archivos",
    "success": "Éxito",
    "location": "Ubicación",
    "nextSteps": "Próximos pasos"
  },
  "dashboard": {
    "title": "Título",
    "overview": "Descripción general"
  },
  "auth": {
    "title": "Título",
    "email": "Correo electrónico",
    "password": "Contraseña",
    "signIn": "Iniciar sesión",
    "forgotPassword": "Has olvidado tu contraseña",
    "signUp": "Inscribirse"
  },
  "checkUsage": {
    "usage_analysis_failed": "El análisis de uso falló."
  },
  "completeTranslations": {
    "warning_could_not_parse_filepa": "Advertencia: no se pudo analizar la ruta del archivo: {filePath}"
  },
  "pressEnterToContinue": "Presione Entrar para continuar...",
  "status": {
    "exitingCompleted": "Flujo de trabajo completado. Saliendo..."
  },
  "prompt": {
    "yesTokens": [
      "s",
      "si",
      "s?",
      "y",
      "yes"
    ],
    "noTokens": [
      "norte",
      "No"
    ]
  },
  "translate": {
    "title": "Traduccion automatica",
    "sourceDirectory": {
      "title": "Directorio de locales de origen",
      "currentProject": "Proyecto actual: {dir}",
      "accepted": "Aceptado: una ruta absoluta o una ruta relativa al proyecto actual.",
      "localeRootExample": "./locales  (despues elige idioma de origen: en)",
      "folderHint": "La carpeta puede contener archivos JSON directamente o carpetas de idioma como ./locales/en.",
      "defaultNotFound": "Directorio predeterminado no encontrado: {dir}",
      "enterExisting": "Introduce un directorio existente con archivos JSON de locales.",
      "directoryNotFound": "Directorio no encontrado: {dir}",
      "enterFolderExample": "Introduce una carpeta existente, por ejemplo ./locales/en.",
      "notDirectory": "No es un directorio: {dir}",
      "using": "Usando directorio de origen: {dir}",
      "noJsonDirect": "No se encontraron archivos JSON directamente en: {dir}",
      "usingLanguageFolder": "Usando carpeta del idioma de origen: {dir}",
      "noJsonWithLanguageFolder": "No se encontraron archivos JSON en: {dir}\nTambien se comprobo la carpeta del idioma de origen: {languageDir}",
      "noJson": "No se encontraron archivos JSON en: {dir}"
    },
    "targetLanguages": {
      "title": "Idioma(s) de destino",
      "allConfigured": "a) Todos los idiomas de destino configurados: {languages}",
      "noneConfigured": "a) Todos los idiomas de destino configurados: ninguno configurado",
      "enterCodes": "O introduce uno o mas codigos de idioma separados por comas o espacios.",
      "sourceExcluded": "El idioma de origen \"{lang}\" se excluira automaticamente.",
      "noneSelected": "No se seleccionaron idiomas de destino validos. Cancelando.",
      "configureHint": "Configura defaultLanguages en .i18ntk-config o introduce codigos manualmente.",
      "selected": "Idiomas de destino: {languages}"
    },
    "protection": {
      "title": "Terminos y claves protegidos"
    },
    "common": {
      "default": "Predeterminado: {value}",
      "examples": "Ejemplos:",
      "exampleValue": "Ejemplo: {value}",
      "examplesInline": "Ejemplos: {examples}",
      "pressEnterDefault": "Pulsa Enter para usar el valor predeterminado.",
      "usingDefault": "Usando predeterminado: {value}"
    },
    "sourceLanguage": {
      "title": "Codigo de idioma de origen",
      "hint": "Debe coincidir con el idioma de los valores JSON de origen.",
      "using": "Usando idioma de origen: {lang}",
      "invalid": "Codigo de idioma no valido. Usa 2+ caracteres (p. ej. en, de, fr)."
    },
    "files": {
      "title": "Que archivo(s) traducir?",
      "all": "a) Todos los archivos JSON ({count}: {files})",
      "choicePrompt": "Seleccion [a/all o numero de archivo]: ",
      "invalidChoice": "Seleccion no valida. Cancelando."
    },
    "dryRun": {
      "previewFor": "Vista previa para \"{lang}\"..."
    },
    "confirm": {
      "proceed": "Continuar con la traduccion real?",
      "yesNoPrompt": "[s]i / [n]o: ",
      "cancelled": "Traduccion cancelada."
    },
    "run": {
      "translatingTo": "Traduciendo a \"{lang}\"...",
      "failedFor": "Error para \"{lang}\": {error}"
    },
    "summary": {
      "title": "Resumen:",
      "complete": "Traduccion completada!"
    },
    "nonInteractive": {
      "useDirect": "Modo no interactivo. Usa la CLI directa:"
    },
    "errors": {
      "sourceDirectoryNotFound": "Directorio de locales de origen no encontrado: {dir}"
    }
  }
}
