velxio/frontend/src/i18n/locales/es/common.json

401 lines
17 KiB
JSON

{
"header": {
"skipToContent": "Saltar al contenido",
"openMenu": "Abrir menú",
"closeMenu": "Cerrar menú",
"nav": {
"home": "Inicio",
"documentation": "Documentación",
"examples": "Ejemplos",
"editor": "Editor",
"about": "Acerca de",
"pricing": "Precios",
"blog": "Blog",
"github": "GitHub",
"discord": "Discord"
},
"auth": {
"signIn": "Iniciar sesión",
"signUp": "Registrarse",
"myProjects": "Mis proyectos",
"signOut": "Cerrar sesión"
},
"language": "Idioma",
"search": "Buscar"
},
"footer": {
"about": "Velxio es un simulador gratuito y de código abierto de circuitos y microcontroladores que funciona completamente en tu navegador. Arduino, ESP32, RP2040 y ATtiny85, con co-simulación analógica precisa con SPICE. Creado para makers, estudiantes e ingenieros de sistemas embebidos que aprenden haciendo. AGPLv3."
},
"landing": {
"hero": {
"titleLine1": "Arduino, ESP32 y Raspberry Pi.",
"titleAccent": "Directamente en tu navegador.",
"subtitle": "Escribe código, conecta componentes, pulsa ejecutar. 19 placas, más de 48 componentes, emulación real de CPU — sin hardware, sin instalación, sin nube.",
"ctaPrimary": "Probar el simulador gratis →",
"ctaGithub": "Ver en GitHub",
"trustLine": "No requiere registro · Funciona 100% en tu navegador · Gratuito y de código abierto",
"imageAlt": "Editor de Velxio con circuito de semáforo en Arduino Uno"
},
"boards": {
"label": "Hardware compatible",
"titleLine1": "Cada arquitectura.",
"titleLine2": "Una sola herramienta.",
"subtitle": "19 placas en 5 arquitecturas de CPU: AVR8, ARM Cortex-M0+, RISC-V, Xtensa y Linux. Todo funciona localmente, sin necesidad de nube."
},
"features": {
"label": "Características",
"title": "Todo lo que necesitas.",
"subtitle": "Un IDE completo, compilador y simulador multiarquitectura — funciona localmente sin servicios externos.",
"spice": {
"title": "SPICE analógico en tiempo real",
"desc": "Motor ngspice-WASM — Análisis Modal Completo a ~60 Hz. Resistencias, condensadores, amplificadores operacionales, BJT, MOSFET, reguladores se comportan como silicio real, no como modelos idealizados."
},
"engines": {
"title": "5 motores de emulación",
"desc": "AVR8 (ATmega328P, ATmega2560, ATtiny85), RP2040 (ARM Cortex-M0+), RV32IMC (ESP32-C3, CH32V003 mediante QEMU), Xtensa LX6/LX7 (ESP32 mediante QEMU) y ARM Cortex-A53 (Raspberry Pi 3 Linux)."
},
"customChips": {
"title": "Chips personalizados",
"desc": "Crea tus propios circuitos integrados en C, Rust o AssemblyScript usando la API de Chips Personalizados de Wokwi. Compila a WebAssembly y reutilízalos en proyectos."
},
"components": {
"title": "Más de 100 componentes",
"desc": "Componentes analógicos precisos con SPICE y más de 48 componentes visuales de wokwi: LEDs, LCD, pantalla TFT ILI9341, servos, zumbadores, sensores ultrasónicos, teclados, tiras NeoPixel."
},
"instruments": {
"title": "Instrumentos en vivo",
"desc": "Osciloscopio multicanal, voltímetro, amperímetro, generador de señales. Colócalos en cualquier nodo y observa las formas de onda actualizarse en tiempo real mientras se ejecuta la simulación."
},
"monaco": {
"title": "Editor Monaco + arduino-cli",
"desc": "Editor C++ de nivel VS Code con espacio de trabajo multiarchivo. arduino-cli local compila a archivos .hex / .uf2 / .bin reales — sin ida y vuelta a la nube."
}
},
"support": {
"title": "Apoya el proyecto",
"subtitle": "Velxio es gratuito y de código abierto. Si te ahorra tiempo, considera apoyar su desarrollo.",
"ctaSponsors": "GitHub Sponsors",
"ctaPaypal": "Donar vía PayPal"
},
"licensing": {
"label": "Licencias",
"title": "Gratis, con opción comercial.",
"subtitle": "AGPLv3 para la versión open-source. Licencia comercial para equipos que necesitan integrar Velxio en productos closed-source.",
"opensource": {
"title": "Open source — AGPLv3",
"desc": "Gratis para siempre para uso personal, educación, investigación y self-hosting. Modificá, forkeá y redistribuí — tus cambios siguen bajo AGPLv3.",
"cta": "Ver código en GitHub →"
},
"commercial": {
"badge": "Comercial",
"title": "Licencia comercial",
"desc": "Para productos closed-source, SaaS propietario o uso interno empresarial donde la reciprocidad AGPLv3 no es compatible con tu modelo de negocio.",
"cta": "Contactar para precios →"
}
},
"ai": {
"label": "Agente IA",
"title": "Impulsado por agentes de IA.",
"subtitle": "Un agente multi-paso corre dentro del editor. Lee tu canvas, escribe código, coloca componentes y los conecta — todo por lenguaje natural. Respaldado por LLMs de frontera auto-ruteados por costo y disponibilidad.",
"cards": {
"wire": {
"title": "Coloca y cablea",
"desc": "Pedile \"agregar un pulsador en D2 con resistencia pull-up a 5V\". El agente elige las piezas, las pone en el canvas, conecta cada pin y etiqueta los cables."
},
"code": {
"title": "Genera sketches que funcionan",
"desc": "Describí qué tiene que hacer la placa y el agente escribe el código Arduino / MicroPython, lo compila y lo carga — sin copiar-pegar del chat."
},
"debug": {
"title": "Diagnostica circuitos en vivo",
"desc": "Te trabaste con un cable mal? Mandale un screenshot y el agente lee el esquema, corre la sim, y te dice qué pin está mal."
}
}
},
"pricing": {
"label": "Precios",
"title": "Gratis para correr circuitos. Pagás la IA.",
"subtitle": "El simulador queda gratis para siempre. Los planes solo elevan el cupo del agente IA — los créditos se renuevan cada día.",
"popular": "Más popular",
"tiers": {
"free": {
"name": "Free",
"tagline": "Descubre el simulador + ayuda IA básica.",
"f1": "20 créditos IA diarios (hasta 300/mes)",
"f2": "Las 19 placas + 48+ componentes",
"f3": "Emulación real de CPU, proyectos públicos",
"cta": "Comenzar"
},
"pro": {
"name": "Pro",
"tagline": "Para makers construyendo proyectos reales.",
"f1": "400 créditos IA diarios (hasta 12.000/mes)",
"f2": "Proyectos privados + componentes premium",
"f3": "Cola de compilación prioritaria, cancelás cuando quieras",
"cta": "Suscribirme a Pro"
},
"pro_max": {
"name": "Pro Max",
"tagline": "Para power users y equipos chicos.",
"f1": "1.000 créditos IA diarios (hasta 30.000/mes)",
"f2": "Acceso temprano a nuevas placas",
"f3": "Soporte directo del mantenedor",
"cta": "Elegir Pro Max"
}
}
}
},
"profile": {
"newProject": "Nuevo proyecto",
"loading": "Cargando…",
"empty": "Aún no hay proyectos públicos.",
"private": "Privado",
"copyLink": "Copiar enlace compartible",
"notFound": "Usuario no encontrado."
},
"pricing": {
"title": "Precios",
"selfHosted": "Esta instancia de Velxio está autoalojada desde la imagen de código abierto: todas las funciones son gratuitas para todos los que la usan.",
"hostedVersion": "La versión alojada en <link>velxio.dev</link> ofrece un nivel Pro opcional que ayuda a financiar el desarrollo.",
"sourceCode": "El código fuente tiene <link>licencia MIT en GitHub</link>."
},
"admin": {
"loading": "Cargando…",
"panel": "Panel de administración",
"logout": "Cerrar sesión",
"tabs": {
"dashboard": "Panel",
"users": "Usuarios",
"projects": "Proyectos",
"boards": "Placas"
},
"errors": {
"save": "Error al guardar."
},
"editUser": {
"title": "Editar usuario",
"username": "Nombre de usuario",
"email": "Correo electrónico",
"newPassword": "Nueva contraseña (déjalo en blanco para mantenerla)",
"passwordPlaceholder": "Mín. 8 caracteres",
"admin": "Administrador",
"active": "Activo",
"cancel": "Cancelar",
"save": "Guardar",
"saving": "Guardando…"
},
"setup": {
"title": "Configuración de administrador",
"body": "Aún no existe ninguna cuenta de administrador. Crea el primer usuario administrador para continuar.",
"password": "Contraseña",
"confirmPassword": "Confirmar contraseña",
"passwordMismatch": "Las contraseñas no coinciden.",
"creating": "Creando…",
"createAdmin": "Crear administrador",
"failed": "Error al crear el administrador."
},
"notAdmin": {
"title": "Se requiere acceso de administrador",
"body": "Debes iniciar sesión como administrador para acceder a este panel.",
"goLogin": "Ir a iniciar sesión"
},
"users": {
"loadFailed": "Error al cargar usuarios.",
"deleteFailed": "Error al eliminar usuario.",
"confirmDelete": "¿Eliminar al usuario \"{{username}}\" y todos sus proyectos? Esta acción no se puede deshacer.",
"searchPlaceholder": "Buscar por nombre de usuario o correo…",
"count_one": "{{count}} usuario",
"count_other": "{{count}} usuarios",
"noResults": "No se encontraron usuarios.",
"col": {
"username": "Usuario",
"email": "Correo",
"role": "Rol",
"status": "Estado",
"projects": "Proyectos",
"compiles": "Compilaciones",
"runs": "Ejecuciones",
"boards": "Placas",
"country": "País",
"lastActive": "Última actividad",
"joined": "Registrado",
"actions": "Acciones"
},
"actions": {
"activity": "Actividad",
"edit": "Editar",
"delete": "Eliminar"
}
},
"boards": {
"loadFailed": "Error al cargar métricas de placas.",
"range": "Rango:",
"byFamily": "Por familia de placa",
"byFqbn": "Por FQBN exacto",
"noData": "Sin datos.",
"col": {
"family": "Familia",
"fqbn": "FQBN",
"compiles": "Compilaciones",
"errors": "Errores",
"successRate": "Tasa de éxito",
"runs": "Ejecuciones",
"distinctUsers": "Usuarios distintos",
"distinctProjects": "Proyectos distintos"
}
},
"dashboard": {
"loadFailed": "Error al cargar métricas.",
"loadingMetrics": "Cargando métricas…",
"unknown": "Desconocido",
"kpi": {
"totalUsers": "Usuarios totales",
"totalProjects": "Proyectos totales",
"compilesAllTime": "Compilaciones (total)",
"runsAllTime": "Ejecuciones (total)",
"newIn30d": "+{{count}} en 30d",
"successPct": "{{pct}}% éxito",
"dau": "activos en últimas 24h",
"wau": "activos en últimos 7d",
"mau": "activos en últimos 30d",
"publicPrivate": "Público / Privado"
},
"charts": {
"activityOverTime": "Actividad a lo largo del tiempo",
"noActivity": "Aún no hay actividad en este rango.",
"compilesByFamily": "Compilaciones por familia de placa ({{days}}d)",
"diversityTitle": "Cuántas familias de placa por usuario",
"diversitySubtitle": "Señal de precios: los usuarios multi-placa probablemente justifican niveles de pago.",
"boardCount_one": "{{count}} placa",
"boardCount_other": "{{count}} placas",
"noDataYet": "Aún no hay datos.",
"topFqbn": "Placas principales por FQBN ({{days}}d)",
"topCountries": "Países principales ({{days}}d)",
"countriesSubtitle": "Del encabezado CF-IPCountry de Cloudflare. \"Usuarios\" = país actual, \"Registros\" = donde se registraron, \"Activos\" = usuarios distintos con actividad en este rango.",
"noCountryData": "Aún no hay datos de país (probablemente se ejecuta fuera de Cloudflare).",
"topUsers": "Usuarios principales por compilaciones",
"topProjects": "Proyectos principales por compilaciones"
},
"col": {
"country": "País",
"users": "Usuarios",
"signups": "Registros",
"activeRange": "Activos ({{days}}d)",
"user": "Usuario"
}
},
"activity": {
"loadFailed": "Error al cargar la actividad.",
"title": "Actividad diaria — {{username}}",
"subtitle": "Conteos de compilación y ejecución por día y por proyecto para este usuario.",
"noActivity": "Sin actividad en el rango seleccionado.",
"projectCount_one": "{{count}} proyecto",
"projectCount_other": "{{count}} proyectos",
"deletedProject": "(proyecto eliminado)",
"noProject": "(sin proyecto)",
"col": {
"date": "Fecha",
"saves": "Guardados"
}
},
"projects": {
"loadFailed": "Error al cargar proyectos.",
"deleteFailed": "Error al eliminar proyecto.",
"confirmDelete": "¿Eliminar el proyecto \"{{name}}\"? Esta acción no se puede deshacer.",
"searchPlaceholder": "Buscar por nombre o propietario…",
"count_one": "{{count}} proyecto",
"count_other": "{{count}} proyectos",
"noResults": "No se encontraron proyectos.",
"private": "privado",
"public": "público",
"privateTitle": "Proyecto privado (vista de administrador)",
"col": {
"name": "Nombre",
"owner": "Propietario",
"board": "Placa",
"visibility": "Visibilidad",
"compiles": "Compilaciones",
"runs": "Ejecuciones",
"updates": "Actualizaciones",
"lastCompile": "Última compilación",
"updated": "Actualizado"
}
}
},
"examples": {
"heading": "Proyectos destacados",
"subtitle": "Explora y ejecuta proyectos de ejemplo — organizados por placa",
"searchPlaceholder": "Buscar ejemplos — prueba 'esp32 oled', 'blink', 'dht'…",
"searchLabel": "Buscar ejemplos",
"clearSearch": "Limpiar búsqueda",
"clear": "Limpiar",
"matchCount_one": "{{count}} coincidencia",
"matchCount_other": "{{count}} coincidencias",
"filters": {
"categoryLabel": "Categoría:",
"difficultyLabel": "Dificultad:",
"category": {
"all": "Todas",
"basics": "Básicos",
"sensors": "Sensores",
"displays": "Pantallas",
"communication": "Comunicación",
"games": "Juegos",
"robotics": "Robótica",
"circuits": "Circuitos"
},
"difficulty": {
"all": "Todas",
"beginner": "Principiante",
"intermediate": "Intermedio",
"advanced": "Avanzado"
}
},
"copyLink": "Copiar enlace compartible",
"empty": "No se encontraron ejemplos con los filtros seleccionados",
"emptyForQuery": "No se encontraron ejemplos para \"{{query}}\" con los filtros seleccionados",
"resetFilters": "Restablecer filtros",
"installing": "Instalando librerías ({{done}}/{{total}})",
"loadingExample": "Cargando ejemplo...",
"notFound": "Ejemplo \"{{id}}\" no encontrado.",
"browseAll": "Ver todos los ejemplos"
},
"starBanner": {
"ariaLabel": "Marcar Velxio con estrella en GitHub",
"title": "¿Disfrutando de Velxio?",
"body": "¡Una ⭐ en GitHub ayuda a que más desarrolladores descubran el proyecto — solo toma 2 segundos!",
"cta": "Marcar con estrella en GitHub",
"dismiss": "Descartar"
},
"auth": {
"login": {
"title": "Iniciar sesión",
"subtitle": "para continuar en Velxio",
"email": "Correo electrónico",
"password": "Contraseña",
"signIn": "Iniciar sesión",
"signingIn": "Iniciando sesión…",
"or": "o",
"continueGoogle": "Continuar con Google",
"noAccount": "¿No tienes cuenta?",
"failed": "Error al iniciar sesión."
},
"register": {
"title": "Crear cuenta",
"subtitle": "Empieza a construir gratis",
"username": "Nombre de usuario",
"usernamePlaceholder": "p. ej. alice",
"passwordPlaceholder": "Al menos 8 caracteres",
"create": "Crear cuenta",
"creating": "Creando cuenta…",
"haveAccount": "¿Ya tienes cuenta?",
"errors": {
"reserved": "Ese nombre de usuario está reservado.",
"usernameRules": "El nombre de usuario debe tener entre 3 y 30 caracteres (a-z, 0-9, _, -)",
"passwordTooShort": "La contraseña debe tener al menos 8 caracteres.",
"failed": "Error al registrarse."
}
}
}
}