/** * Internationalization (i18n) - Translations * Supports Spanish (default) and English */ export type Language = 'es' | 'en'; export interface Translations { // Report Header reportTitle: string; project: string; scanId: string; date: string; // Warnings malwareDetected: string; malwareDescription: (count: number) => string; criticalVulnerabilities: string; criticalDescription: (count: number) => string; // Cards riskScore: string; totalFindings: string; filesScanned: string; linesOfCode: string; scanDuration: string; // Sections securityFindings: string; issues: string; scanStatistics: string; remediation: string; noIssuesFound: string; // Severity critical: string; high: string; medium: string; low: string; info: string; malware: string; // Footer generatedBy: string; securityReport: string; // CLI scanComplete: string; scanSummary: string; severityBreakdown: string; reportSavedTo: string; scanFailed: string; initSuccess: string; configExists: string; rulesAvailable: string; // Categories vulnerability: string; vulnerabilities: string; // Malware details affectedFiles: string; analyzersUsed: string; } export const translations: Record = { es: { // Encabezado del reporte reportTitle: 'Reporte de Seguridad', project: 'Proyecto', scanId: 'ID de Escaneo', date: 'Fecha', // Advertencias malwareDetected: '¡Malware Detectado!', malwareDescription: (count) => `Se encontraron ${count} patrón(es) de código potencialmente malicioso. Se requiere investigación inmediata.`, criticalVulnerabilities: 'Vulnerabilidades Críticas Encontradas', criticalDescription: (count) => `${count} problema(s) de seguridad crítico(s) requieren atención inmediata.`, // Tarjetas riskScore: 'Puntuación de Riesgo', totalFindings: 'Hallazgos Totales', filesScanned: 'Archivos Escaneados', linesOfCode: 'Líneas de Código', scanDuration: 'Duración del Escaneo', // Secciones securityFindings: '🔍 Hallazgos de Seguridad', issues: 'problemas', scanStatistics: '📊 Estadísticas del Escaneo', remediation: '💡 Remediación', noIssuesFound: '✅ ¡No se encontraron problemas de seguridad!', // Severidad critical: 'Crítico', high: 'Alto', medium: 'Medio', low: 'Bajo', info: 'Info', malware: 'Malware', // Pie de página generatedBy: 'Generado por', securityReport: 'Reporte de Análisis de Seguridad', // CLI scanComplete: '¡Escaneo completado!', scanSummary: '📊 Resumen del Escaneo', severityBreakdown: 'Desglose por Severidad:', reportSavedTo: '📄 Reporte guardado en:', scanFailed: '❌ Error en el escaneo:', initSuccess: '✅ Archivo secure-scan.config.json creado', configExists: '⚠️ El archivo de configuración ya existe: secure-scan.config.json', rulesAvailable: 'reglas disponibles', // Categorías vulnerability: 'Vulnerabilidad', vulnerabilities: 'Vulnerabilidades', // Detalles de malware affectedFiles: 'Archivos afectados', analyzersUsed: 'Analizadores utilizados', }, en: { // Report Header reportTitle: 'Security Report', project: 'Project', scanId: 'Scan ID', date: 'Date', // Warnings malwareDetected: 'Malware Detected!', malwareDescription: (count) => `${count} potentially malicious code pattern(s) found. Immediate investigation required.`, criticalVulnerabilities: 'Critical Vulnerabilities Found', criticalDescription: (count) => `${count} critical security issue(s) require immediate attention.`, // Cards riskScore: 'Risk Score', totalFindings: 'Total Findings', filesScanned: 'Files Scanned', linesOfCode: 'Lines of Code', scanDuration: 'Scan Duration', // Sections securityFindings: '🔍 Security Findings', issues: 'issues', scanStatistics: '📊 Scan Statistics', remediation: '💡 Remediation', noIssuesFound: '✅ No security issues found!', // Severity critical: 'Critical', high: 'High', medium: 'Medium', low: 'Low', info: 'Info', malware: 'Malware', // Footer generatedBy: 'Generated by', securityReport: 'Security Analysis Report', // CLI scanComplete: 'Scan complete!', scanSummary: '📊 Scan Summary', severityBreakdown: 'Severity Breakdown:', reportSavedTo: '📄 Report saved to:', scanFailed: '❌ Scan failed:', initSuccess: '✅ Created secure-scan.config.json', configExists: '⚠️ Configuration file already exists: secure-scan.config.json', rulesAvailable: 'rules available', // Categories vulnerability: 'Vulnerability', vulnerabilities: 'Vulnerabilities', // Malware details affectedFiles: 'Affected files', analyzersUsed: 'Analyzers used', } }; /** * Get translations for a language */ export function getTranslations(lang: Language = 'es'): Translations { return translations[lang] || translations.es; } /** * Default language */ export const defaultLanguage: Language = 'es';