i18ntk
Version:
i18ntk (i18n Toolkit) - A comprehensive, enterprise-grade internationalization (i18n) management toolkit for JavaScript/TypeScript projects with advanced analysis, validation, and automation features
742 lines • 119 kB
JSON
{
"meta": {
"version": "1.5.3",
"consolidated": "2025-08-06T14:36:37.481Z",
"sourceFiles": 256
},
"common": {
"welcome": "Bienvenido",
"hello": "Hola",
"goodbye": "Adiós",
"yes": "Sí",
"no": "No",
"save": "Guardar",
"cancel": "Cancelar",
"delete": "Eliminar",
"edit": "Editar",
"loading": "Cargando...",
"offlineTitle": "Desconectado",
"offlineMessage": "Estás desconectado",
"tryReconnect": "Intentar reconectar",
"logout": "Cerrar sesión",
"login": "Iniciar sesión",
"amount": "Monto",
"success": "Éxito",
"error": "Error",
"warning": "Advertencia",
"info": "Información:",
"debug": "Depuración",
"progress": "Progreso:",
"remaining": "Restante:",
"total": "Total:",
"completed": "7. ¡Completado exitosamente!",
"missing": "Faltante",
"partial": "Parcial",
"sameAsSource": "Igual que origen:",
"formatMismatch": "Desajuste de formato:",
"typeMismatch": "Desajuste de tipo:",
"structureMismatch": "Desajuste de estructura:",
"invalidOption": "Opción inválida",
"separator": "==================================================",
"initializationFailed": "❌ Falló la inicialización: {error}",
"stackTrace": "Traza de pila: {stack}",
"pressEnterToContinue": "Presione Enter para continuar...",
"pressEnterToReturn": "Presione Enter para volver al menú principal...",
"stepCompleted": "Paso '{stepName}' completado.",
"stepFailed": "Paso '{stepName}' falló.",
"runningStep": "Ejecutando paso: {stepName}",
"command": "Comando: {command}",
"startingWorkflow": "Iniciando flujo de trabajo...",
"workflowCompleted": "Flujo de trabajo completado.",
"checkReports": "Verifique los informes para más detalles.",
"errorExecutingCommand": "Error ejecutando comando: {error}",
"genericError": "❌ Error: {{error}}",
"errorGeneratingStatusSummary": "Error generando resumen de estado: {error}",
"errorRunningDebugTool": "Error ejecutando herramienta de depuración '{displayName}': {error}",
"errorReadingDebugLogs": "Error leyendo registros de depuración: {error}",
"errorAnalyzingLogFile": "Error analizando archivo de registro: {error}",
"errorAnalyzingTranslationKeys": "Error analizando claves de traducción: {error}",
"errorAnalyzingTranslationCompleteness": "Error analizando completitud de traducción: {error}",
"errorAnalyzingTranslationFormat": "Error analizando formato de traducción: {error}",
"errorAnalyzingTranslationType": "Error analizando tipo de traducción: {error}",
"errorAnalyzingTranslationStructure": "Error analizando estructura de traducción: {error}",
"errorAnalyzingTranslationFormatMismatch": "Error analizando desajuste de formato de traducción: {error}",
"errorAnalyzingTranslationTypeMismatch": "Error analizando desajuste de tipo de traducción: {error}",
"errorAnalyzingTranslationStructureMismatch": "Error analizando desajuste de estructura de traducción: {error}",
"errorAnalyzingTranslationSameAsSource": "Error analizando traducción igual que fuente: {error}",
"title": "Estado",
"nextStep1": "1. Análisis de uso:",
"nextStep2": "2. Validar traducciones:",
"nextStep3": "3. Analizar completitud:",
"nextStep4": "4. Completar traducciones faltantes:",
"nextStep5": "5. Generar reporte resumido:",
"nextStep6": "6. Revisar y finalizar traducciones:",
"generating": "Generando reporte resumido...",
"review": "Revisando traducciones...",
"finalizing": "Finalizando traducciones...",
"finalized": "¡Finalizado exitosamente!",
"errors": "Errores:",
"warnings": "Advertencias:",
"completedKeys": "Claves completadas:",
"missingKeys": "Claves faltantes:",
"partialKeys": "Claves parciales:"
},
"analyze": {
"help_message": "\nAnalizador de Traducción I18n\n\nUso: node i18ntk-analyze.js [opciones]\n\nOpciones:\n --source-dir <dir> Directorio fuente para escanear (por defecto: ./src)\n --i18n-dir <dir> Directorio i18n (por defecto: ./src/locales)\n --output-report Generar informe detallado\n --output-dir <dir> Directorio de salida para informes (por defecto: ./reports)\n --help Mostrar esta ayuda\n\nEjemplos:\n node i18ntk-analyze.js --output-report\n node i18ntk-analyze.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-analyze.js --output-dir=./analysis --output-report\n",
"source_directory": "📁 Directorio fuente: {sourceDir}",
"i18n_directory": "🌐 Directorio i18n: {i18nDir}",
"loading_translation_files": "📋 Cargando archivos de traducción...",
"sourceDirectoryLabel": "📁 Directorio Fuente: {{sourceDir}}",
"sourceLanguageLabel": "🌍 Idioma Fuente: {{sourceLanguage}}",
"strictModeLabel": "⚙️ Modo Estricto: {{mode}}\n",
"found_translation_files_count": "✅ Encontrados {count} archivos de traducción",
"analyzing_translations": "🔍 Analizando traducciones...",
"analysis_completed_successfully": "🎉 ¡Análisis completado exitosamente!",
"analysis_results": "📊 RESULTADOS DEL ANÁLISIS",
"language_analysis_stats": " {language}: {translatedKeys}/{totalKeys} ({percentage}% traducido)",
"sample_missing_keys": "\nEjemplo de claves faltantes:",
"missing_key": "- {key}",
"and_more_missing": "...y {count} más.",
"sample_unused_keys": "\nEjemplo de claves no utilizadas:",
"unused_key": "- {key}",
"and_more_unused": "...y {count} más.",
"recommendations": "\n📋 RECOMENDACIONES",
"add_missing_translations": "💡 Agregar traducciones faltantes para mejorar la cobertura.",
"remove_unused_translations": "💡 Eliminar traducciones no utilizadas para mantener su proyecto limpio.",
"next_steps": "\n📋 PRÓXIMOS PASOS",
"review_analysis_results": "1. Revisar los resultados del análisis en la consola o informe generado.",
"run_with_output_report": "2. Ejecutar con --output-report para informe detallado.",
"add_or_remove_translations": "3. Agregar traducciones faltantes o eliminar las no utilizadas.",
"rerun_analysis": "4. Volver a ejecutar el análisis para verificar mejoras.",
"analysis_summary": "📊 RESUMEN DEL ANÁLISIS",
"source_files_scanned": "Archivos fuente escaneados: {fileCount}",
"translation_files_checked": "Archivos de traducción verificados: {translationFileCount}",
"total_keys": "Claves totales: {totalKeys}",
"translated_keys": "Claves traducidas: {translatedKeys}",
"missing_keys": "Claves faltantes: {missingKeys}",
"unused_keys": "Claves no utilizadas: {unusedKeys}",
"translation_coverage": "Cobertura de traducción: {coverage}%",
"analysis_passed_for_language": "✅ Análisis aprobado para {language}",
"analysis_failed_for_language": "❌ Análisis fallido para {language} ({missingKeys} faltantes, {unusedKeys} no utilizadas)",
"starting": "🔍 Iniciando análisis de traducción...",
"foundLanguages": "📋 Encontrados {count} idiomas para analizar: {languages}",
"analyzing": "🔄 Analizando {language}...",
"reportTitle": "📊 INFORME DE ANÁLISIS DE TRADUCCIÓN",
"generated": "Generado: {timestamp}",
"status": "Estado: {translated}/{total} claves ({percentage}% traducido)",
"filesAnalyzed": "Archivos analizados: {analyzed}/{total}",
"keysNeedingTranslation": "Claves necesitando traducción: {count}",
"fileBreakdown": "📋 DESGLOSE DE ARCHIVOS",
"error": "Error",
"completed": "✅ Análisis completado para {language}",
"progress": "📊 Progreso General: {translated}/{total} idiomas procesados",
"reportSaved": " Informe guardado: {reportPath}",
"summary": "📊 RESUMEN DEL ANÁLISIS",
"finished": "✅ ¡Análisis completado exitosamente!",
"statusFileMissing": "❌ Falta archivo de traducción",
"sourceKeys": "📊 Claves fuente: {count}",
"translation": "📊 Traducción: {translated}/{total} ({percentage}%)",
"structure": "🗂️ Estructura: {status}",
"consistent": "Consistente",
"inconsistent": "Inconsistente",
"missingKeys": "Claves faltantes: {count}",
"extraKeys": "Claves extra: {count}",
"issues": "⚠️ Problemas encontrados: {count}",
"issueType": {
"not_translated": "No traducido: {count}",
"empty_value": "Valores vacíos: {count}",
"partial_translation": "Traducciones parciales: {count}",
"format_mismatch": "Desajustes de formato: {count}",
"type_mismatch": "Desajustes de tipo: {count}",
"structure_mismatch": "Desajustes de estructura: {count}",
"same_as_source": "Igual que fuente: {count}"
},
"keysToTranslate": "📋 CLAVES PARA TRADUCIR",
"key": "Clave",
"english": "Inglés",
"needsTranslation": "NECESITA TRADUCCIÓN",
"andMoreKeys": "...y {count} claves más.",
"noLanguages": "⚠️ No se encontraron idiomas de destino.",
"languageStats": "{language}: {percentage}% completo ({translated}/{total} claves)",
"invalidReportFilePath": "Ruta de archivo de informe inválida",
"failedToWriteReportFile": "Error al escribir el archivo de informe de forma segura"
},
"complete": {
"configLoadedSuccessfully": "Configuración cargada exitosamente",
"configLoadingFailed": "Falló la carga de configuración",
"title": "🌍 COMPLETADO DE TRADUCCIÓN I18N",
"separator": "============================================================",
"sourceDir": "📁 Directorio fuente: {sourceDir}",
"sourceLanguage": "🌐 Idioma fuente: {sourceLanguage}",
"dryRunMode": "🧪 Modo de simulación - no se realizarán cambios",
"languages": "🌍 Idiomas disponibles: {languages}",
"addingMissingKeys": "➕ Agregando claves faltantes a los archivos de traducción...",
"processing": "🔄 Procesando {language}...",
"addedKeys": "✅ Agregadas {count} claves faltantes",
"noChangesNeeded": "✅ No se necesitan cambios para {language}",
"summaryTitle": "📊 RESUMEN DE COMPLETADO",
"totalChanges": "📝 Cambios totales: {totalChanges}",
"languagesProcessed": "🌍 Idiomas procesados: {languagesProcessed}",
"missingKeysAdded": "➕ Claves faltantes agregadas: {missingKeysAdded}",
"nextStepsTitle": "📋 PRÓXIMOS PASOS",
"nextStep1": "1. Ejecutar análisis de uso:",
"nextStep2": " node i18ntk-usage.js --output-report",
"nextStep3": "2. Validar traducciones:",
"nextStep4": " node i18ntk-validate.js",
"nextStep5": "3. Analizar patrones:",
"nextStep6": " node i18ntk-analyze.js",
"allKeysAvailable": "🎉 ¡Todas las claves de traducción están ahora disponibles!",
"runWithoutDryRun": "💡 Ejecutar sin --dry-run para aplicar cambios",
"deletingOldReport": "🗑️ Eliminando informe antiguo...",
"generatingFreshAnalysis": "📊 Generando análisis de uso nuevo...",
"couldNotGenerate": "❌ No se pudo generar el análisis de uso",
"reportNotFound": "📋 No se encontró el informe de uso. Usando claves comunes...",
"foundMissingKeys": "📋 Encontradas {count} claves faltantes del análisis de uso",
"couldNotParse": "❌ No se pudo analizar el informe de uso. Usando claves comunes...",
"errorDuringCompletion": "❌ Error durante la finalización: {error}",
"fatalError": "❌ Error fatal: {error}",
"configurationValidationFailed": "Falló la validación de configuración: faltan campos requeridos"
},
"sizing": {
"separator": "================================================================================",
"lineSeparator": "--------------------------------------------------------------------------------",
"analysisStats": "{{stats}}",
"sourceDirectoryLabel": "📁 Directorio fuente: {{sourceDir}}",
"sourceLanguageLabel": "🌍 Idioma fuente: {{sourceLanguage}}",
"strictModeLabel": "⚙️ Modo estricto: {{mode}}",
"invalidSourceDirectoryError": "Ruta de directorio fuente inválida: {{sourceDir}}",
"sourceDirectoryNotFoundError": "Directorio fuente no encontrado: {{sourceDir}}",
"invalidOutputDirectoryError": "Ruta de directorio de salida inválida: {{outputDir}}",
"invalidReportFileError": "Ruta de archivo de informe inválida",
"problematic_keys": "Claves problemáticas: {problematicKeys}",
"problematicKeysLabel": "Claves problemáticas: {problematicKeys}",
"long_translations": "Traducciones largas: {longTranslations}",
"failedToSaveReportError": "Error al guardar informe de forma segura",
"invalidCsvFileError": "Ruta de archivo CSV inválida",
"failedToSaveCsvError": "Error al guardar informe CSV de forma segura",
"fatalError": "❌ El análisis de tamaño falló: {{error}}",
"starting_i18n_sizing_analysis": "Iniciando análisis de tamaño i18n...",
"source_directory": "Directorio fuente: {{sourceDir}}",
"found_languages": "Idiomas encontrados: {{languages}}",
"analyzing_file_sizes": "Analizando tamaños de archivos...",
"analyzing_translation_content": "Analizando contenido de traducción...",
"generating_size_comparisons": "Generando comparaciones de tamaño...",
"no_languages_found_for_comparison": "No se encontraron idiomas para comparación",
"sizing_analysis_results": "Resultados del Análisis de Tamaño I18n",
"file_sizes_title": "Tamaños de Archivos",
"file_sizes_header": "Idioma Tamaño(KB) Líneas Caracteres",
"file_size_row": "{{lang}} {{sizeKB}} {{lines}} {{characters}}",
"language_statistics_title": "Estadísticas de Idioma",
"language_stats_header": "Idioma Claves Caracteres Long Prom Long Máx Vacías Largas",
"language_stats_row": "{{lang}} {{totalKeys}} {{totalCharacters}} {{averageKeyLength}} {{maxKeyLength}} {{emptyKeys}} {{longKeys}}",
"size_variations_title": "Variaciones de Tamaño",
"size_variations_header": "Idioma Dif Caract % Dif Problemático",
"size_variation_row": "{{lang}} {{characterDifference}} {{percentageDifference}}% {{problematic}}",
"problematic_yes": "Sí",
"problematic_no": "No",
"recommendations_title": "Recomendaciones",
"recommendation_item": "{{index}}. {{recommendation}}",
"problematic_key_detail": " {{index}}. Clave: '{{key}}' - Variaciones: {{variations}}",
"generating_detailed_report": "Generando informe detallado...",
"keysHaveSignificantSizeVariations": "las claves tienen variaciones de tamaño significativas",
"longTranslationsDetected": "${lang} tiene ${data.longKeys} traducciones de más de 100 caracteres - considera dividirlas",
"report_saved_to": "Informe guardado en: {{reportPath}}",
"considerReviewingTranslations": "Considera revisar las traducciones de ${lang} - son ${data.percentageDifference}% más largas que la referencia",
"csv_report_saved_to": "Informe CSV guardado en: {{csvPath}}",
"no_translation_files_found": "No se encontraron archivos de traducción",
"analysis_completed": "Análisis completado en {{duration}}ms",
"analysis_failed": "Análisis fallido: {{errorMessage}}",
"failed_to_parse_language_error": "Error al analizar las traducciones de {{language}}: {{errorMessage}}",
"recommendations": {
"keys_have_significant_size_variations": "las claves tienen variaciones de tamaño significativas",
"consider_reviewing_translations": "Considera revisar las traducciones de {{lang}} - son {{percentageDifference}}% {{comparison}} que la referencia",
"long_translations_detected": "{{lang}} tiene {{longKeys}} traducciones de más de {{threshold}} caracteres - considera dividirlas"
},
"hardcodedTexts": {
"keysHaveSignificantSizeVariations": "las claves tienen variaciones de tamaño significativas",
"considerReviewingTranslations": "Considera revisar las traducciones de {{lang}} - son {{percentageDifference}}% {{comparison}} que la referencia",
"longTranslationsDetected": "{{lang}} tiene {{longKeys}} traducciones de más de {{threshold}} caracteres - considera dividirlas"
}
},
"usage": {
"help_message": "\nAnalizador de Uso de I18n\n\nUso: node i18ntk-usage.js [opciones]\n\nOpciones:\n --source-dir <dir> Directorio de origen a escanear (predeterminado: ./src)\n --i18n-dir <dir> Directorio de i18n (predeterminado: ./src/locales)\n --output-report Generar informe detallado\n --output-dir <dir> Directorio de salida para los informes (predeterminado: ./reports)\n --help Mostrar esta ayuda\n\nEjemplos:\n node i18ntk-usage.js --output-report\n node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-usage.js --output-dir=./analysis --output-report\n",
"source_directory_thissourcedir": "📁 Directorio de origen: {sourceDir}",
"translationCompletenessTitle": "🌍 Completitud de Traducción:",
"i18n_directory_thisi18ndir": "🌐 Directorio i18n: {i18nDir}",
"failed_to_parse_filename_error": "⚠️ Error al parsear {fileName}: {errorMessage}",
"analyzing_source_files": "🔍 Analizando archivos de origen...",
"found_files_in_source": "📂 Encontrados {numFiles} archivos en el directorio de origen",
"found_thisusedkeyssize_unique_": "🎯 Encontradas {usedKeysSize} claves únicas usadas",
"total_key_usages_totalkeysfoun": "📊 Uso total de claves: {totalKeysFound}",
"loading_available_translation_": "📋 Cargando claves de traducción disponibles...",
"found_thisavailablekeyssize_av": "✅ Encontradas {availableKeysSize} claves disponibles",
"foundTranslationFiles": "✅ Encontrados {count} archivos de traducción",
"pressEnterToReturnToMenu": "Presiona Enter para regresar al menú principal",
"notTranslatedKeysTotal": "⚠️ Claves no traducidas: {total}",
"noSourceFilesFound": "⚠️ No se encontraron archivos de origen.",
"reviewNotTranslatedKeys": "💡 Revisa las claves no traducidas",
"analysisCompletedSuccessfully": "🎉 ¡Análisis completado con éxito!",
"detectedSourceDirectory": "Directorio de origen detectado: {{sourceDir}}",
"detectedI18nDirectory": "Directorio i18n detectado: {{i18nDir}}",
"fileInfo": " 📄 {namespace}: {keys} claves",
"failedToAnalyzeUsage": "❌ Error al analizar uso: {error}",
"failedToAnalyzeFile": "❌ Error al analizar archivo: {error}",
"analyzerInitialized": "Analizador inicializado",
"analyzerInitFailed": "Fallo la inicialización del analizador: {error}",
"argsParsed": "Argumentos analizados",
"argsParseFailed": "Error al parsear argumentos: {error}",
"translationDiscoveryError": "Error al descubrir traducciones: {error}",
"fileTraversalError": "Error al recorrer archivos: {error}",
"usageAnalysisFailed": "Fallo el análisis de uso: {error}",
"translationFileParseError": "Error al parsear archivo de traducción: {error}",
"translationKeysLoadError": "Error al cargar claves de traducción: {error}",
"languageCompletenessStats": "{language}: {translated}/{total} ({completeness}% traducido)",
"missingKeysCount": "Claves faltantes: {count}",
"analyzingTranslationCompleteness": "Analizando la completitud de traducción...",
"unusedKeysCount": "Claves no utilizadas: {count}",
"usedKeysCount": "Claves usadas: {count}",
"availableKeysCount": "Claves disponibles: {count}",
"analysisResults": "Resultados del análisis:",
"checkUsage": {
"title": "🔍 ANÁLISIS DE USO DE I18N",
"message": "Analizando el uso de claves i18n en tu proyecto.",
"help_message": "\nAnalizador de Uso de I18n\n\nUso: node i18ntk-usage.js [opciones]\n\nOpciones:\n --source-dir <dir> Directorio de origen a escanear (predeterminado: ./src)\n --i18n-dir <dir> Directorio de i18n (predeterminado: ./src/locales)\n --output-report Generar informe detallado\n --output-dir <dir> Directorio de salida para los informes (predeterminado: ./reports)\n --help Mostrar esta ayuda\n\nEjemplos:\n node i18ntk-usage.js --output-report\n node i18ntk-usage.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-usage.js --output-dir=./analysis --output-report\n",
"source_directory_thissourcedir": "📁 Directorio de origen: {sourceDir}",
"i18n_directory_thisi18ndir": "🌐 Directorio i18n: {i18nDir}",
"loading_available_translation_": "📋 Cargando claves de traducción disponibles...",
"found_thisavailablekeyssize_av": "✅ Encontradas {availableKeysSize} claves disponibles",
"analyzing_source_files": "🔍 Analizando archivos de origen...",
"found_files_in_source": "📂 Encontrados {numFiles} archivos en el directorio de origen",
"found_thisusedkeyssize_unique_": "🎯 Encontradas {usedKeysSize} claves únicas usadas",
"total_key_usages_totalkeysfoun": "📊 Uso total de claves: {totalKeysFound}",
"translation_completeness_title": "📊 COMPLETITUD DE TRADUCCIÓN",
"language_completeness_stats": " {language}: {translated}/{total} ({completeness}% traducido)",
"n_sample_unused_keys": "\nEjemplo de claves no usadas:",
"key": "- {key}",
"and_unusedkeyslength_5_more": "...y {count} más.",
"n_recommendations": "\n📋 RECOMENDACIONES",
"consider_removing_unused_trans": "💡 Considera eliminar traducciones no usadas para mantener tu proyecto limpio.",
"n_next_steps": "\n📋 PRÓXIMOS PASOS",
"1_review_the_analysis_results": "1. Revisa los resultados del análisis en la consola o en el informe generado.",
"2_run_with_outputreport_for_de": "2. Ejecuta con --output-report para obtener un informe detallado.",
"3_remove_unused_keys_or_add_mi": "3. Elimina claves no usadas o añade claves faltantes en tu código fuente.",
"4_rerun_analysis_to_verify_imp": "4. Vuelve a ejecutar el análisis para verificar las mejoras.",
"usage_analysis_results": "📊 RESULTADOS DEL ANÁLISIS DE USO",
"source_files_scanned_thisfileu": "Archivos de origen escaneados: {fileUsageSize}",
"available_translation_keys_thi": "Claves de traducción disponibles: {availableKeysSize}",
"used_translation_keys_thisused": "Claves de traducción usadas: {usedKeysSize}",
"dynamic_keys_detected_dynamick": "Claves dinámicas detectadas: {dynamicKeysLength}",
"unused_keys_unusedkeyslength": "Claves no usadas: {unusedKeysLength}",
"missing_keys_missingkeyslength": "Claves faltantes: {missingKeysLength}",
"noSourceFilesFound": "No se encontraron archivos de origen para analizar.",
"processedFiles": "Procesados {processedFiles} de {totalFiles} archivos.",
"i18nDirectoryNotFound": "Directorio i18n no encontrado: {i18nDir}",
"noTranslationLanguagesFound": "No se encontraron idiomas de traducción.",
"failedToAnalyzeFile": "Error al analizar el archivo {filePath}: {error}",
"failedToAnalyzeLanguage": "Error al analizar el idioma {language}: {error}",
"translationCompletenessAnalysisFailed": "Fallo el análisis de completitud de traducción: {error}",
"n": ""
},
"complete": {
"configLoadedSuccessfully": "Configuración cargada correctamente",
"configLoadingFailed": "Error al cargar la configuración",
"title": "🌍 COMPLETADO DE TRADUCCIÓN I18N",
"separator": "============================================================",
"sourceDir": "📁 Directorio de origen: {sourceDir}",
"sourceLanguage": "🌐 Idioma de origen: {sourceLanguage}",
"dryRunMode": "🧪 Modo de simulación - no se harán cambios",
"languages": "🌍 Idiomas disponibles: {languages}",
"addingMissingKeys": "➕ Agregando claves faltantes a los archivos de traducción...",
"processing": "🔄 Procesando {language}...",
"addedKeys": "✅ Agregadas {count} claves faltantes",
"noChangesNeeded": "✅ No se necesitan cambios para {language}",
"summaryTitle": "📊 RESUMEN DE COMPLETADO",
"totalChanges": "📝 Cambios totales: {totalChanges}",
"languagesProcessed": "🌍 Idiomas procesados: {languagesProcessed}",
"missingKeysAdded": "➕ Claves faltantes agregadas: {missingKeysAdded}",
"nextStepsTitle": "📋 SIGUIENTES PASOS",
"nextStep1": "1. Ejecuta el análisis de uso:",
"nextStep2": " node i18ntk-usage.js --output-report",
"nextStep3": "2. Valida las traducciones:",
"nextStep4": " node i18ntk-validate.js",
"nextStep5": "3. Analiza patrones:",
"nextStep6": " node i18ntk-analyze.js",
"allKeysAvailable": "🎉 ¡Todas las claves de traducción ya están disponibles!",
"runWithoutDryRun": "💡 Ejecuta sin --dry-run para aplicar los cambios",
"deletingOldReport": "🗑️ Eliminando informe antiguo...",
"generatingFreshAnalysis": "📊 Generando un nuevo análisis de uso...",
"couldNotGenerate": "❌ No se pudo generar el análisis de uso",
"reportNotFound": "📋 Informe de uso no encontrado. Usando claves comunes...",
"foundMissingKeys": "📋 Encontradas {count} claves faltantes del análisis de uso",
"couldNotParse": "❌ No se pudo parsear el informe de uso. Usando claves comunes..."
}
},
"validate": {
"help_message": "\nValidador de Traducciones I18n\n\nUso: node i18ntk-validate.js [opciones]\n\nOpciones:\n --source-dir <dir> Directorio fuente a escanear (por defecto: ./src)\n --i18n-dir <dir> Directorio I18n (por defecto: ./src/locales)\n --output-report Generar informe detallado\n --output-dir <dir> Directorio de salida para informes (por defecto: ./reports)\n --help Mostrar esta ayuda\n\nEjemplos:\n node i18ntk-validate.js --output-report\n node i18ntk-validate.js --source-dir=./app --i18n-dir=./locales\n node i18ntk-validate.js --output-dir=./analysis --output-report\n",
"title": "🔍 Validador de Traducciones I18n",
"message": "Iniciando proceso de validación...",
"sourceDirectory": "📁 Directorio fuente: {dir}",
"sourceLanguage": "🌍 Idioma fuente: {sourceLanguage}",
"strictMode": "⚙️ Modo estricto: {mode}",
"noTargetLanguages": "⚠️ No se encontraron idiomas de destino para validar",
"validatingLanguages": "🌍 Validando idiomas: {langs}",
"validatingLanguage": "🔍 Validando idioma: {lang}",
"filesCount": "📄 Archivos: {count}",
"keysCount": "🔑 Claves: {count}",
"missingFilesCount": "📁 Archivos faltantes: {count}",
"syntaxErrorsCount": "❌ Errores de sintaxis: {count}",
"translationPercentage": "🎯 Traducción: {percentage}% ({translated}/{total} claves)",
"validationSummary": "📊 RESUMEN DE VALIDACIÓN",
"validation_failed": "❌ Validación fallida: {error}",
"totalErrors": "❌ Errores totales: {count}",
"totalWarnings": "⚠️ Advertencias totales: {count}",
"errorsSection": "❌ ERRORES",
"warningsSection": "⚠️ ADVERTENCIAS",
"recommendationsSection": "💡 RECOMENDACIONES",
"fixErrorsFirst": "1. Corrige todos los errores primero",
"resolveMissingFilesAndSyntaxErrors": "1. Resuelve archivos faltantes y errores de sintaxis",
"fixStructuralInconsistencies": "2. Corrige inconsistencias estructurales",
"completeMissingTranslations": "3. Completa traducciones faltantes",
"rerunValidation": "4. Ejecuta nuevamente la validación para verificar las correcciones",
"addressWarnings": "Aborda las advertencias para mejorar la calidad",
"reviewWarnings": "Revisa las advertencias y corrige si es necesario",
"considerRunningWithStrict": "2. Considera ejecutar con el indicador --strict para una validación más estricta",
"allValidationsPassed": "🎉 ¡Todas las validaciones pasaron!",
"considerRunningUsageAnalysis": "Considera ejecutar el análisis de uso: node i18ntk-usage.js",
"deletedOldReport": "🗑️ Informe de validación anterior eliminado",
"sourceDir": "📁 Directorio fuente: {sourceDir}",
"i18nDir": "🌐 Directorio I18n: {i18nDir}",
"loadingTranslationFiles": "📋 Cargando archivos de traducción...",
"foundTranslationFilesCount": "✅ {count} archivos de traducción encontrados",
"analyzingTranslations": "🔍 Analizando traducciones...",
"validationCompletedSuccessfully": "🎉 Validación completada con éxito",
"validationErrorsFound": "⚠️ Se encontraron errores de validación: {count}",
"validationWarningsFound": "⚠️ Se encontraron advertencias de validación: {count}",
"validationPassed": "✅ Validación aprobada sin errores",
"validationFailed": "Validación fallida: {error}",
"startingValidationProcess": "🔍 Iniciando proceso de validación...",
"validationProcessCompletedSuccessfully": "✅ Proceso de validación completado con éxito",
"stackTrace": "Traza de error: {{stack}}",
"authenticationFailed": "❌ Autenticación fallida. Acceso denegado.",
"fatalValidationError": "❌ Error fatal de validación: {{error}}",
"configAccess": "Accediendo a configuración para validación",
"configValidated": "Configuración validada con éxito",
"configError": "Error de configuración: {error}",
"validatorInit": "Inicializando validador I18n",
"validatorInitialized": "Validador I18n inicializado correctamente",
"validatorInitError": "Error al inicializar el validador: {error}",
"argsParsing": "Analizando argumentos de línea de comandos",
"argsParsed": "Argumentos analizados con éxito",
"argsParseError": "Error al analizar argumentos: {error}",
"languagesScan": "Escaneando idiomas disponibles",
"languagesFound": "{count} idiomas encontrados",
"languagesScanError": "Error al escanear idiomas: {error}",
"filesScan": "{count} archivos encontrados en {language}",
"filesScanError": "Error al escanear archivos: {error}",
"jsonValidated": "Sintaxis JSON validada: {filePath}",
"jsonValidationError": "Error de validación JSON: {error}",
"languageValidation": "Validando idioma: {language}",
"languageValidationError": "Error de validación de idioma: {error}",
"fileDeleted": "Archivo eliminado",
"runStarted": "Iniciando ejecución de validación",
"runCompleted": "Ejecución de validación completada exitosamente",
"runError": "Fallo en la ejecución de validación: {error}",
"scriptExecution": "Ejecución del script",
"validationCompleted": "Validación completada",
"validationError": "Error de validación: {error}",
"separator": "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
"languageHeader": "🌐 Idioma: {language}",
"validationResults": "📊 Resultados de Validación",
"noErrors": "✅ No se encontraron errores",
"noWarnings": "✅ No se encontraron advertencias",
"summaryHeader": "📋 RESUMEN GENERAL",
"progressIndicator": "⏳ Procesando...",
"completedIndicator": "✅ Completado",
"errorIndicator": "❌ Error",
"warningIndicator": "⚠️ Advertencia",
"infoIndicator": "ℹ️ Información",
"sourceDirNotConfigured": "Directorio fuente no configurado",
"sourceLanguageNotConfigured": "Idioma fuente no configurado",
"translationFunctionNotInitialized": "Función de traducción no inicializada correctamente",
"sourceLanguageDirectoryNotFound": "No se encontró el directorio del idioma fuente",
"specifiedLanguageNotFound": "No se encontró el idioma especificado",
"noJsonFilesFound": "No se encontraron archivos JSON en el directorio fuente: {sourceDir}",
"i18nDirectoryNotFound": "No se encontró el directorio I18n: {i18nDir}",
"invalidDirectoryPaths": "Se detectaron rutas de directorio no válidas",
"invalidSampleFilePath": "Ruta del 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": "Error al escribir el archivo: {filePath}"
},
"adminCli": {
"setupPinProtectionTitle": "\n🔐 Configurando Protección con PIN de Administrador",
"setupPinProtectionDescription": "Esto requerirá un PIN de 4-6 dígitos para operaciones administrativas.",
"enablePinProtectionPrompt": "¿Desea habilitar la protección con PIN de administrador?",
"setupCancelled": "Configuración de protección con PIN de administrador cancelada.",
"enterPinPrompt": "Ingrese un PIN de 4-6 dígitos: ",
"pinFormatError": "❌ El PIN debe tener 4-6 dígitos. Inténtelo de nuevo.",
"confirmPinPrompt": "Confirme el PIN: ",
"pinMismatchError": "❌ Los PIN no coinciden. Inténtelo de nuevo.",
"pinProtectionEnabledSuccess": "¡✅ Protección con PIN de administrador habilitada exitosamente!",
"pinRecoveryWarning": "⚠️ Recuerde su PIN - no puede recuperarse si se pierde.",
"setupPinProtectionFailed": "❌ Error al configurar la protección con PIN de administrador.",
"errorSettingUpPin": "❌ Error al configurar el PIN de administrador: {message}",
"authRequiredForOperation": "\n🔐 Autenticación de administrador requerida para: {operation}",
"invalidPinFormat": "❌ Formato de PIN inválido. El PIN debe tener 4-6 dígitos.",
"authenticationSuccess": "¡✅ Autenticación exitosa!",
"invalidPinAttemptsRemaining": "❌ PIN inválido. Quedan {remaining} intentos.",
"authenticationFailedAccessDenied": "❌ Autenticación fallida. Acceso denegado.",
"authenticationError": "❌ Error de autenticación: {message}",
"pinProtectionNotEnabled": "La protección con PIN de administrador no está habilitada actualmente.",
"disablingPinProtectionTitle": "\n🔓 Deshabilitando Protección con PIN de Administrador",
"confirmDisablePinProtection": "¿Está seguro de que desea deshabilitar la protección con PIN de administrador?",
"operationCancelled": "Operación cancelada.",
"pinProtectionDisabledSuccess": "✅ Protección con PIN de administrador deshabilitada.",
"disablePinProtectionFailed": "❌ Error al deshabilitar la protección con PIN de administrador.",
"errorDisablingPinProtection": "❌ Error al deshabilitar la protección de administrador: {message}",
"adminProtectionStatusTitle": "\n🔐 Estado de Protección de Administrador",
"statusEnabled": "Estado: ✅ HABILITADO",
"protectionDetails": "Protección: Se requiere PIN de 4-6 dígitos para operaciones de administrador",
"lockoutDetails": "Bloqueo: 3 intentos fallidos = 15 minutos de bloqueo",
"statusDisabled": "Estado: ❌ DESHABILITADO",
"noAuthRequired": "Protección: No se requiere autenticación",
"unprotectedRisk": "Riesgo: Las operaciones administrativas están desprotegidas",
"errorCheckingAdminStatus": "❌ Error al verificar el estado de administrador: {message}",
"authRequired": "🔐 Autenticación de administrador requerida.",
"invalidPin": "❌ PIN invá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 sensibles.",
"enterPin": "Ingrese el PIN de administrador: ",
"accessGranted": "Acceso concedido."
},
"adminPin": {
"setup_title": "🔐 Configuración de PIN de Administrador",
"setup_separator": "============================================================",
"setup_description": "Cree un PIN de 4-6 dígitos para acceso de administrador a configuraciones sensibles.",
"required_for_title": "Este PIN será requerido para:",
"required_for_1": " • Cambiar configuraciones de seguridad",
"required_for_2": " • Modificar configuraciones avanzadas",
"required_for_3": " • Acceder a herramientas de depuración",
"required_for_4": " • Restablecer configuraciones",
"setup_note": "💡 Nota: Verá asteriscos (*) mientras escribe - estos son solo caracteres de enmascaramiento.",
"setup_digits_only": " Solo se aceptan números 0-9 como dígitos del PIN.",
"invalid_pin_length": "❌ PIN inválido. Debe tener 4-6 dígitos (solo números 0-9).",
"invalid_pin_example": " Ejemplo: 1234 o 567890",
"pins_do_not_match": "❌ Los PIN no coinciden.",
"setup_success": "¡✅ PIN de administrador configurado exitosamente!",
"setup_warning": "⚠️ Mantenga este PIN seguro. No puede recuperarse si se pierde.",
"setup_error": "❌ Error al configurar el PIN:",
"session_expired": "\n⏰ Sesión de administrador expirada por inactividad.",
"no_pin_set_setting_up": "⚠️ No hay PIN de administrador configurado. Configurando PIN...",
"no_pin_configured_access_denied": "⚠️ No hay PIN de administrador configurado. Acceso denegado.",
"use_admin_settings_to_set_pin": "💡 Use la configuración de administrador para configurar un PIN primero.",
"locked_out": "🔒 El acceso de administrador está bloqueado por demasiados intentos fallidos.",
"wait_before_retry": "Por favor espere 5 minutos antes de intentar de nuevo.",
"access_granted": "✅ Acceso de administrador concedido.",
"incorrect_pin": "❌ PIN incorrecto. Quedan {attempts} intentos.",
"verify_pin_error": "❌ Error al verificar el PIN:",
"already_configured": "✅ PIN de administrador ya está configurado.",
"optional_setup_title": "\n🔐 Configuración de PIN de Administrador (Opcional)",
"optional_setup_description": "La protección con PIN de administrador agrega seguridad para operaciones sensibles como:",
"setup_prompt": "¿Desea configurar un PIN de administrador? (s/N): ",
"skipping_setup": "⏭️ Omitiendo configuración de PIN de administrador. Puede configurarlo más tarde en ajustes.",
"setup_prompt_error": "❌ Error durante el mensaje de configuración de PIN:",
"protectedAccess": "Acceso protegido: Se requiere autenticación de administrador para operaciones sensibles.",
"enterPin": "Ingrese el PIN de administrador: ",
"accessGranted": "Acceso concedido.",
"invalidPin": "❌ PIN inválido. Inténtelo de nuevo.",
"weak_pin_warning": "⚠️ ADVERTENCIA: Este PIN parece ser débil o común.",
"weak_pin_suggestion": "💡 Considere usar un PIN más fuerte con dígitos variados.",
"use_anyway_prompt": "Escriba \"sí\" para usar de todos modos, o presione Enter para elegir un PIN diferente: ",
"enter_new_pin": "Ingrese el nuevo PIN de administrador (4-6 dígitos): ",
"confirm_pin": "Confirme el PIN de administrador: ",
"not_set": "No Configurado",
"pin_display_mask": "####"
},
"autorun": {
"missingRequiredFile": "Archivo requerido faltante: {file}",
"runInitializationFirst": "Por favor ejecute la inicialización primero.",
"initializationCheckPassed": "Verificación de inicialización aprobada.",
"runningStep": "Ejecutando paso: {stepName}",
"commandLabel": "Comando: {command}",
"stepRunning": "Paso '{stepName}' ejecutando...",
"stepRunningWithNumber": "[{stepNumber}/{totalSteps}] Paso '{stepName}' ejecutando...",
"stepCompletedWithTime": "Paso '{stepName}' completado en {duration}ms.",
"stepCompleted": "Paso '{stepName}' completado.",
"stepFailed": "Paso '{stepName}' falló.",
"errorLabel": "Error: {error}",
"stepFailedWithError": "Paso '{stepName}' falló con error: {error}",
"requiredStepFailed": "Paso requerido falló. Deteniendo flujo de trabajo.",
"optionalStepFailed": "Paso opcional falló. Continuando flujo de trabajo.",
"startingAutoRunWorkflow": "Iniciando Flujo de Trabajo Automático...",
"workflowIncludesSteps": "El flujo de trabajo incluye {count} pasos:",
"stepRequired": "(Requerido)",
"stepOptional": "(Opcional)",
"startingExecution": "Iniciando ejecución...",
"workflowStopped": "Flujo de trabajo detenido.",
"workflowCompleted": "Flujo de trabajo completado.",
"pressEnterToContinue": "Presione Enter para continuar...",
"runningSelectedSteps": "Ejecutando pasos seleccionados...",
"invalidStepNumber": "Número de paso inválido: {stepNum}",
"executionReport": "Informe de Ejecución:",
"successfulSteps": "Pasos exitosos: {count}",
"failedSteps": "Pasos fallidos: {count}",
"requiredFailedSteps": "Pasos requeridos fallidos: {count}",
"stepDetails": "Detalles del Paso:",
"errorDetails": "Error: {error}",
"reportSavedTo": "Informe guardado en: {path}",
"overallStatusSuccess": "ÉXITO",
"overallStatusFailed": "FALLÓ",
"overallStatus": "Estado General: {status}",
"customSettingsConfiguration": "Configuración de Configuraciones Personalizadas",
"pressEnterForDefaults": "Presione Enter para usar configuraciones predeterminadas para cualquier aviso.",
"sourceDirPrompt": "Ingrese directorio fuente (predeterminado: {default}): ",
"sourceLangPrompt": "Ingrese idioma fuente (predeterminado: {default}): ",
"targetLangsPrompt": "Ingrese idiomas destino (separados por comas, predeterminado: {default}): ",
"translationMarkerPrompt": "Ingrese marcador de traducción (predeterminado: {default}): ",
"outputDirPrompt": "Ingrese directorio de salida para informes (predeterminado: {default}): ",
"settingsUpdatedSuccessfully": "¡Configuraciones actualizadas exitosamente!",
"errorConfiguringSettings": "Error configurando configuraciones: {error}",
"autoRunScriptTitle": "Script de Ejecución Automática",
"usageTitle": "Uso:",
"runAllSteps": "node i18ntk-autorun.js --all - Ejecutar todos los pasos definidos en i18ntk-config.json",
"configureSettingsFirst": "node i18ntk-autorun.js --config - Configurar configuraciones para el flujo de trabajo",
"runSpecificSteps": "node i18ntk-autorun.js --steps <números_pasos> - Ejecutar pasos específicos (ej: --steps 1,3,5)",
"showHelp": "node i18ntk-autorun.js --help - Mostrar este mensaje de ayuda",
"availableSteps": "Pasos Disponibles:",
"examplesTitle": "Ejemplos:",
"configExample": "node i18ntk-autorun.js --config",
"stepsExample1": "node i18ntk-autorun.js --steps 1,2,3",
"stepsExample2": "node i18ntk-autorun.js --all",
"configurationComplete": "Configuración completada.",
"runAutoRunCommand": "Ahora puede ejecutar el comando de ejecución automática.",
"configurationFailed": "Configuración fallida: {error}",
"noValidStepNumbers": "No se proporcionaron números de paso válidos.",
"autoRunFailed": "Ejecución automática fallida: {error}",
"stepInitializeProject": "Inicializar estructura de proyecto i18n",
"stepAnalyzeTranslations": "Analizar archivos de traducción",
"stepValidateTranslations": "Validar traducciones",
"stepCheckUsage": "Verificar estadísticas de uso",
"stepCompleteTranslations": "Completar traducciones",
"stepAnalyzeSizing": "Analizar dimensionamiento",
"stepGenerateSummary": "Generar informe de resumen",
"stepCompletedIcon": "✅",
"stepCompletedWithIcon": "{icon} Paso '{stepName}' completado.",
"stepFailedIcon": "❌",
"translationLoadWarning": "Advertencia: No se pudieron cargar traducciones de {lang}",
"configReadError": "Error leyendo {file}",
"separator": "=================================================="
},
"debug": {
"title": "🔧 Herramientas de Depuración",
"separator": "============================================================",
"mainDebuggerSystemDiagnostics": "1. Diagnósticos del Sistema",
"_consoleTranslationsCheck": "// 2. Verificación de Traducciones de Consola",
"_exportMissingKeys": "// 3. Exportar Claves de Traducción Faltantes",
"_replaceHardcodedConsole": "// 4. Reemplazar Cadenas de Consola Codificadas",
"_consoleKeyChecker": "// 5. Verificador de Claves de Consola",
"debugLogs": "2. Registros de Depuración",
"backToMainMenu": "0. Volver al Menú Principal",
"selectOption": "Seleccione una herramienta de depuración: ",
"runningDebugTool": "Ejecutando {displayName}...",
"debugToolNotFound": "❌ Herramienta de depuración no encontrada: {toolName}",
"errorRunningDebugTool": "Error ejecutando herramienta de depuración '{displayName}': {error}",
"recentDebugLogs": "📄 Registros de depuración recientes",
"noDebugLogsFound": "❌ No se encontraron registros de depuración.",
"debugLogsDirectoryNotFound": "❌ No se encontró el directorio de registros de depuración.",
"selectLogPrompt": "Seleccione archivo de registro para ver (1-{count}): ",
"invalidChoiceSelectRange": "Selección inválida. Por favor seleccione del rango disponible.",
"contentOf": "📄 Contenido de {filename}:",
"pressEnterToContinue": "Presione Enter para continuar..."
},
"detect_language_mismatches": {
"tool_title": "🔍 Herramienta de Detección de Desajustes de Idioma",
"separator": "=====================================\n",
"analyzing_file": "📄 Analizando {language}.json...",
"error_analyzing_file": "❌ Error analizando {filename}: {errorMessage}",
"results_title": "📊 RESULTADOS DE DETECCIÓN DE DESAJUSTES DE IDIOMA",
"results_separator": "========================================\n",
"summary_title": "📋 RESUMEN:",
"total_files_analyzed": " Archivos totales analizados: {totalFiles}",
"files_with_mismatches": " Archivos con desajustes: {filesWithMismatches}",
"total_mismatches_found": " Desajustes totales encontrados: {totalMismatches}\n",
"no_mismatches_found": "✅ ¡No se encontraron desajustes de idioma! Todas las traducciones parecen estar en sus idiomas correctos.\n",
"detailed_results_title": "🔍 RESULTADOS DETALLADOS:\n",
"file_mismatch_header": "📄 {filename} ({language})",
"mismatches_count": " Encontrados {count} desajuste(s):\n",
"mismatch_details": " {index}. Clave: {key}",
"mismatch_value": " Valor: \"{value}\"",
"mismatch_issue": " Problema: {description}",
"recommendations_title": "💡 RECOMENDACIONES:\n",
"recommendation_1": "1. Revisar y traducir todas las entradas marcadas con [TRANSLATE]",
"recommendation_2": "2. Reemplazar prefijos de idioma (ej: [DE], [FR]) con traducciones apropiadas",
"recommendation_3": "3. Traducir texto en inglés al idioma destino apropiado",
"recommendation_4": "4. Usar equivalentes en idioma nativo para todo el texto visible al usuario",
"recommendation_5": "5. Ejecutar esta herramienta nuevamente después de hacer correcciones para verificar las soluciones\n",
"detailed_report_saved": "📄 Informe detallado guardado en: {reportPath}\n",
"error_saving_report": "❌ Error guardando informe: {errorMessage}\n",
"auto_fix_mode": "🔧 Modo auto-corrección {dryRun}",
"auto_fix_separator": "=====================================\n",
"fixed_file": "✅ Archivo corregido {filename}",
"auto_fix_summary_title": "\n📊 Resumen de Auto-corrección:",
"total_fixes_applied": " Correcciones totales aplicadas: {count}",
"preview_fixes_title": "\n🔍 Vista previa de correcciones:",
"fix_details": " {file}: {key}\n Antiguo: \"{old}\"\n Nuevo: \"{new}\"\n",
"more_fixes": " ... y {count} correcciones más\n",
"run_with_apply_fixes": "💡 Ejecutar con --apply para aplicar estas correcciones\n",
"error_general": "❌ Error:",
"mainDebuggerSystemDiagnostics": "Depurador Principal / Diagnósticos del Sistema",
"exportMissingKeys": "Exportar Claves Faltantes",
"replaceHardcodedConsole": "Reemplazar Consola Codificada",
"consoleKeyChecker": "Verificador de Claves de Consola",
"debugLogs": "Registros de Depuración",
"backToMainMenu": "Volver al Menú Principal",
"invalidChoiceSelectRange": "❌ Selección inválida. Por favor seleccione un número dentro del rango mostrado.",
"runningDebugTool": "Ejecutando herramienta de depuración: {displayName}",
"debugToolNotFound": "Herramienta de depuración '{toolName}' no encontrada.",
"recentDebugLogs": "Registros de Depuración Recientes",
"noDebugLogsFound": "No se encontraron registros de depuración.",
"logEntry": "Entrada de Registro: {timestamp} - {message}",
"debugLogsDirectoryNotFound": "No se encontró el directorio de registros de depuración."
},
"help": {
"title": "📊 AYUDA DE GESTIÓN DE I18N\n\n",
"usage": "Uso: node i18ntk-manage.js [opciones]\n",
"interactiveMode": "\n💡 Usa: node i18ntk-manage.js --command=<comando> para ejecución directa\n",
"showHelp": "\n📖 Usa: node i18ntk-manage.js --help para ver los comandos disponibles\n",
"availableCommands": "\n📖 Comandos Disponibles:\n",
"initProject": "🚀 Inicializar nuevos idiomas",
"analyzeTranslations": "🔍 Analizar traducciones",
"validateTranslations": "✅ Validar traducciones",
"checkUsage": "📊 Comprobar uso de claves",
"initCommand": " init - Inicializar nuevos idiomas",
"analyzeCommand": " analyze - Analizar traducciones",
"validateCommand": " validate - Validar traducciones",
"usageCommand": " usage - Comprobar uso de claves",
"sizingCommand": " sizing - Analizar tamaños",
"completeCommand": " complete - Completar traducciones (100% cobertura)",
"summaryCommand": " summary - Mostrar estado del proyecto",
"debugCommand": " debug - Depurar problemas de traducción",
"menu": {
"title": "\n🌐 MENÚ DE GESTIÓN DE I18N\n",
"description": "Menú interactivo para gestionar la internacionalización\n",
"exit": "\n🚪 Salir"
},
"commands": {
"init": "\n init - Inicializar nuevos idiomas",
"analyze": " analyze - Analizar traducciones",
"validate": " validate - Validar traducciones",
"usage": " usage - Comprobar uso de claves",
"sizing": " sizing - Analizar tamaños",
"complete": " complete - Completar traducciones (100% cobertura)",
"summary": " summary - Mostrar estado del proyecto",
"debug": " debug - Depurar problemas de traducción"
},
"options": {
"sourceDir": "\n --source-dir <dir> Directorio fuente a analizar",
"output": " --output <file> Archivo de salida para el informe",
"verbose": " --verbose, -v Mostrar información detallada",
"keepReports": " --keep-reports Conservar info