{ "chrome": { "language_label": "Idioma", "footer": "Se ejecuta localmente. Tus datos nunca salen de este equipo. | DataTools v3.0" }, "home": { "page_title": "UNALOGIX DataTools", "title": "UNALOGIX DataTools", "caption": "Limpia. Normaliza. Transforma.", "privacy_pill": "Se ejecuta 100% en local", "findings_badge_one": "{n} hallazgo", "findings_badge_other": "{n} hallazgos" }, "status": { "ready": "Listo", "coming_soon": "Próximamente" }, "help": { "button_label": "Ayuda", "missing_body": "Aún no hay ayuda para esta herramienta." }, "upload": { "heading": "Importa uno o más archivos para empezar", "intro": "Opcional: analiza un archivo para detectar problemas de calidad de datos y ver qué herramientas pueden corregir cada uno. Sáltalo si ya sabes lo que necesitas.", "limits": "**Hasta 1,5 GB.** Formatos: CSV, TSV, XLSX, XLS. Delimitadores detectados automáticamente: coma, tabulador, punto y coma, barra vertical. Codificaciones detectadas automáticamente: UTF-8 (con/sin BOM), UTF-16, cp1252, Latin-1/9, cp1250, ISO-8859-2, cp1251, KOI8-R, Mac Roman, Shift_JIS, GB18030, Big5, EUC-KR — y se pueden sustituir desde la página Revisar.", "uploader_label": "Importa un archivo CSV o Excel", "uploader_help": "Hasta 1,5 GB. Delimitadores coma / tabulador / punto y coma / barra vertical detectados automáticamente. Codificación detectada automáticamente, con opción de sustituirla en la página Revisar.", "run_button": "Ejecutar análisis", "skip_button": "Omitir", "scanning": "Analizando…", "skipped_notice": "Análisis omitido. Abre cualquier herramienta de abajo para empezar a trabajar.", "using_session_file": "Usando **{name}** de la pantalla de importación.", "use_different_file": "Usar otro archivo", "switch_back": "Volver al archivo de la pantalla de importación", "pickup_caption": "Hasta 1,5 GB. Delimitadores detectados automáticamente: coma, tabulador, punto y coma, barra vertical. Codificación detectada automáticamente (UTF-8 / UTF-16 / cp1252 / familia Latin-1 / cp1250 / cp1251 / KOI8-R / Mac Roman / Shift_JIS / GB18030 / Big5 / EUC-KR), con opción de sustituirla en la página Revisar.", "intro_multi": "Suelta archivos abajo. Cada uno se analiza localmente — nada sale de este equipo.", "uploader_label_multi": "Importa archivos CSV, TSV o Excel", "clear_results": "Borrar resultados", "empty_state": "Importa uno o más archivos para empezar. Tus datos nunca salen de este equipo." }, "findings": { "header": "Problemas detectados", "none": "No se detectaron problemas. Abre cualquier herramienta de abajo para empezar a trabajar.", "severity_summary_segment": "{icon} {n} {severity}", "tool_section_label": "{tool} — {n} hallazgo(s)", "other_section_label": "Otros / a nivel de archivo — {n} hallazgo(s)", "open_tool": "Abrir {tool} →", "untargeted_label": "Informativo" }, "gate": { "warning": "**{name}** debe pasar la verificación de normalización CSV antes de poder usar esta herramienta. Abre la página Revisar para aplicar las correcciones recomendadas por el analizador.", "default_name": "el archivo importado", "open_review": "Ir a Revisar y Normalizar" }, "quit": { "button": "Cerrar app", "shutting_down": "Cerrando… ya puedes cerrar esta ventana.", "farewell_title": "DataTools se ha cerrado", "farewell_subtitle": "Ya puedes cerrar esta ventana.", "close_window_button": "Cerrar esta ventana", "close_hint": "Los navegadores no permiten que JavaScript cierre una pestaña que tú abriste — tampoco pueden enviar Ctrl+W ni Alt+F4 (esas combinaciones las intercepta el SO, no la página). Ejecuta DataTools con `python -m src.gui` para obtener una ventana Chrome/Edge --app que sí se cierra. Mientras tanto, esta pestaña pasará a una página en blanco en un momento — ciérrala con Ctrl+W (o ⌘W en Mac)." }, "close_page": { "page_title": "DataTools — Cerrar", "title": "Cerrar DataTools", "caption": "Detén la aplicación local y libera la terminal.", "body": "Al pulsar el botón de abajo se cerrará el servidor de DataTools. Cualquier trabajo sin guardar en otras herramientas se perderá. Una vez cerrada la app, puedes cerrar esta ventana.", "button": "Cerrar la app" }, "activation": { "page_title": "DataTools — Activar", "title": "Activar DataTools", "intro": "DataTools debe activarse antes de desbloquear cualquier herramienta. Introduce el nombre y correo asociados a tu compra, y luego pega el código de licencia del correo de entrega.", "name_label": "Nombre completo", "name_help": "Debe coincidir con el nombre en el recibo de compra.", "email_label": "Correo electrónico", "email_help": "Debe coincidir con el correo del recibo de compra.", "blob_label": "Código de licencia", "blob_help": "Empieza con `DTLIC1:` — pega la cadena completa.", "activate_button": "Activar", "renew_button": "Aplicar renovación", "or_separator": "— o —", "success": "¡Activado! Bienvenido, {name}. Tu licencia es válida hasta el {expires}.", "renewed": "Licencia renovada. Nueva fecha de caducidad: {expires}.", "errors_heading": "Problema al activar", "deactivate_button": "Desactivar este dispositivo", "deactivate_help": "Elimina el archivo de licencia local. Tendrás que volver a pegar tu código para reactivarla." }, "license": { "status_active": "{tier} · {days} días restantes", "status_trial": "Prueba · {days} días restantes", "status_expired": "Caducada", "status_not_activated": "Sin activar", "status_invalid": "Licencia inválida", "renewal_warning_30": "⚠️ La licencia caduca en {days} días. Renueva pronto para evitar interrupciones.", "renewal_warning_expired": "🛑 La licencia caducó el {date}. Renuévala para seguir usando DataTools.", "tier_trial": "Prueba", "tier_lite": "Lite", "tier_core": "Core", "tier_pro": "Pro", "tier_enterprise": "Enterprise", "registered_to": "Registrado a nombre de {name} · {email}", "expires_on": "Caduca el {date}", "issued_on": "Emitida el {date}", "view_details": "Detalles de la licencia", "feature_locked_title": "🔒 Esta herramienta no está incluida en tu licencia {tier}", "feature_locked_body": "Tu licencia actual incluye: {features}. Actualiza para acceder a esta herramienta.", "upgrade_link": "Gestionar licencia", "status_locked": "Bloqueado" }, "tools": { "01_deduplicator": { "name": "Buscar duplicados", "description": "Encuentra filas que se repiten — exactas y similares — y elimina las extras.", "page_title": "Buscar duplicados", "page_caption": "Encuentra filas que se repiten, conserva una y elimina las extras.", "help_md": "**Cuándo usarlo**\n- Listas de clientes o contactos\n- Listas de correo de varias fuentes\n- Catálogos de productos que pueden solaparse\n\n**Pasos**\n1. Sube tu archivo\n2. Elige la(s) columna(s) que identifican una fila (email, teléfono, nombre+CP)\n3. Elige coincidencia **Exacta** o **Similar**\n4. Elige qué fila conservar (más reciente, más larga, primera)\n5. Previsualiza y exporta\n\n**Ejemplos**\n- `John Smith` + `JOHN SMITH` → misma persona\n- `jane@co.com` + `jane@co.com ` → mismo email (espacio al final)\n- `555-1234` + `(555) 1234` → mismo teléfono\n\n**Consejo** Empieza con Exacta; añade Similar si sospechas erratas." }, "02_text_cleaner": { "name": "Limpiar texto", "description": "Quita espacios extra y caracteres raros que deja el copiar y pegar.", "page_title": "Limpiar texto", "page_caption": "Quita espacios extra y caracteres raros.", "help_md": "**Cuándo usarlo**\n- Texto copiado de páginas web, PDFs o sistemas antiguos\n- Archivos con espaciado inconsistente\n- Datos con caracteres ocultos o especiales\n\n**Pasos**\n1. Sube tu archivo\n2. Elige las columnas de texto a limpiar\n3. Elige opciones: recortar espacios, eliminar caracteres invisibles, normalizar comillas\n4. Previsualiza los cambios\n5. Exporta\n\n**Ejemplos**\n- ` hola mundo ` → `hola mundo`\n- `“comillas tipográficas”` → `\"comillas normales\"`\n- `dato​con​oculto` → `datoconoculto`\n\n**Consejo** Siempre previsualiza — los cambios pueden afectar pasos posteriores como duplicados." }, "03_format_standardizer": { "name": "Estandarizar formatos", "description": "Haz que fechas, teléfonos, monedas, nombres y direcciones se vean iguales en todo el archivo.", "page_title": "Estandarizar formatos", "page_caption": "Haz que fechas, teléfonos, monedas y nombres se vean iguales en todo el archivo.", "help_md": "**Cuándo usarlo**\n- Datos de varias fuentes con fechas/teléfonos en formatos distintos\n- Antes de enviar a un sistema que exige un formato\n- Preparando datos para análisis o gráficos\n\n**Pasos**\n1. Sube tu archivo\n2. Elige una columna (fecha, teléfono, moneda, etc.)\n3. Elige el formato destino\n4. Previsualiza\n5. Repite con otras columnas y exporta\n\n**Ejemplos**\n- `5 Ene 2025` / `01/05/2025` / `5-Ene-25` → `2025-01-05`\n- `(555) 123-4567` / `555.123.4567` → `+1 555-123-4567`\n- `$1.234,50` / `1234.5 USD` → `1234.50`\n\n**Consejo** Trabaja varias columnas en una sesión — cada una recuerda su formato." }, "04_missing_handler": { "name": "Corregir valores faltantes", "description": "Encuentra celdas vacías (incluso escritas como «N/A» o «?») y rellénalas o elimínalas.", "page_title": "Corregir valores faltantes", "page_caption": "Encuentra celdas vacías (incluso ocultas) y rellénalas o elimínalas.", "help_md": "**Cuándo usarlo**\n- Hojas con huecos\n- Archivos donde alguien escribió `N/A` o `-` en vez de dejar la celda vacía\n- Antes de importar a un sistema que rechaza celdas vacías\n\n**Pasos**\n1. Sube tu archivo\n2. Revisa qué columnas tienen celdas vacías\n3. Elige una estrategia por columna: **rellenar**, **eliminar la fila** o **dejar igual**\n4. Para números, elige el valor: media, mediana, cero o uno propio\n5. Previsualiza y exporta\n\n**Ejemplos**\n- `N/A`, `-`, ` ` → tratados como vacíos\n- Salario vacío → relleno con la media de la columna\n- Fila sin email → eliminada\n\n**Consejo** No rellenes el identificador (email, ID) — mejor elimina la fila." }, "05_column_mapper": { "name": "Mapear columnas", "description": "Renombra columnas, cambia su orden y define cada una como texto, número o fecha.", "page_title": "Mapear columnas", "page_caption": "Renombra columnas, cambia su orden y define cada una como texto, número o fecha.", "help_md": "**Cuándo usarlo**\n- Combinando archivos de proveedores con nombres de columna distintos\n- Forzando el esquema que tu sistema espera\n- Limpiando exportes con columnas raras o de más\n\n**Pasos**\n1. Sube tu archivo\n2. Empareja cada columna entrante con tu nombre estándar\n3. Define el tipo de cada columna: texto, número o fecha\n4. Reordena o elimina columnas\n5. Exporta con la nueva disposición\n\n**Ejemplos**\n- `cust_email` → `Email Cliente`\n- `amt` → `Importe` (definido como número)\n- `notes_internal` → eliminar\n\n**Consejo** Guarda el mapeo si recibirás el mismo formato el próximo mes." }, "06_outlier_detector": { "name": "Detectar valores atípicos", "description": "Detecta valores que parecen incorrectos — demasiado altos, demasiado bajos o fuera de regla.", "page_title": "Detectar valores atípicos", "page_caption": "Detecta valores que parecen incorrectos — demasiado altos, bajos o fuera de regla.", "help_md": "**Cuándo usarlo**\n- Detectar erratas, fraude o imports mal hechos en datos numéricos\n- Limpiar datos de sensores o transacciones\n- Antes de reportar números a dirección\n\n**Pasos**\n1. Sube tu archivo\n2. Elige la columna numérica a revisar\n3. Define un rango normal (o usa auto-detección)\n4. Revisa las filas marcadas\n5. Elige: conservar, eliminar o limitar al borde\n\n**Ejemplos**\n- Columna de salarios con una fila de `$9.999.999` → marcada\n- Columna de edad con `250` → marcada\n- Regla: `precio debe ser > 0` → marca los negativos\n\n**Consejo** Revisa a mano las filas marcadas — a veces un atípico real es el dato más importante." }, "07_multi_file_merger": { "name": "Combinar archivos", "description": "Combina varios archivos CSV o Excel en uno — aunque sus columnas no coincidan.", "page_title": "Combinar archivos", "page_caption": "Combina varios CSV o Excel en uno — aunque las columnas no coincidan.", "help_md": "**Cuándo usarlo**\n- Informes mensuales a lo largo del año\n- Exportes de varias tiendas o sucursales\n- Datos de varios sistemas que deben quedar en un archivo\n\n**Pasos**\n1. Sube dos o más archivos\n2. Confirma las coincidencias de columna (auto-detectadas; modifica si hace falta)\n3. Decide cómo tratar columnas que falten (omitir, vacío, valor por defecto)\n4. Previsualiza el resultado combinado\n5. Exporta el archivo único\n\n**Ejemplos**\n- `Enero.csv` + `Febrero.csv` → `2025.csv`\n- `NY-store.xlsx` + `LA-store.xlsx` → `todas-las-tiendas.csv`\n- Archivo A tiene `Email`, archivo B tiene `email_addr` → emparejados automáticamente\n\n**Consejo** Añade una columna `origen` para saber de qué archivo viene cada fila." }, "08_validator_reporter": { "name": "Verificación de calidad", "description": "Comprueba tu archivo según reglas que tú definas y exporta un informe PDF o Excel.", "page_title": "Verificación de calidad", "page_caption": "Comprueba tu archivo según reglas y exporta un informe PDF o Excel.", "help_md": "**Cuándo usarlo**\n- Antes de entregar datos a un cliente o socio\n- Antes de un import estricto a otro sistema\n- Auditorías rutinarias de calidad\n\n**Pasos**\n1. Sube tu archivo\n2. Elige las reglas (columnas requeridas, emails válidos, sin duplicados)\n3. Ejecuta la comprobación\n4. Revisa la puntuación y los hallazgos\n5. Exporta el informe como PDF o Excel\n\n**Ejemplos**\n- Regla: `email debe parecerse a un email` → 12 filas fallan\n- Regla: `importe debe ser > 0` → 3 filas fallan\n- Regla: `sin ID de cliente duplicados` → 5 duplicados encontrados\n\n**Consejo** Ejecuta esto al final, y guarda el PDF como prueba de calidad." }, "09_pipeline_runner": { "name": "Flujos automatizados", "description": "Ejecuta varias herramientas seguidas — guarda los pasos una vez y reutilízalos.", "page_title": "Flujos automatizados", "page_caption": "Ejecuta varias herramientas seguidas — guarda los pasos y reutilízalos.", "help_md": "**Cuándo usarlo**\n- Una limpieza que haces cada semana o mes\n- Procesos de varios pasos que repites\n- Cuando entrenas a un compañero en tu rutina de datos\n\n**Pasos**\n1. Elige las herramientas a ejecutar, en orden\n2. Configura cada paso\n3. Guarda el flujo como archivo JSON\n4. La próxima vez, carga el flujo y sube un archivo nuevo\n5. Obtén la salida limpia con un clic\n\n**Ejemplos**\n- `Limpiar texto` → `Estandarizar formatos` → `Buscar duplicados` → exportar\n- Guardado como `limpieza-clientes-semanal.json`\n- Compartido con un compañero para obtener el mismo resultado\n\n**Consejo** Empieza con dos o tres herramientas. Siempre puedes editar y añadir más." }, "10_pdf_extractor": { "name": "PDF a CSV", "description": "Extrae transacciones de extractos bancarios en PDF a un archivo CSV limpio.", "page_title": "PDF a CSV", "page_caption": "Extrae transacciones de extractos bancarios en PDF a un archivo CSV limpio.", "help_md": "\n**Cuándo usarlo**\n- Extractos bancarios o de tarjeta\n- Facturas de proveedor con tablas\n- Cualquier PDF con tabla de transacciones\n\n**Pasos**\n1. Sube uno o más PDFs (modo lote permitido)\n2. Pulsa **Escanear** — las filas que parecen transacciones se extraen automáticamente\n3. Desmarca las filas que no quieras\n4. Elige el formato de fecha (y activa OCR si el PDF es una imagen escaneada)\n5. Descarga el CSV\n\n**Ejemplos**\n- Extracto Chase de marzo → 87 transacciones detectadas\n- Procesa 12 meses de una vez y obtén un CSV combinado\n- PDF solo-imagen + OCR → funciona si Tesseract está instalado\n\n**Consejo** Si un cargo aparece como `(4,50)`, deja activado **Tratar (4,50) como negativo**. Desactívalo solo si tus extractos usan otra convención." }, "11_reconciler": { "name": "Reconciliar dos archivos", "description": "Compara dos listas de transacciones (p. ej. banco vs. libro mayor) y señala lo que no coincide.", "page_title": "Reconciliar dos archivos", "page_caption": "Compara dos listas de transacciones (p. ej. banco vs. libro mayor) y señala lo que no coincide.", "help_md": "**Cuándo usarlo**\n- Cuadrar el extracto del banco con tus libros\n- Facturas de proveedor vs. pagos enviados\n- Recepciones de inventario vs. pedidos realizados\n\n**Pasos**\n1. Sube ambos archivos (p. ej. exporte del banco + exporte contable)\n2. Elige las columnas para emparejar (fecha, importe, referencia)\n3. Define tolerancias (p. ej. fecha ±2 días, importe exacto)\n4. Revisa cuatro grupos: **emparejados**, **solo en izquierda**, **solo en derecha**, **necesita revisión**\n5. Exporta los resultados\n\n**Ejemplos**\n- Banco `2025-03-15 $99.50` ↔ Libros `2025-03-16 $99.50` → emparejado\n- Cargo bancario sin entrada en libros → solo en izquierda\n- Mismo importe el mismo día dos veces → marcado para revisión\n\n**Consejo** Estrecha la tolerancia de fecha cuando confíes en el emparejamiento — menos casos ambiguos." } }, "nav": { "section_review": "Revisión de datos", "section_analysis": "Análisis", "section_cleaners": "Limpiadores de datos", "section_transformations": "Transformaciones", "section_automations": "Automatizaciones", "section_finance": "Finanzas", "section_coming_soon": "Próximamente", "review_page_title": "Revisión", "home_page_title": "Inicio", "file_analysis_title": "Análisis de archivo", "start_here_title": "Empezar aquí", "section_account": "Cuenta", "activate_title": "Activar", "close_title": "Cerrar", "section_close": "Cerrar", "back_to_home": "← Volver al inicio" }, "footer": { "close": "Cerrar", "help": "Ayuda", "help_title": "DataTools", "help_version": "Versión {version}", "help_support": "Soporte: {email}", "help_license_label": "Licencia", "help_license_inactive": "No activada", "help_license_active": "{name}", "help_license_expires": "Caduca {date} ({days} días)", "help_activate_link": "Activar ahora →", "help_manage_link": "Gestionar licencia →", "help_logs_label": "Archivo de registro", "help_logs_link": "Ver todos los registros →", "help_dismiss": "Cerrar" } }