feat: move session sharing and collab rooms into a plugin (B12)

This commit is contained in:
LukeGus committed 2026-09-23 23:42:46 -05:00
1 parent 791d8656a1
commit a276f6898c
207 files changed
+35771 -11072

No files matched your search

+2 -134
View File
@@ -667,7 +667,6 @@
"done_cli_link": "Abre la documentación de la CLI."
},
"nav": {
"collab": "Reuniones",
"home": "Inicio",
"terminal": "Terminal",
"localTerminal": "Terminal local",
@@ -1036,8 +1035,6 @@
"enableAutoTmuxDesc": "Mantén tu shell y todo lo que se esté ejecutando en él activo durante desconexiones y reinicios del navegador ejecutándolo dentro de tmux (tmux debe estar instalado en el host).",
"enableSessionLogging": "Registro de sesión",
"enableSessionLoggingDesc": "Registrar la salida de la sesión de terminal para su revisión posterior",
"allowSessionSharing": "Permitir compartir la sesión",
"allowSessionSharingDesc": "Permitir que las sesiones en vivo en este servidor se compartan mediante un enlace o con otros usuarios.",
"localEchoLabel": "Eco local",
"localEchoDesc": "Predice localmente las pulsaciones de teclas seguras para imprimir en conexiones lentas. Las solicitudes de contraseña y la entrada de control nunca se repiten.",
"localEchoDefault": "Utilizar la configuración global",
@@ -1571,137 +1568,11 @@
"join": "Unirse",
"sharedSessionLabel": "{{hostName}} (compartido)"
},
"collab": {
"createRoom": "Habitación nueva",
"roomName": "Nombre de la habitación",
"persistentRoom": "Habitación persistente",
"persistentRoomHint": "Las salas reservadas permanecen en la lista una vez finalizada la reunión y pueden volver a utilizarse.",
"noRooms": "Aún no hay salas disponibles. Crea una para iniciar una reunión.",
"openRoom": "Abierto",
"endRoom": "Fin de la reunión",
"leaveRoom": "Dejar",
"deleteMember": "Eliminar",
"removeMember": "Eliminar {{name}}",
"removeMemberTitle": "¿Eliminar a este miembro?",
"removeMemberDescription": "{{name}} perderá el acceso a esta sala inmediatamente. Cualquier visor SSH activo será desconectado.",
"invite": "Invitar",
"inviteTitle": "Invitar a los miembros",
"members": "Miembros",
"membersPanel": "Miembros de la sala y solicitudes de control",
"membersWithCount": "Miembros ({{count}})",
"online": "en línea",
"offline": "desconectado",
"you": "(tú)",
"hostBadge": "Anfitrión",
"presenterBadge": "Presentación",
"present": "Presente",
"presentTitle": "Sube al escenario",
"presentHost": "Anfitrión",
"searchHosts": "Buscar hosts",
"noHostsFound": "No se encontraron hosts disponibles.",
"presentProtocol": "Protocolo",
"stopPresenting": "Deja de presentar",
"takeOver": "Tomar el control",
"takeOverConfirmTitle": "¿Reemplazar la presentación actual?",
"takeOverDescription": "{{name}} se está presentando ahora. Tomar el control desconectará a todos de ese escenario.",
"emptyStage": "Nadie va a presentar. Sube al escenario para compartir una sesión.",
"stageLoading": "Conectando con el escenario...",
"stageEnded": "La presentación terminó",
"roomEnded": "Esta reunión ha terminado.",
"presenterLabel": "{{name}} está presentando",
"guestLink": "Enlace de invitado",
"guestLinkOn": "El enlace para invitados está activado. Cualquiera que tenga el enlace puede ver el espectáculo.",
"guestLinkOff": "El enlace de invitado está desactivado.",
"copyLink": "Copiar enlace",
"rotateLink": "Enlace giratorio",
"disableLink": "Deshabilitar enlace",
"rotateLinkConfirmTitle": "¿Rotar el enlace de invitado?",
"rotateLinkDescription": "El enlace actual dejará de funcionar inmediatamente. Los invitados SSH conectados serán desconectados.",
"disableLinkConfirmTitle": "¿Deshabilitar el enlace de invitado?",
"disableLinkDescription": "Los usuarios que intenten acceder de forma anónima mediante SSH serán desconectados inmediatamente y el enlace actual dejará de funcionar.",
"linkCopied": "Enlace copiado",
"roles": "Roles",
"users": "Usuarios",
"searchUsers": "Buscar usuarios",
"endConfirmTitle": "¿Dar por terminada esta reunión?",
"endDescription": "{{name}} finalizará para todos y no podrá reabrirse.",
"endPersistentDescription": "La presentación activa en {{name}} se detendrá. La sala permanece disponible para su reutilización.",
"deleteRoom": "Eliminar habitación",
"deleteConfirmTitle": "¿Eliminar esta habitación?",
"deleteDescription": "{{name}} se eliminará permanentemente para todos y no se podrá deshacer.",
"invitedTo": "Te invitaron a \"{{name}}\"",
"guest": {
"title": "Reunión",
"waiting": "Esperando al presentador...",
"linkInvalid": "Este enlace de invitado no es válido o la reunión ha finalizado."
},
"reopenFromPanel": "Esta pestaña de reunión ha caducado. Vuelva a abrir la sala desde el panel de Reuniones.",
"requestControl": "Control de solicitudes",
"cancelControlRequest": "Cancelar solicitud",
"controlQueue": "Solicitudes de control",
"noControlRequests": "No hay solicitudes pendientes.",
"grantControlTo": "Cede el control a {{name}}",
"dismissControlRequest": "Rechazar la solicitud de control de {{name}}",
"releaseControl": "Control de liberación",
"grantControl": "Cede el control",
"revokeControl": "Recupera el control",
"controlRequestedBy": "{{name}} pidió control",
"grant": "Conceder",
"controlBadge": "En control",
"youArePresenting": "Estás presentando en otra pestaña. Deja de presentar para ceder la palabra.",
"created": "Habitación creada",
"invited": "Miembros invitados",
"roomTab": "Reunión"
},
"sessionSharing": {
"guestView": {
"loading": "Conectando con la sesión compartida...",
"linkInvalid": "Este enlace para compartir no es válido, ha caducado o ha sido revocado.",
"rateLimited": "Demasiados intentos, por favor inténtelo de nuevo en breve.",
"sessionEnded": "Esta sesión ha finalizado.",
"readOnlyBadge": "Solo lectura",
"ownerLabel": "Propietario del anfitrión"
},
"modalTitle": "Compartir sesión",
"shareButton": "Compartir",
"notReadyToShare": "La sesión aún no está lista para compartirse.",
"modeTab": {
"link": "Enlace",
"user": "Usuario"
},
"linkModeDescription": "Cualquier persona con este enlace puede unirse, no se requiere cuenta.",
"userModeDescription": "Comparte la sesión con un usuario específico que ya tenga acceso a este host. Si aún no tiene acceso, comparte primero el host con él o utiliza un enlace. Una vez compartida, la sesión aparecerá en su pestaña Conexiones.",
"permissionLevel": {
"label": "Nivel de permiso",
"readOnly": "Solo lectura",
"readOnlyDescription": "Se puede ver la sesión en directo, pero no se puede escribir ni interactuar.",
"readWrite": "Leer y escribir",
"readWriteDescription": "Puede escribir e interactuar con la sesión igual que el propietario."
},
"expiryLabel": "Caducidad del enlace",
"createLinkButton": "Crear enlace",
"createShareButton": "Compartir con el usuario",
"searchUsersPlaceholder": "Buscar usuarios...",
"noUsersFound": "No se encontraron usuarios",
"linkCreated": "Enlace para compartir creado",
"linkCopied": "Enlace copiado al portapapeles",
"copyLink": "Copiar enlace",
"shareCreated": "Sesión compartida. Aparecerá en su pestaña Conexiones.",
"shareFailed": "No se pudo crear el recurso compartido",
"userLacksHostAccess": "Ese usuario aún no tiene acceso a este servidor. Primero, comparte el servidor con él o utiliza un enlace.",
"activeShares": "Acciones activas",
"noActiveShares": "No hay acciones activas para esta sesión.",
"revoke": "Revocar",
"revokeConfirmTitle": "¿Revocar esta acción?",
"revokeConfirmDescription": "Cualquier persona que utilice este recurso compartido perderá el acceso inmediatamente.",
"revoked": "Acción revocada",
"revokeFailed": "No se pudo revocar la participación.",
"joinCount": "{{count}} unirse",
"joinCount_other": "{{count}} se une",
"expiresAt": "Caduca {{date}}",
"linkShareBadge": "Enlace",
"userShareBadge": "Usuario: {{username}}",
"loadSharesFailed": "No se pudieron cargar los recursos compartidos activos."
"readWrite": "Leer y escribir"
}
},
"terminal": {
"connect": "Conectar al host",
@@ -2239,7 +2110,6 @@
"analyticsEnabledDesc": "Envía un recuento diario anónimo de usuarios, hosts y uso de funciones para ayudar a mejorar Termix. No se incluyen datos personales ni detalles de conexión.",
"analyticsEnabledLockedDesc": "Esta configuración está bloqueada por la variable de entorno ENABLE_TELEMETRY y no se puede cambiar aquí.",
"updateAnalyticsFailed": "No se pudo actualizar la configuración de análisis.",
"sessionSharingGloballyEnabled": "Permitir compartir la sesión",
"auditForwardingTitle": "Reenviar a SIEM",
"auditForwardingDesc": "Envíe una copia de cada entrada de auditoría a un recopilador externo en formato NDJSON. Los registros locales siguen siendo la fuente de información fidedigna.",
"auditForwardingEnvNotice": "Una variable de entorno también configura el reenvío; la URL guardada aquí tiene prioridad.",
@@ -2247,8 +2117,6 @@
"auditForwardingTokenStored": "Token de portador (almacenado)",
"auditForwardingSaved": "Configuración de reenvío de auditoría guardada",
"auditForwardingSaveError": "No se pudieron guardar los ajustes de reenvío de auditoría.",
"sessionSharingGloballyEnabledDesc": "Permite compartir sesiones de terminal en vivo, RDP, VNC y Telnet en toda la instancia. Cuando está desactivado, anula cualquier configuración de uso compartido por host.",
"updateSessionSharingFailed": "No se pudo actualizar la configuración de uso compartido de la sesión.",
"sessionTimeout": "Tiempo de expiración de sesión",
"hours": "horas",
"sessionTimeoutRange": "Mín 1h · Máx 720h",