{
  "pageTitle": "Panel de Control OBS de VDO.Ninja",
  "mainHeading": "Control OBS de VDO.Ninja",
  "languageSwitcher": {
    "label": "Idioma:"
  },
  "collapsible": {
    "clickToExpand": "Clic para expandir",
    "clickToCollapse": "Clic para contraer"
  },
  "customCss": {
    "title": "CSS Personalizado",
    "label": "Introduce tu CSS personalizado aquí:",
    "description": "Este CSS se aplicará a las fuentes."
  },
  "obsConnection": {
    "title": "Conexión WebSocket de OBS",
    "websocketUrlLabel": "URL del WebSocket:",
    "passwordLabel": "Contraseña:",
    "cameraPrefixLabel": "Prefijo general de cámara:",
    "reactionPrefixLabel": "Prefijo de reacción: VDO.",
    "highlightPrefixLabel": "Prefijo de resaltado: VDO.",
    "reactionPrefixDynamicLabel": "Prefijo de reacción: {{prefix}}{{separator}}{{subPrefix}}",
    "highlightPrefixDynamicLabel": "Prefijo de resaltado: {{prefix}}{{separator}}{{subPrefix}}",
    "connectButton": "Conectar",
    "disconnectButton": "Desconectar",
    "statusDisconnected": "Estado: Desconectado",
    "statusConnected": "Estado: Conectado",
    "statusConnecting": "Estado: Conectando...",
    "statusError": "Estado: Error",
    "statusErrorUrlMissing": "Estado: Error - Falta la URL",
    "statusErrorTimeout": "Estado: Error - Se agotó el tiempo de conexión",
    "statusErrorCameraPrefixMissing": "Estado: Error - Falta el prefijo de cámara"
  },
  "vdoNinjaSettings": {
    "title": "Configuración de VDO.Ninja",
    "baseUrlLabel": "URL Base de VDO.Ninja:",
    "baseUrlPlaceholder": "https://vdo.ninja",
    "roomNameLabel": "Nombre de la Sala:",
    "roomNamePlaceholder": "ej., MiSalaNinja",
    "passwordLabel": "Contraseña:",
    "passwordPlaceholder": "Sala o &password",
    "streamIdsLabel": "IDs de Stream:",
    "streamIdsPlaceholder": "streamId1,streamId2",
    "roomOrStreamIdsNeeded": "Se necesita nombre de sala o ID(s) de stream",
    "connectButton": "Conectar",
    "disconnectButton": "Desconectar",
    "cancelButton": "Cancelar",
    "statusDisconnected": "Estado: Desconectado",
    "statusConnected": "Estado: Conectado",
    "statusConnecting": "Estado: Conectando...",
    "statusConnectionFailed": "Estado: Conexión fallida",
    "statusConnectionLost": "Estado: Conexión perdida"
  },
  "streamIdMappings": {
    "title": "Mapeos de ID de Stream",
    "addNewMappingButton": "Agregar Nuevo Mapeo",
    "ruleTitle": "Regla de Mapeo de Stream",
    "streamIdPlaceholder": "ID de Stream",
    "streamIdTooltip": "ID de Stream de VDO.Ninja",
    "labelPlaceholder": "Etiqueta (opcional)",
    "labelTooltip": "Etiqueta de Stream de VDO.Ninja",
    "matchTypeTooltip": "Cómo hacer coincidir el stream",
    "matchType": {
        "idOnly": "Solo ID",
        "labelOnly": "Solo Etiqueta",
        "bothRequired": "Ambos requeridos",
        "eitherMatch": "Cualquiera coincide"
    },
    "targetSceneTooltip": "Escena OBS de destino",
    "selectSceneOption": "Selecciona una escena...",
    "removeRuleTooltip": "Eliminar esta regla de mapeo",
    "cloneToMainSceneLabel": "Clonar a la escena principal",
    "switchToSceneOnAddLabel": "Cambiar a escena al agregar",
    "ruleDescription": "Define cómo se enrutan los streams entrantes a las escenas de OBS."
  },
  "obsTargetSettings": {
    "title": "Configuración de Destino OBS",
    "sourceCreationScenesLabel": "Escenas para Creación de Fuentes:",
    "sourceCreationScenesDesc": "Selecciona una o más escenas. La primera será la principal, las demás para copiar.",
    "loadingScenes": "Cargando escenas...",
    "noScenesFound": "No se encontraron escenas",
    "refetchScenesButton": "Recargar Escenas",
    "screenShareSettings": {
        "title": "Configuración de Compartir Pantalla:",
        "widthLabel": "Ancho:",
        "heightLabel": "Alto:",
        "resolutionNote": "Esta resolución se usará para las fuentes de compartir pantalla en escenas con diseño 'Reacción'."
    },
    "autoAddSourcesLabel": "Auto-agregar nuevos streams como fuentes",
    "autoRemoveSourcesLabel": "Auto-eliminar fuentes al desconectar",
    "newSourceSizing": {
        "label": "Tamaño de Fuente Predeterminado:",
        "defaultSizeOption": "Predeterminado (1920x1080 en 0,0)",
        "bestFitOption": "Mejor Ajuste (Preservar Aspecto)",
        "stretchToFillOption": "Estirar para Llenar Pantalla",
        "overrideNote": "Los diseños específicos definidos en la sección \"Diseños\" anularán estos para esas escenas."
    },
    "codec": {
        "label": "Códec:",
        "noneOption": "ninguno",
        "learnMoreTitle": "Más información sobre las opciones de códec"
    }
  },
  "sceneLayouts": {
    "title": "Diseños de Escena",
    "addNewLayoutButton": "Agregar Nuevo Diseño",
    "description": "Define diseños automáticos para escenas específicas de OBS. Estos anularán el tamaño de fuente predeterminado para las escenas configuradas.",
    "sceneLabel": "Escena:",
    "selectSceneOption": "Seleccionar Escena...",
    "layoutLabel": "Diseño:",
    "selectLayoutOption": "Seleccionar Diseño...",
    "layoutTypes": {
        "grid": "Cuadrícula",
        "reaction": "Reacción",
        "highlight": "Resaltado"
    },
    "noActiveLayouts": "No hay diseños activos",
    "removeLayoutTooltip": "Eliminar esta configuración de diseño",
    "sceneAlreadyConfiguredTooltip": "(Ya en uso)",
    "sceneAlreadyConfiguredAlert": "La escena '{{sceneName}}' ya está en uso por otra configuración de diseño.",
    "controls": {
        "margin": "Margen",
        "spacing": "Espaciado",
        "offsetX": "Desplazamiento X",
        "offsetY": "Desplazamiento Y",
        "gridSplitScreenTwoCameras": "Pantalla dividida para 2 cámaras (Cuadrícula)",
        "distributeCameras": "Distribuir cámaras (Reacción/Resaltado)"
    }
  },
  "activeStreams": {
    "title": "Streams Activos",
    "noActiveStreams": "No hay streams activos",
    "streamIdLabel": "ID: {{id}}",
    "labelLabel": "Etiqueta: {{label}}",
    "targetSceneLabelText": "Escena de Destino: {{sceneName}}",
    "notSet": "No establecido",
    "defaultSceneTag": "predeterminado",
    "mappedSceneTag": "mapeado",
    "addedToObs": "✓ Agregado a OBS",
    "notInObs": "✗ No en OBS",
    "buttons": {
        "addToObs": "Agregar a OBS",
        "removeFromObs": "Eliminar de OBS",
        "highlight": "Resaltar",
        "unhighlight": "Quitar resaltado",
        "screenShare": "Compartir Pantalla",
        "stopScreenShare": "Detener Compartir Pantalla"
    }
  },
  "log": {
    "title": "Registro"
  },
  "vdoNinja": {
    "defaultStreamLabel": "Stream {{id}}"
  },
  "logMessages": {
    "settingsSaved": "Configuración guardada.",
    "settingsLoaded": "Configuración cargada desde localStorage.",
    "customCssChangedWillApplyToSource": "CSS personalizado cambiado. Se aplicará directamente a la configuración de fuente OBS en la próxima creación/actualización.",
    "errorLoadingSettings": "Error al cargar configuración desde localStorage: {{message}}. Usando valores predeterminados.",
    "noSavedSettings": "No se encontraron configuraciones guardadas. Usando valores predeterminados.",
    "appInitialized": "Panel de Control OBS de VDO.Ninja Inicializado. ¡Bienvenido!",
    "jsShaLoaded": "Biblioteca jsSHA cargada exitosamente (respaldo para Web Crypto).",
    "errorLoadingJsSha": "Error: Fallo al cargar la biblioteca jsSHA. La autenticación OBS podría fallar si Web Crypto tampoco está disponible.",
    "loadedStreamMappings": "Se cargaron {{count}} mapeos de stream.",
    "errorLoadingStreamMappings": "Error al cargar mapeos de stream desde localStorage: {{message}}",
    "warningStreamMappingElementsNotFound": "Advertencia: No se pudieron encontrar todos los elementos esperados en un div UI de mapeo de stream.",
    "loadedLayoutConfigs": "Se cargaron {{count}} configuraciones de diseño de escena.",
    "errorLoadingLayoutConfigs": "Error al cargar configuraciones de diseño de escena: {{message}}",
    "savedLayoutConfigs": "Se guardaron {{count}} configuraciones de diseño de escena.",
    "errorSavingLayoutsDuplicateScene": "Error al guardar diseños: La escena '{{sceneName}}' está configurada varias veces. Por favor asegúrate de que cada escena tenga solo un diseño.",
    "layoutSceneNotFound": "La escena guardada '{{sceneName}}' para el diseño no se encontró en las escenas OBS actuales.",
    "errorHidingSource": "Error al ocultar elemento de fuente {{sourceName}} en {{sceneName}}: {{message}}",
    "sceneAlreadyConfiguredError": "La escena '{{sceneName}}' ya está configurada para otro diseño. Revirtiendo selección.",
    "vdoNinja": {
        "disconnected": "Desconectado de VDO.Ninja.",
        "alreadyConnected": "Ya conectado a VDO.Ninja.",
        "errorRoomOrStreamIdNeeded": "Error VDO.Ninja: Se debe proporcionar el nombre de la sala o ID(s) de stream.",
        "connectionTimeout": "Se agotó el tiempo de conexión VDO.Ninja. No se recibió actividad del iframe.",
        "roomOrStreamIdNeededForConnect": "VDO.Ninja: Se debe proporcionar el nombre de la sala o ID(s) de stream específicos para conectar.",
        "streamIdsEmptyAfterTrim": "VDO.Ninja: Se proporcionaron IDs de stream pero estaban vacíos después de recortar.",
        "initializingIframe": "Inicializando iframe de VDO.Ninja con URL: {{url}}",
        "invalidBaseUrl": "URL base de VDO.Ninja inválida en configuración: {{url}}",
        "iframeConnectedActive": "Conexión de iframe VDO.Ninja establecida y activa.",
        "streamConnectedActive": "Stream VDO.Ninja conectado/activo: \"{{label}}\" (ID: {{id}})",
        "autoAddingStream": "Auto-agregando stream {{id}} a OBS.",
        "streamDisconnectedInactive": "Stream VDO.Ninja desconectado/inactivo: \"{{label}}\" (ID: {{id}})",
        "autoRemovingStream": "Auto-eliminando stream {{id}} de OBS.",
        "streamLabelUpdated": "Etiqueta de stream VDO.Ninja actualizada para ID {{id}}: \"{{newLabel}}\" (era \"{{oldLabel}}\")",
        "connectionLostResetting": "Conexión VDO.Ninja perdida (sin actividad del iframe). Intentando reiniciar."
    },
    "obs": {
        "disconnecting": "Desconectando del WebSocket de OBS...",
        "errorCameraPrefixRequired": "Error: El prefijo general de cámara es requerido para la conexión OBS.",
        "errorUrlRequired": "Error: La URL del WebSocket de OBS es requerida.",
        "attemptingConnection": "Intentando conectar al WebSocket de OBS en {{url}}...",
        "connectionTimeout": "El intento de conexión del WebSocket de OBS se agotó.",
        "connectionOpenedWaitingHello": "Conexión WebSocket de OBS abierta. Esperando Server Hello...",
        "receivedHelloSendingIdentify": "Hello recibido de OBS. Enviando Identify...",
        "authDataPrepared": "Datos de autenticación preparados para mensaje Identify.",
        "warningAuthRequiredNoPassword": "Advertencia: El servidor OBS requiere autenticación, pero no se proporcionó contraseña.",
        "authSuccessConnected": "¡Autenticación WebSocket de OBS exitosa! Conexión establecida.",
        "requestError": "Error de Solicitud OBS (Tipo: {{type}}, ID: {{id}}): {{error}} (Código: {{code}})",
        "eventSceneListChanged": "Evento OBS: Lista de escenas cambiada. Recargando escenas.",
        "errorProcessingMessage": "Error procesando mensaje WebSocket de OBS: {{message}}. Datos: {{data}}",
        "webSocketError": "Error WebSocket de OBS: {{error}}",
        "authFailedReason": "Autenticación fallida - contraseña incorrecta o autenticación requerida y no proporcionada.",
        "connectionClosedReasonCode": "Código: {{code}}{{wasClean}}",
        "uncleanDisconnection": " (Desconexión no limpia)",
        "connectionClosed": "Conexión WebSocket de OBS cerrada. Razón: {{reason}}",
        "errorCreatingConnection": "Error creando conexión WebSocket de OBS: {{message}}",
        "authGenerationError": "Error de generación de autenticación OBS: {{message}}",
        "cannotSendRequestNotConnected": "No se puede enviar solicitud '{{requestType}}': No conectado a OBS.",
        "errorSendingRequest": "Error enviando solicitud OBS '{{requestType}}': {{message}}",
        "requestTimeout": "Solicitud OBS '{{requestType}}' (ID: {{id}}) se agotó el tiempo.",
        "connectionEstablishedFetchingData": "Conexión OBS completamente establecida. Obteniendo datos iniciales...",
        "errorPostConnectionSetup": "Error durante la configuración post-conexión OBS (obteniendo escenas): {{message}}",
        "connectionClosedOrLost": "La conexión OBS ha sido cerrada o perdida.",
        "cannotFetchScenesNotConnected": "No se pueden obtener escenas OBS: No conectado a OBS.",
        "fetchingScenes": "Obteniendo escenas OBS...",
        "fetchedScenesCount": "Se obtuvieron {{count}} escenas de OBS.",
        "failedToFetchScenes": "Fallo al obtener escenas OBS o no se devolvieron escenas.",
        "errorFetchingScenes": "Error obteniendo escenas OBS: {{message}}",
        "cannotHighlightNotConnected": "No se puede resaltar: No conectado a OBS.",
        "highlightLayoutActiveManualLegacy": "La escena '{{sceneName}}' usa el nuevo Diseño de Resaltado. El botón de resaltado manual puede tener efecto limitado o estar reemplazado.",
        "stoppingScreenShareForHighlight": "Una compartición de pantalla está activa ({{id}}). Deteniéndola antes de resaltar.",
        "cannotScreenShareNotConnected": "No se puede iniciar compartir pantalla: No conectado a OBS.",
        "unhighlightingForScreenShare": "Una cámara está resaltada ({{id}}). Quitando resaltado antes de iniciar compartir pantalla.",
        "cannotAddScreenShareNotConnected": "No se puede agregar compartir pantalla: No conectado a OBS.",
        "cannotAddScreenShareNoRoom": "No se puede agregar compartir pantalla: Se requiere el nombre de sala VDO.Ninja para URLs de compartir pantalla.",
        "cannotAddScreenShareNoReactionLayoutScene": "No se puede agregar compartir pantalla: No hay escenas configuradas con diseño 'Reacción'.",
        "addingUpdatingScreenShareToReactionScenes": "Agregando/Actualizando fuente de compartir pantalla '{{sourceName}}' (URL: {{url}}) a escenas de Reacción. Creación principal en '{{primaryScene}}'. ({{count}} escenas en total)",
        "reconfiguringExistingScreenShare": "Reconfigurando fuente de compartir pantalla existente '{{oldName}}' para ser '{{newName}}'.",
        "reconfiguredRenamedScreenShare": "Reconfigurada y renombrada fuente de compartir pantalla existente a '{{sourceName}}'.",
        "screenShareExistsUpdating": "La fuente de compartir pantalla '{{sourceName}}' ya existe. Actualizando su configuración.",
        "creatingNewScreenShareInScene": "Creando nueva fuente de compartir pantalla '{{sourceName}}' en escena '{{sceneName}}'.",
        "ensuredTransformedScreenShareReaction": "Asegurada y transformada fuente de compartir pantalla '{{sourceName}}' en escena de Reacción '{{sceneName}}'.",
        "sourceFoundInSceneEnabled": "Fuente '{{sourceName}}' encontrada en escena '{{sceneName}}', ID de elemento: {{itemId}}. Asegurando que esté habilitada.",
        "sourceAddedToScene": "Fuente '{{sourceName}}' agregada a escena '{{sceneName}}', ID de elemento: {{itemId}}.",
        "errorCreatingSceneItem": "Error creando elemento de escena para '{{sourceName}}' en '{{sceneName}}': {{message}}",
        "errorCheckingSceneForItem": "Error verificando '{{sourceName}}' en escena '{{sceneName}}': {{message}}",
        "errorApplyingInitialTransform": "Error aplicando transformación predeterminada inicial a '{{sourceName}}' en '{{sceneName}}': {{message}}",
        "successConfigScreenShare": "Compartir pantalla configurado exitosamente para stream {{streamId}} ({{label}}).",
        "errorAddingUpdatingScreenShare": "Error agregando/actualizando fuente de compartir pantalla '{{sourceName}}': {{message}}.",
        "cannotToggleHighlightNotConnected": "No se puede alternar resaltado: No conectado a OBS.",
        "streamUnhighlighted": "Stream {{id}} sin resaltar (renombrado de {{oldName}} a {{newName}}).",
        "streamSuccessfullyUnhighlighted": "Stream {{id}} exitosamente sin resaltar (renombrado a {{newName}}).",
        "streamSuccessfullyHighlighted": "Stream {{id}} exitosamente resaltado (renombrado a {{newName}}).",
        "unhighlightError": "No se pudo quitar resaltado (renombrar) {{sourceName}}, puede que no exista u otro error: {{message}}",
        "highlightError": "No se pudo resaltar (renombrar) {{sourceName}}, puede que no exista u otro error: {{message}}",
        "legacyHighlightUnhighlightOnRemove": "Stream {{id}} estaba resaltado de forma heredada. Quitando resaltado.",
        "cannotAddStreamNotConnected": "No se puede agregar stream \"{{label}}\" ({{id}}) a OBS: No conectado a OBS.",
        "cannotAddStreamNoTargetSceneName": "No se puede agregar stream \"{{label}}\" ({{id}}): Se requiere el nombre de escena OBS de destino pero no está establecido (sin predeterminado y sin mapeo).",
        "foundExistingStandardSource": "Se encontró fuente estándar existente '{{sourceName}}' para stream {{streamId}}.",
        "foundExistingHighlightForConnectingStream": "Se encontró fuente OBS existente '{{sourceName}}' que coincide con el nombre de resaltado para stream conectándose {{streamId}}. Actualizando estado de resaltado interno.",
        "foundExistingHighlightedSource": "Se encontró fuente resaltada existente '{{sourceName}}' para stream {{streamId}}.",
        "noExistingSourceFoundWillCreate": "No se encontró fuente estándar ('{{baseSourceName}}') ni resaltada ('{{highlightedSourceName}}') para stream {{streamId}}. Se creará nueva.",
        "noExistingStandardSourceSamePrefix": "Fuente estándar '{{sourceName}}' no encontrada para stream {{streamId}} (prefijo de resaltado es igual). Se creará nueva.",
        "errorGettingCanvasSize": "Error obteniendo tamaño de lienzo OBS: {{message}}. Usando predeterminado {{width}}x{{height}}.",
        "sourceNotGlobalCreating": "La fuente '{{sourceName}}' no existe globalmente. Creándola en escena '{{sceneName}}'.",
        "sourceCreatedAddedToScene": "Fuente '{{sourceName}}' creada y agregada a escena '{{sceneName}}'.",
        "sourceGlobalUpdatingWithUrl": "La fuente '{{sourceName}}' ya existe globalmente. Actualizando su configuración. URL: {{url}}",
        "sourceFoundAsItemInScene": "Fuente '{{sourceName}}' encontrada como elemento en escena '{{sceneName}}'.",
        "sourceNotInSceneAdding": "Fuente '{{sourceName}}' no está en escena '{{sceneName}}'. Agregándola.",
        "cloningToMainScene": "Clonando fuente '{{sourceName}}' a escena principal (desde casillas) '{{sceneName}}' debido a regla de mapeo.",
        "addingSourceToOtherScene": "Agregando fuente '{{sourceName}}' como elemento a otra escena seleccionada '{{sceneName}}'.",
        "switchingProgramScene": "Cambiando escena de programa actual OBS a '{{sceneName}}'.",
        "successfullyProcessedStream": "Stream procesado exitosamente \"{{label}}\" ({{id}}), fuente OBS efectiva: '{{sourceName}}'.",
        "errorManagingStream": "Error gestionando stream '{{sourceName}}' (\"{{label}}\") en OBS: {{message}}",
        "applyTransformAndGridCalled": "applyTransformAndGrid llamado para {{sourceName}} en {{sceneName}}. Activando actualización completa de diseño para escena.",
        "triggeringLayoutUpdate": "Activando actualización de diseño para escena '{{sceneName}}'...",
        "gridFallbackSourceChanged": "Configuración de cuadrícula para '{{sourceGridScene}}' (candidato de respaldo principal) cambió. Activando actualización para escena Reacción/Resaltado '{{dependentScene}}'.",
        "noSceneItemsForLayout": "No se encontraron elementos de escena en escena '{{sceneName}}' para actualización de diseño.",
        "applyingConfiguredLayout": "Aplicando diseño '{{layoutType}}' a escena '{{sceneName}}'. ({{count}} elementos)",
        "unknownLayoutType": "Tipo de diseño desconocido '{{layoutType}}' para escena '{{sceneName}}'. Aplicando tamaño predeterminado.",
        "noSpecificLayoutApplyingDefault": "Sin diseño específico para escena '{{sceneName}}'. Aplicando tamaño de fuente predeterminado ('{{sizing}}').",
        "errorTriggeringLayoutUpdate": "Error durante actualización de diseño para escena '{{sceneName}}': {{message}}",
        "applyingDefaultSizing": "Aplicando tamaño de fuente predeterminado ('{{sizing}}') a {{count}} elementos en escena '{{sceneName}}'.",
        "errorApplyingDefaultTransformItem": "Error aplicando transformación predeterminada a {{sourceName}} en {{sceneName}}: {{message}}",
        "noSourcesForGridLayout": "No hay fuentes de cámara VDO.Ninja para aplicar diseño de Cuadrícula en escena '{{sceneName}}'.",
        "applyingGridLayoutScene": "Aplicando Diseño de Cuadrícula a {{count}} fuentes de cámara VDO.Ninja en escena '{{sceneName}}'.",
        "applyingGridSplitScreen": "Aplicando diseño de cuadrícula de pantalla dividida para 2 cámaras a escena '{{sceneName}}'.",
        "reactionMainNotFoundFallbackGrid": "Contenido principal para diseño de Reacción en escena '{{sceneName}}' no encontrado/visible. Aplicando cuadrícula de respaldo de cámaras.",
        "highlightMainNotFoundFallbackGrid": "Contenido principal para diseño de Resaltado en escena '{{sceneName}}' no encontrado/visible. Aplicando cuadrícula de respaldo de cámaras.",
        "usingGridSceneFallbackSettings": "Usando configuración de cuadrícula de la primera escena con diseño 'Cuadrícula' configurada ('{{sceneName}}') como respaldo para '{{targetScene}}'.",
        "usingDefaultGridFallbackSettings": "No se encontró escena con diseño 'Cuadrícula'. Usando configuración de cuadrícula predeterminada como respaldo para '{{targetScene}}'.",
        "applyingFallbackGridToCameras": "Aplicando diseño de Cuadrícula de respaldo a {{count}} fuentes de cámara en escena '{{sceneName}}'.",
        "noCamerasForFallbackGridHidingAll": "No hay elementos de cámara para mostrar en cuadrícula de respaldo para escena '{{sceneName}}'. Todas las fuentes VDO en esta escena serán ocultadas.",
        "cannotRemoveStreamNotConnected": "No se puede eliminar stream {{id}} de OBS: No conectado a OBS.",
        "triggeredRemoval": "Eliminación activada por usuario o auto para stream '{{id}}' de OBS. Fuente base: '{{baseName}}'.",
        "streamScreenSharingRemoving": "Stream {{id}} estaba compartiendo pantalla activamente. Iniciando eliminación de compartir pantalla.",
        "finishedRemovingSourceItems": "Terminada la eliminación de elementos de fuente para stream {{id}} de las escenas OBS especificadas.",
        "cannotRemoveScreenShareNotConnected": "No se puede eliminar compartir pantalla: No conectado a OBS.",
        "attemptingRemoveScreenShareSource": "Intentando eliminar completamente fuente de compartir pantalla '{{sourceName}}' de OBS (todas las escenas y entrada).",
        "removingGlobalInput": "Eliminando entrada global '{{sourceName}}' de OBS.",
        "successfullyRemovedInput": "Entrada '{{sourceName}}' eliminada exitosamente.",
        "errorScreenShareRemovalProcess": "Error durante proceso de eliminación de compartir pantalla para '{{sourceName}}': {{message}}",
        "removingSourceItemFromScene": "Eliminando elemento de fuente '{{sourceName}}' (ID: {{itemId}}) de escena '{{sceneName}}'.",
        "errorTryingRemoveSourceItem": "Error intentando eliminar elemento de fuente '{{sourceName}}' de escena '{{sceneName}}': {{message}}",
        "codecChangedUpdatingSources": "Códec cambiado a: {{codec}}. Actualizando fuentes OBS...",
        "codecChangedNotConnected": "OBS no está conectado. Las fuentes no se actualizarán con el nuevo códec hasta la reconexión y una nueva acción.",
        "sourceUpdatedWithUrlAndCss": "Fuente '{{sourceName}}' actualizada con URL: {{url}} y CSS personalizado.",
        "screenShareSourceUpdatedWithUrlAndCss": "Fuente de compartir pantalla '{{sourceName}}' actualizada con URL: {{url}} y CSS personalizado.",
        "codecUpdateComplete": "Actualización de códec para fuentes OBS completada.",
        "codecCssUpdateComplete": "Actualización de códec/CSS para fuentes OBS completada.",
        "inputNameChanged": "Evento OBS: Nombre de entrada cambió de '{{oldName}}' a '{{newName}}'. Verificando escenas relevantes para actualizaciones de diseño.",
        "foundPreExistingHighlight": "Se encontró fuente resaltada preexistente en OBS: '{{sourceName}}'. Estableciendo resaltado activo a ID de stream: {{streamId}}.",
        "errorCheckingMainContentEnabled": "Error verificando si el contenido principal {{sourceName}} está habilitado: {{message}}"
    }
  }
}