DUNGEONS-34: implement Webka local streaming app

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
2026-09-06 16:23:09 +05:00
parent 5540b9a1f4
commit 7c737c1011
36 changed files with 21596 additions and 0 deletions

View File

@@ -0,0 +1,177 @@
{
"nav": {
"main": "Navegación principal",
"host": "Estudio",
"watch": "Ver",
"accounts": "Cuentas",
"settings": "Ajustes"
},
"common": {
"close": "Cerrar",
"logout": "Cerrar sesión",
"skip": "Ir al contenido",
"working": "Procesando…",
"loading": "Cargando…",
"cancel": "Cancelar",
"save": "Guardar cambios",
"refresh": "Actualizar"
},
"login": {
"local": "Tu red. Tu espacio.",
"headline": "Un poco más cerca.",
"headlineAccent": "Estés donde estés.",
"description": "Convierte un dispositivo en una ventana en directo. Comparte tu cámara o pantalla en tu red local.",
"privacy": "Sin nube. Solo una conexión.",
"title": "Te damos la bienvenida",
"subtitle": "Inicia sesión en este servidor para ver la transmisión.",
"setupTitle": "Este es tu espacio",
"setupDescription": "Crea la cuenta de administrador de este servidor.",
"usernamePlaceholder": "Tu nombre de usuario",
"passwordPlaceholder": "Tu contraseña",
"setupToken": "Código de configuración",
"tokenHint": "Usa el código del archivo setup-token creado por el servidor local.",
"create": "Crear cuenta",
"signin": "Iniciar sesión",
"hostAccounts": "Las cuentas pertenecen solo a este servidor",
"localUtility": "Transmisiones locales"
},
"host": {
"eyebrow": "Tu espacio local",
"title": "Estudio de emisión",
"subtitle": "Una ventana a tu mundo. Tú tienes el control.",
"start": "Emitir en directo",
"stop": "Dejar de emitir",
"previewTitle": "Tu vista empieza aquí",
"previewHint": "Elige una fuente y empieza a emitir cuando quieras.",
"enableCamera": "Activar vista previa",
"private": "Emisión privada",
"broadcasting": "Emitiendo en tu red",
"previewOnly": "Solo tú puedes ver esta vista previa",
"audioOff": "Solo vídeo · Sin audio",
"videoSource": "Fuente de vídeo",
"switchAnytime": "Cambia cuando quieras",
"rearHint": "Activa la cámara para detectar las lentes disponibles.",
"uptime": "Tiempo en directo",
"viewers": "Espectadores",
"quality": "Calidad de envío",
"connectDevice": "Conectar un dispositivo",
"scanHint": "Escanea para abrir la emisión en otro dispositivo.",
"qrAlt": "Código QR de la dirección local",
"localAddress": "Dirección local",
"copy": "Copiar dirección",
"copied": "Dirección copiada",
"sameNetwork": "Conéctate a la misma red Wi-Fi",
"connected": "Espectadores conectados",
"noViewers": "Por ahora, todo tranquilo",
"inviteHint": "Comparte el enlace para invitar a alguien.",
"kick": "Desconectar",
"manageAccess": "Gestionar acceso",
"footer": "Diseñado para tu red. Tu emisión se queda en ella."
},
"sources": {
"front": "Cámara frontal",
"back": "Cámara trasera",
"screen": "Pantalla"
},
"stream": {
"offline": "Desconectado",
"connecting": "Conectando",
"reconnecting": "Reconectando",
"waiting": "Esperando al anfitrión",
"live": "En directo"
},
"quality": {
"auto": "Adaptable",
"high": "Alta · 4 Mbps",
"low": "Baja · 600 Kbps"
},
"watch": {
"fullscreen": "Alternar pantalla completa",
"disconnect": "Desconectar",
"reconnect": "Reconectar",
"waitingTitle": "Todo listo para empezar",
"waitingHint": "El anfitrión aún no está emitiendo. El vídeo aparecerá automáticamente.",
"connectingTitle": "Conectando contigo",
"connectingHint": "Conectando al servidor de tu red local."
},
"accounts": {
"eyebrow": "Quién puede entrar",
"title": "Cuentas y seguridad",
"subtitle": "Un espacio privado, con acceso a tu manera.",
"add": "Añadir espectador",
"protected": "Cada conexión empieza con un permiso",
"protectedHint": "El inicio de sesión es obligatorio. Las contraseñas se almacenan con hash. Puedes revocar el acceso.",
"localAccounts": "Cuentas locales",
"account": "Cuenta",
"role": "Rol",
"lastLogin": "Último acceso",
"sessions": "Sesiones",
"actions": "Acciones",
"you": "Tú",
"admin": "Administrador",
"viewer": "Espectador",
"username": "Nombre de usuario",
"password": "Contraseña",
"usernameHint": "3–40 caracteres: letras latinas, números, puntos, guiones o guiones bajos.",
"passwordHint": "Al menos 12 caracteres, con una letra y un número.",
"never": "Todavía no",
"reset": "Restablecer contraseña",
"delete": "Eliminar cuenta",
"saved": "Ajustes de acceso actualizados.",
"activeSessions": "Sesiones activas",
"sessionHint": "Las sesiones caducan tras 30 minutos de inactividad o 12 horas.",
"current": "Esta sesión",
"lastActive": "Última actividad",
"revoke": "Revocar",
"resetHint": "Se cerrarán todas las sesiones de {name} de inmediato.",
"deleteHint": "¿Eliminar a {name}? Se borrará la cuenta y se desconectarán todas sus sesiones."
},
"general": {
"eyebrow": "A tu gusto",
"title": "Ajustes",
"subtitle": "Pequeños detalles para tu espacio.",
"appearance": "Apariencia",
"dark": "Cristal oscuro",
"light": "Cristal claro",
"accent": "Color de acento",
"accentHint": "Dale personalidad a los controles.",
"language": "Idioma",
"displayLanguage": "Idioma de la interfaz",
"languageHint": "Se usa en toda la aplicación en este navegador.",
"privacy": "Privacidad y conexión",
"loginRequired": "Exigir inicio de sesión",
"loginHint": "Solo las cuentas de este servidor pueden ver la emisión.",
"alwaysOn": "Siempre activo",
"localOnly": "Solo red local",
"localHint": "Sin retransmisión en la nube, analítica ni servicios multimedia externos.",
"savedLocally": "Tus preferencias se guardan en este navegador."
},
"colors": {
"lime": "Lima",
"blue": "Azul",
"violet": "Violeta",
"peach": "Melocotón"
},
"errors": {
"server": "No se pudo completar la solicitud. Comprueba que el servidor local esté en marcha.",
"unauthorized": "Las credenciales no son correctas o la sesión ha caducado. Vuelve a iniciar sesión.",
"forbidden": "Esta acción requiere una cuenta de administrador.",
"origin": "Esta dirección no coincide con la del servidor. Abre la URL local configurada.",
"setupToken": "El código de configuración no es correcto.",
"alreadySetup": "Este servidor ya tiene un administrador. Inicia sesión.",
"username": "Usa 3–40 letras latinas, números, puntos o guiones.",
"password": "Usa al menos 12 caracteres, con una letra y un número.",
"rateLimited": "Demasiados intentos. Espera un minuto.",
"duplicate": "Ese nombre de usuario ya existe.",
"protectedAccount": "No se puede eliminar la cuenta del administrador.",
"notFound": "Esta cuenta ya no existe.",
"hostBusy": "Esta sesión ya está conectada u otro anfitrión está emitiendo. Cierra la otra pestaña.",
"secureContext": "La cámara y la pantalla necesitan HTTPS o localhost en el servidor. Abre la dirección segura.",
"NotAllowedError": "Se canceló o denegó el acceso. Permite el acceso a la cámara o pantalla.",
"NotFoundError": "No se encontró una cámara compatible.",
"NotReadableError": "La cámara está ocupada. Cierra las otras aplicaciones que la usan.",
"OverconstrainedError": "Esta fuente no está disponible. Prueba la cámara frontal.",
"clipboard": "No se pudo copiar automáticamente. Selecciona y copia la dirección.",
"fullscreen": "La pantalla completa no está disponible en este navegador."
}
}