diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 5c34dee54..84140e311 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -32,7 +32,7 @@ jobs:
node-version: '16'
- run: node ./node-red/.github/scripts/update-node-red-docker.js
- name: Create Docker Pull Request
- uses: peter-evans/create-pull-request@v5
+ uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.NR_REPO_TOKEN }}
committer: GitHub Error añadiendo flujos __message__ Flujos detenidos por falta de tipo de nodo. Flujos detenidos por módulos no encontrados. Flujos detenidos en modo seguro. Puedes modificar los flujos e instanciar los cambios para reiniciar. Los flujos se detuvieron porque las credenciales no se pudieron descifrar. El archivo de credenciales de flujo está cifrado, pero la clave de cifrado del proyecto falta o no es válida. No se pudieron descifrar las credenciales El archivo de credenciales de flujo está cifrado, y falta la clave de cifrado del proyecto o no es válida. El archivo de credenciales de flujo se restablecerá en la siguiente instanciación. Se borrarán todas las credenciales de flujo existentes. No se encontró el archivo de flujo del proyecto. El proyecto no está configurado con un archivo de flujo. No se encontró el archivo del paquete del proyecto. Al proyecto le falta un archivo package.json. El proyecto está vacío. ¿Quieres crear un conjunto predeterminado de archivos de proyecto? Proyecto '__project__' no encontrado. Falló la fusión automática de cambios. Soluciona los conflictos no combinados y luego confirma los resultados. Usando una versión no compatible de Node.js Debes actualizar a la última versión LTS de Node.js Fallo al cargar '__module__' __error__ Nodos importados sin una identificación de flujo válida Se han agregado a un nuevo flujo llamado '__flowName__'. \"__file__\" ya existe. ¿Quieres reemplazarlo? Este módulo no puede ser instalado debido a que incluye un Conflictos con La carga del catálogo de nodos ha fallado Revise la consola del navegador para mas información Fallo al instalar: __module__ __message__ Revise el log para mas información Fallo al eliminar: __module__ __message__ Revise el log para mas información Fallo al actualizar: __module__ __message__ Revise el log para mas información Fallo al activar: __module__ __message__ Revise el log para mas información Fallo al desactivar: __module__ __message__ Revise el log para mas información Instalando '__module__' Lea la documentación del nodo antes de instalarlo. Algunos nodos poseen dependencias que no pueden ser resueltas automáticamente y pueden requerir que Node-RED sea reiniciado. Eliminando '__module__' La eliminación del nodo lo desinstalará de Node-RED. Es posible que el nodo siga utilizando recursos hasta que Node-RED sea reiniciado. Actualizando '__module__' La actualización del nodo requerirá un reinicio manual de Node-RED para completarse. Debe ser reiniciado manualmente. No es posible traer los cambios remotos; tus cambios locales no preparados serían sobreescritos. Confirma tus cambios primero e intente nuevamente. El servidor remoto tiene una historia de commits no relacionada. ¿Estás seguro de que quieres traer los cambios a tu repositorio local? La expresión actual todavía hace referencia a Cuando el soporte para JSONata fue añadido a Node-RED, se requería que la expresión haga referencia al objeto Eso ya no es necesario ya que la expresión será evaluada contra el mensaje directamente. Para acceder a la carga util, la expresión debe ser simplemente El tipo buffer es almacenado como un arreglo JSON de valores de tipo byte. El editor intentará procesar el valor ingresado como un arreglo JSON. Si no es JSON válido, será tratado como un string UTF-8 y convertido a un arreglo de los códigos de sus caracteres individuales. Por ejemplo, el valor
De lo contrario, tendrás que agregar archivos manualmente al proyecto fuera del editor.
"
+ },
+ "editor": {
+ "title": "Gestionar paleta",
+ "palette": "Paleta",
+ "allCatalogs": "Todos los Catálogos",
+ "times": {
+ "seconds": "segundos hace",
+ "minutes": "minutos hace",
+ "minutesV": "hace __count__ minutos",
+ "hoursV": "hace __count__ hora",
+ "hoursV_plural": "hace __count__ horas",
+ "daysV": "hace __count__ día",
+ "daysV_plural": "hace __count__ días",
+ "weeksV": "hace __count__ semana",
+ "weeksV_plural": "hace __count__ semanas",
+ "monthsV": "hace __count__ mes",
+ "monthsV_plural": "hace __count__ meses",
+ "yearsV": "hace __count__ año",
+ "yearsV_plural": "hace __count__ años",
+ "yearMonthsV": "hace __y__ año y __count__ mes",
+ "yearMonthsV_plural": "hace __y__ año y __count__ meses",
+ "yearsMonthsV": "hace __y__ años y __count__ mes",
+ "yearsMonthsV_plural": "hace __y__ años y __count__ meses"
+ },
+ "nodeCount": "__label__ nodo",
+ "nodeCount_plural": "__label__ nodos",
+ "moduleCount": "__count__ módulo disponible",
+ "moduleCount_plural": "__count__ módulos disponibles",
+ "inuse": "en uso",
+ "enableall": "habilitar todo",
+ "disableall": "deshabilitar todo",
+ "enable": "habilitar",
+ "disable": "deshabilitar",
+ "remove": "eliminar",
+ "update": "actualizar a __version__",
+ "updated": "actualizado",
+ "install": "instalar",
+ "installed": "instalado",
+ "conflict": "conflicto",
+ "conflictTip": "
__error__
tipo de nodo que ya ha sido instalado__module__
Por favor revise la documentación para obtener mas información sobre como actualizar este nodo."
+ },
+ "button": {
+ "review": "Abrir información del nodo",
+ "install": "Instalar",
+ "remove": "Eliminar",
+ "update": "Actualizar"
+ }
+ }
+ }
+ },
+ "sidebar": {
+ "info": {
+ "name": "Información",
+ "tabName": "Nombre",
+ "label": "info",
+ "node": "Nodo",
+ "type": "Tipo",
+ "group": "Grupo",
+ "module": "Módulo",
+ "id": "ID",
+ "status": "Estado",
+ "enabled": "Habilitado",
+ "disabled": "Deshabilitado",
+ "subflow": "Subflujo",
+ "instances": "Instancias",
+ "properties": "Propiedades",
+ "info": "Información",
+ "desc": "Descripción",
+ "blank": "vacío",
+ "null": "nulo",
+ "showMore": "mostrar más",
+ "showLess": "mostrar menos",
+ "flow": "Flujo",
+ "selection": "Selección",
+ "nodes": "__count__ nodos",
+ "flowDesc": "Descripción del flujo",
+ "subflowDesc": "Descripción del subflujo",
+ "nodeHelp": "Ayuda del nodo",
+ "none": "Ninguno",
+ "arrayItems": "__count__ elementos",
+ "showTips": "Puedes abrir las sugerencias desde el panel de ajustes",
+ "outline": "Contorno",
+ "empty": "vacío",
+ "globalConfig": "Nodos de configuración global",
+ "triggerAction": "Acción de inicio",
+ "find": "Encontrar en espacio de trabajo",
+ "copyItemUrl": "Copiar URL elemento",
+ "copyURL2Clipboard": "URL copiada al portapapeles",
+ "showFlow": "Mostrar",
+ "hideFlow": "Esconder"
+ },
+ "help": {
+ "name": "Ayuda",
+ "label": "ayuda",
+ "search": "Buscar en la ayuda",
+ "nodeHelp": "Ayuda de nodo",
+ "showHelp": "Mostrar ayuda",
+ "showInOutline": "Mostrar en controno",
+ "showTopics": "Mostrar temas",
+ "noHelp": "No hay ningun tema de ayuda seleccionado",
+ "changeLog": "Registro de Cambios"
+ },
+ "config": {
+ "name": "Nodos de configuración",
+ "label": "config",
+ "global": "En todos los flujos",
+ "none": "ninguno",
+ "subflows": "subflujos",
+ "flows": "flujos",
+ "filterAll": "todos",
+ "showAllConfigNodes": "Mostrar todos los nodos de configuración",
+ "filterUnused": "no utilizado",
+ "showAllUnusedConfigNodes": "Mostrar todos los nodos de configuración no utilizados",
+ "filtered": "__count__ escondidos"
+ },
+ "context": {
+ "name":"Información de contexto",
+ "label":"contexto",
+ "none": "ninguno seleccionado",
+ "refresh": "actualice para cargar",
+ "empty": "vacío",
+ "node": "Nodo",
+ "flow": "Flujo",
+ "global": "Global",
+ "deleteConfirm": "¿Estás seguro de que quieres eliminar este elemento?",
+ "autoRefresh": "Actualizar automáticamente al seleccionar",
+ "refrsh": "Actualizar",
+ "delete": "Eliminar"
+ },
+ "palette": {
+ "name": "Gestión de Paleta",
+ "label": "paleta"
+ },
+ "project": {
+ "label": "proyecto",
+ "name": "Proyecto",
+ "description": "Descripción",
+ "dependencies": "Dependencias",
+ "settings": "Ajustes",
+ "noSummaryAvailable": "No hay resumen disponible",
+ "editDescription": "Editar descripción proyecto",
+ "editDependencies": "Editar dependencias proyecto",
+ "noDescriptionAvailable": "Ninguna descripción disponible",
+ "editReadme": "Editar README.md",
+ "showProjectSettings": "Mostrar ajustes del proyecto",
+ "projectSettings": {
+ "title": "Ajustes del proyecto",
+ "edit": "editar",
+ "none": "Ninguno",
+ "install": "instalar",
+ "removeFromProject": "eliminar del proyecto",
+ "addToProject": "agregar al proyecto",
+ "files": "Archivos",
+ "flow": "Flujo",
+ "credentials": "Credenciales",
+ "package": "Paquete",
+ "packageCreate": "El archivo será creado cuando se guarden los cambios",
+ "fileNotExist": "El archivo no existe",
+ "selectFile": "Seleccionar archivo",
+ "invalidEncryptionKey": "Clave de encriptación inválida",
+ "encryptionEnabled": "Encriptación habilitada",
+ "encryptionDisabled": "Encryption disabled",
+ "setTheEncryptionKey": "Establecer la clave de encriptación",
+ "resetTheEncryptionKey": "Reestablecer la clave de encriptación",
+ "changeTheEncryptionKey": "Cambiar la clave de encriptación",
+ "currentKey": "Clave actual",
+ "newKey": "Nueva clave",
+ "credentialsAlert": "Esto eliminará todas las credenciales existentes",
+ "versionControl": "Control de versiones",
+ "branches": "Ramas",
+ "noBranches": "Sin ramas",
+ "deleteConfirm": "¿Estás seguro de que quieres eliminar la rama local '__name__'? Esta acción no puede deshacerse.",
+ "unmergedConfirm": "La rama local '__name__' tiene cambios no fusionados que se perderán. ¿Estás seguro de que quieres eliminarla?",
+ "deleteUnmergedBranch": "Eliminar rama no fusionada",
+ "gitRemotes": "Git remotes",
+ "addRemote": "añadir remoto",
+ "addRemote2": "Añadir remoto",
+ "remoteName": "Nombre del repositorio remoto",
+ "nameRule": "Solo se permiten los caracteres A-Z 0-9 _ -",
+ "url": "URL",
+ "urlRule": "https://, ssh:// ó file://",
+ "urlRule2": "No incluyas el usuario ni la contraseña en la URL",
+ "noRemotes": "No hay remotos",
+ "deleteRemoteConfrim": "¿Estás seguro de que quieres eliminar el repositorio remoto '__name__'?",
+ "deleteRemote": "Eliminar repositorio remoto"
+ },
+ "userSettings": {
+ "committerDetail": "Detalles del commiter",
+ "committerTip": "Dejar este campo vacío para usar el valor por defecto del sistema",
+ "userName": "Usuario",
+ "email": "Email",
+ "workflow": "Flujo de Trabajo",
+ "workfowTip": "Elige tu flujo de trabajo GIT preferido",
+ "workflowManual": "Manual",
+ "workflowManualTip": "Todos los cambios deben confirmarse manualmente en la sección 'historia' de la barra lateral",
+ "workflowAuto": "Automático",
+ "workflowAutoTip": "Los cambios serán confirmadoos a git automáticamente con cada instanciación",
+ "sshKeys": "Claves SSH",
+ "sshKeysTip": "Permiten crear conexiones seguras a repositorios de git remotos.",
+ "add": "añadir clave",
+ "addSshKey": "Añadir Clave SSH",
+ "addSshKeyTip": "Generar un nuevo par de claves publica/privada",
+ "name": "Nombre",
+ "nameRule": "Debe contener exclusivamente los siguientes caracteres: A-Z 0-9 _ -",
+ "passphrase": "Contraseña",
+ "passphraseShort": "La contraseña es demasiado corta",
+ "optional": "Opcional",
+ "cancel": "Cancelar",
+ "generate": "Generar clave",
+ "noSshKeys": "No hay claves SSH",
+ "copyPublicKey": "Copiar la clave pública al portapapeles",
+ "delete": "Eliminar clave",
+ "gitConfig": "configuración Git",
+ "deleteConfirm": "¿Estás seguro de que quieres eliminar la clave SSH '__name__'? Esto no puede deshacerse."
+ },
+ "versionControl": {
+ "unstagedChanges": "Cambios no preparados",
+ "stagedChanges": "Cambios preparados",
+ "unstageChange": "Des-preparar cambio",
+ "stageChange": "Preparar cambio",
+ "unstageAllChange": "Despreparar todos los cambios",
+ "stageAllChange": "Preparar todos los cambios",
+ "commitChanges": "Confirmar cambios",
+ "resolveConflicts": "Resolver conflictos",
+ "head": "HEAD",
+ "staged": "Preparado",
+ "unstaged": "No preparado",
+ "local": "Local",
+ "remote": "Remoto",
+ "revert": "¿Estás seguro de que quieres revertir los cambios en '__file__'? Esto no puede deshacerse.",
+ "revertChanges": "Revertir cambios",
+ "localChanges": "Cambios locales",
+ "none": "Ninguno",
+ "conflictResolve": "Todos los conflictos resueltos. Confirma los cambios para completar la fusión.",
+ "localFiles": "Archivos locales",
+ "all": "todo",
+ "unmergedChanges": "Cambios sin mergear",
+ "abortMerge": "cancelar merge",
+ "commit": "commit",
+ "changeToCommit": "Cambios al commit",
+ "commitPlaceholder": "Escriba su mensaje de commit",
+ "cancelCapital": "Cancelar",
+ "commitCapital": "Commit",
+ "commitHistory": "Historial de commits",
+ "branch": "Branch:",
+ "moreCommits": " commit(s) más",
+ "changeLocalBranch": "Cambiar rama local",
+ "createBranchPlaceholder": "Buscar o crear una rama",
+ "upstream": "fuente",
+ "localOverwrite": "Tienes cambios locales que podrían ser sobreescritos si cambias de rama. Debes confirmar o deshacer esos cambios primero.",
+ "manageRemoteBranch": "Gestionar rama remota",
+ "unableToAccess": "No es posible acceder al repositorio remoto",
+ "retry": "Reintentar",
+ "setUpstreamBranch": "Establecer rama como rama fuente",
+ "createRemoteBranchPlaceholder": "Encontrar o crear una rama remota",
+ "trackedUpstreamBranch": "La rama creada será establecida como la rama fuente.",
+ "selectUpstreamBranch": "La rama será creada. Elígela debajo para establecerla como la rama fuente.",
+ "pushFailed": "El envío falló ya que el remoto tiene commits mas recientes. Trae esos cambios primero y luego vuelve a subir.",
+ "push": "enviar",
+ "pull": "traer",
+ "unablePull": "Modo de compatibilidad JSONata
msg
por lo que será evaluada en modo de compatibilidad. Por favor actualice la expresión evitando utilizar msg
debido a que este modo será eliminado en el futuro.msg
. Por ejemplo msg.payload
era usado para acceder a la carga útil del mensaje.payload
.Editor de buffer
Hello World
será convertido al arreglo JSON:[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]
Tienes cambios no instanciados que se perderán.
¿Quieres continuar?
" + }, + "send-req": { + "auth-req": "Se requiere autenticación para el repositorio", + "username": "Usuario", + "password": "Contraseña", + "passphrase": "Frase de contraseña", + "retry": "Reintentar", + "update-failed": "No se pudo actualizar la autenticación", + "unhandled": "Respuesta de error no controlada", + "host-key-verify-failed": "Error en la verificación de la clave del servidor.
No se pudo verificar la clave del servidor del repositorio. Actualiza tu archivo known_hosts
e inténtelo de nuevo.
Este nodo es de un tipo desconocido para tu instalación de Node-RED.
Si instancia con el nodo en este estado, tu configuración se conservará, pero el flujo no comenzará hasta el tipo que falta esté instalado.
Consulta la barra lateral de información para obtener más ayuda
" + }, + "mqtt": { + "label": { + "broker": "Servidor", + "example": "e.g. localhost", + "output": "Salida", + "qos": "CdS", + "retain": "Retener", + "clientid": "ID Cliente", + "port": "Puerto", + "keepalive": "Mantener activo", + "cleansession": "Usar sesión limpia", + "autoUnsubscribe": "Darse de baja automáticamente al desconectarse", + "cleanstart": "Usar inicio limpio", + "use-tls": "Utilizar TLS", + "tls-config": "Configuración TLS", + "verify-server-cert": "Verificar el certificado del servidor", + "compatmode": "Utiliza el soporte compatible de MQTT 3.1", + "userProperties": "Propiedades de usuario", + "subscriptionIdentifier": "ID Subscripción", + "flags": "Indicadores", + "nl": "No recibir mensajes publicados por este cliente", + "rap": "Mantener retención de publicación original", + "rh": "Manejo de mensajes retenidos", + "rh0": "Enviar mensajes retenidos", + "rh1": "Enviar solo para nuevas suscripciones", + "rh2": "No enviar", + "responseTopic": "Tema de respuesta", + "contentType": "Tipo de contenido", + "correlationData": "Datos de correlación", + "expiry": "Caducidad (s)", + "sessionExpiry": "Caducidad de la sesión (s)", + "topicAlias": "Alias", + "payloadFormatIndicator": "Formato", + "payloadFormatIndicatorFalse": "bytes no especificados (predeterminado)", + "payloadFormatIndicatorTrue": "Carga codificada en UTF-8", + "protocolVersion": "Protocolo", + "protocolVersion3": "MQTT V3.1 (legacy)", + "protocolVersion4": "MQTT V3.1.1", + "protocolVersion5": "MQTT V5", + "topicAliasMaximum": "Máximo alias", + "maximumPacketSize": "Tamaño máximo de paquete", + "receiveMaximum": "Máximo recepción", + "session": "Sesión", + "delay": "Retraso", + "action": "Acción", + "staticTopic": "Suscríbete a un solo tema", + "dynamicTopic": "Suscripción dinámica", + "auto-connect": "Conectar automáticamente", + "auto-mode-depreciated": "Esta opción está descontinuada. Utiliza el nuevo modo de detección automática.", + "none": "ninguno", + "other": "otro" + }, + "sections-label": { + "birth-message": "Mensaje enviado al conectarse (mensaje de inicio)", + "will-message": "Mensaje enviado ante una desconexión inesperada (mensaje de voluntad)", + "close-message": "Mensaje enviado antes de desconectar (mensaje de cierre)" + }, + "tabs-label": { + "connection": "Conexión", + "security": "Seguridad", + "messages": "Mensajes" + }, + "placeholder": { + "clientid": "Dejar en blanco para auto generado", + "clientid-nonclean": "Debe configurarse para sesiones no limpias", + "will-topic": "Dejar en blanco para desactivar el mensaje de voluntad", + "birth-topic": "Déjelo en blanco para desactivar el mensaje de inicio.", + "close-topic": "Déjelo en blanco para desactivar el mensaje de cierre." + }, + "state": { + "connected": "Conectado al servidor: __broker__", + "disconnected": "Desconectado del servidor: __broker__", + "connect-failed": "Fallo en la conexión al servidor: __broker__", + "broker-disconnected": "Servidor __broker__ desconectado del cliente: __reasonCode__ __reasonString__" + }, + "retain": "Retener", + "output": { + "buffer": "un Buffer", + "string": "un Texto", + "base64": "un texto codificado Base64", + "auto": "auto-detectar (texto o buffer)", + "auto-detect": "auto-detectar (objeto JSON, texto o buffer)", + "json": "un objeto JSON" + }, + "true": "verdadero", + "false": "falso", + "tip": "Consejo: Deja el tema, CdS o manténgalo en blanco si quieres configurarlos a través de las propiedades del mensaje.", + "errors": { + "not-defined": "tema no definido", + "missing-config": "falta configuración del servidor", + "invalid-topic": "Tema especificado no válido", + "nonclean-missingclientid": "No se ha establecido ningún ID de cliente, se utiliza una sesión limpia", + "invalid-json-string": "Cadena JSON no válida", + "invalid-json-parse": "No se pudo analizar la cadena JSON", + "invalid-action-action": "Acción no válida especificada", + "invalid-action-alreadyconnected": "Desconectar del servidor antes de conectar", + "invalid-action-badsubscription": "msg.topic falta o no es válido", + "invalid-client-id": "Falta ID de cliente" + } + }, + "httpin": { + "label": { + "method": "Método", + "url": "URL", + "doc": "Docs", + "return": "Return", + "upload": "Accept file uploads?", + "status": "Status code", + "headers": "Headers", + "other": "otro", + "paytoqs": { + "ignore": "Ignore", + "query": "Append to query-string parameters", + "body": "Send as request body" + }, + "utf8String": "texto UTF8", + "binaryBuffer": "buffer binario", + "jsonObject": "objeto JSON", + "authType": "Tipo", + "bearerToken": "Token" + }, + "setby": "- set by msg.method -", + "basicauth": "Use authentication", + "use-tls": "Enable secure (SSL/TLS) connection", + "tls-config": "TLS Configuration", + "basic": "basic authentication", + "digest": "digest authentication", + "bearer": "bearer authentication", + "use-proxy": "Use proxy", + "persist": "Enable connection keep-alive", + "proxy-config": "Proxy Configuration", + "use-proxyauth": "Use proxy authentication", + "noproxy-hosts": "Ignore hosts", + "senderr": "Only send non-2xx responses to Catch node", + "utf8": "a UTF-8 string", + "binary": "a binary buffer", + "json": "a parsed JSON object", + "tip": { + "in": "The url will be relative to ", + "res": "The messages sent to this node must originate from an http input node", + "req": "Tip: If the JSON parse fails the fetched string is returned as-is." + }, + "httpreq": "http request", + "errors": { + "not-created": "Cannot create http-in node when httpNodeRoot set to false", + "missing-path": "missing path", + "no-response": "No response object", + "json-error": "JSON parse error", + "no-url": "No url specified", + "deprecated-call": "Deprecated call to __method__", + "invalid-transport": "non-http transport requested", + "timeout-isnan": "Timeout value is not a valid number, ignoring", + "timeout-isnegative": "Timeout value is negative, ignoring", + "invalid-payload": "Invalid payload", + "invalid-url": "Invalid url" + }, + "status": { + "requesting": "requesting" + }, + "insecureHTTPParser": "Disable strict HTTP parsing" + }, + "websocket": { + "label": { + "type": "Tipo", + "path": "Ruta", + "url": "URL", + "subprotocol": "Subprotocolo" + }, + "listenon": "Listen on", + "connectto": "Connect to", + "sendrec": "Send/Receive", + "payload": "payload", + "message": "entire message", + "sendheartbeat": "Send heartbeat", + "tip": { + "path1": "By default,payload
will contain the data to be sent over, or received from a websocket. The listener can be configured to send or receive the entire message object as a JSON formatted string.",
+ "path2": "This path will be relative to __path__
.",
+ "url1": "URL should use ws:// or wss:// scheme and point to an existing websocket listener.",
+ "url2": "By default, payload
will contain the data to be sent over, or received from a websocket. The client can be configured to send or receive the entire message object as a JSON formatted string."
+ },
+ "status": {
+ "connected": "connected __count__",
+ "connected_plural": "connected __count__"
+ },
+ "errors": {
+ "connect-error": "An error occurred on the ws connection: ",
+ "send-error": "An error occurred while sending: ",
+ "missing-conf": "Missing server configuration",
+ "duplicate-path": "Cannot have two WebSocket listeners on the same path: __path__",
+ "missing-server": "Missing server configuration",
+ "missing-client": "Missing client configuration"
+ }
+ },
+ "watch": {
+ "watch": "watch",
+ "label": {
+ "files": "File(s)",
+ "recursive": "Watch sub-directories recursively"
+ },
+ "placeholder": {
+ "files": "Comma-separated list of files and/or directories"
+ },
+ "tip": "On Windows you must use double back-slashes \\\\ in any directory names."
+ },
+ "tcpin": {
+ "label": {
+ "type": "Tipo",
+ "output": "Salida",
+ "port": "puerto",
+ "host": "en servidor",
+ "payload": "carga(s)",
+ "delimited": "delimitado por",
+ "close-connection": "¿Cerrar la conexión después de enviar cada mensaje?",
+ "decode-base64": "¿Decodificar mensaje Base64?",
+ "server": "Servidor",
+ "return": "Devolver",
+ "ms": "ms",
+ "chars": "caracteres",
+ "close": "Cerrar",
+ "optional": "(opcional)",
+ "reattach": "volver a adjuntar delimitador"
+ },
+ "type": {
+ "listen": "Escuchar",
+ "connect": "Conectar a",
+ "reply": "Responder a TCP"
+ },
+ "output": {
+ "stream": "corriente de",
+ "single": "único",
+ "buffer": "Buffer",
+ "string": "Cadena",
+ "base64": "Cadena Base64"
+ },
+ "return": {
+ "timeout": "después de un tiempo de espera fijo de",
+ "character": "cuando el carácter recibido es",
+ "number": "después de un número fijo de caracteres",
+ "never": "nunca - mantener la conexión abierta",
+ "immed": "inmediatamente - no esperar respuesta"
+ },
+ "status": {
+ "connecting": "conectando a __host__:__port__",
+ "connected": "conectado a __host__:__port__",
+ "listening-port": "escuchando en el puerto __port__",
+ "stopped-listening": "dejó de escuchar en el puerto",
+ "connection-from": "conexión desde __host__:__port__",
+ "connection-closed": "conexión cerrada desde __host__:__port__",
+ "connections": "__count__ conexión",
+ "connections_plural": "__count__ conexiones"
+ },
+ "errors": {
+ "connection-lost": "conexión perdida a __host__:__port__",
+ "timeout": "puerto de socket __port__ cerrado por tiempo de espera",
+ "cannot-listen": "incapaz de escuchar en el puerto __port__, error: __error__",
+ "error": "error: __error__",
+ "socket-error": "error de socket desde __host__:__port__",
+ "no-host": "Servidor y/o puerto no configurado",
+ "connect-timeout": "tiempo de espera de conexión",
+ "connect-fail": "conexión fallida",
+ "bad-string": "no se pudo convertir a cadena",
+ "invalid-host": "Servidor no válido",
+ "invalid-port": "Puerto no válido"
+ }
+ },
+ "udp": {
+ "label": {
+ "listen": "Escuchar",
+ "onport": "en Puerto",
+ "using": "utilizando",
+ "output": "Salida",
+ "group": "Grupo",
+ "interface": "SI local",
+ "send": "Enviar un",
+ "toport": "al puerto",
+ "address": "Dirección",
+ "decode-base64": "¿Decodificar la carga codificada en Base64?",
+ "port": "puerto"
+ },
+ "placeholder": {
+ "interface": "(opcional) interfaz local o dirección a la que vincularse",
+ "interfaceprompt": "(opcional) interfaz local o dirección a la que vincularse",
+ "address": "IP de destino"
+ },
+ "udpmsgs": "mensajes udp",
+ "mcmsgs": "mensajes multidifusión",
+ "udpmsg": "mensajes udp",
+ "bcmsg": "mensajes transmisión",
+ "mcmsg": "mensajes multidifusión",
+ "output": {
+ "buffer": "un Buffer",
+ "string": "un Texto",
+ "base64": "un texto codificado Base64"
+ },
+ "bind": {
+ "random": "enlazar a puerto local aleatorio",
+ "local": "enlazar al puerto local",
+ "target": "enlazar al puerto de destino"
+ },
+ "tip": {
+ "in": "Consejo: asegúrate de que tu firewall permita la entrada de datos.",
+ "out": "Consejo: deja la dirección y el puerto en blanco si quieres configurar usando msg.ip
y msg.port
.",
+ "port": "Puertos ya en uso: "
+ },
+ "status": {
+ "listener-at": "udp escuchando en __host__:__port__",
+ "mc-group": "udp grupo multidifusión __group__",
+ "listener-stopped": "udp escucha detenida",
+ "output-stopped": "udp salida detenida",
+ "mc-ready": "udp multidifusión lista: __iface__:__outport__ -> __host__:__port__",
+ "bc-ready": "udp transmisión lista: __outport__ -> __host__:__port__",
+ "ready": "udp lista: __outport__ -> __host__:__port__",
+ "ready-nolocal": "udp lista: __host__:__port__",
+ "re-use": "udp reutilizar el socket: __outport__ -> __host__:__port__"
+ },
+ "errors": {
+ "access-error": "Error de acceso UDP, es posible que necesites acceso de root para puertos inferiores a 1024",
+ "error": "error: __error__",
+ "bad-mcaddress": "Dirección de multidifusión incorrecta",
+ "interface": "Debe ser la dirección IP de la interfaz requerida.",
+ "ip-notset": "udp: dirección IP no configurada",
+ "port-notset": "udp: puerto no configurado",
+ "port-invalid": "udp: número de puerto no válido",
+ "alreadyused": "udp: puerto __port__ ya en uso",
+ "ifnotfound": "udp: interfaz __iface__ no encontrada",
+ "invalid-group": "grupo de multidifusión no válido"
+ }
+ },
+ "switch": {
+ "switch": "conmutador",
+ "label": {
+ "property": "Propiedad",
+ "rule": "regla",
+ "repair": "recrear secuencias de mensajes",
+ "value-rules": "reglas de valor",
+ "sequence-rules": "reglas de secuencia"
+ },
+ "previous": "valor anterior",
+ "and": "y",
+ "checkall": "revisando todas las reglas",
+ "stopfirst": "parando después de la primer coincidencia",
+ "ignorecase": "ignorar capitalización",
+ "rules": {
+ "btwn": "está entre",
+ "cont": "contiene",
+ "regex": "matches regex",
+ "true": "es verdadero",
+ "false": "es falso",
+ "null": "es nulo",
+ "nnull": "es no nulo",
+ "istype": "es de tipo",
+ "empty": "es vacío",
+ "nempty": "es no vacío",
+ "head": "cabeza",
+ "tail": "cola",
+ "index": "índice entre",
+ "exp": "espresión JSONata",
+ "else": "de lo contrario",
+ "hask": "tiene índice"
+ },
+ "errors": {
+ "invalid-expr": "Expresión JSONata no válida: __error__",
+ "too-many": "Demasiados mensajes pendientes en el nodo de conmutación."
+ }
+ },
+ "change": {
+ "label": {
+ "rules": "Reglas",
+ "rule": "regla",
+ "set": "establece __property__",
+ "change": "cambia __property__",
+ "delete": "elimina __property__",
+ "move": "mueve __property__",
+ "changeCount": "cambia: __count__ reglas",
+ "regex": "Usa expresiones regulares",
+ "deepCopy": "Copia profunda"
+ },
+ "action": {
+ "set": "Establece",
+ "change": "Cambia",
+ "delete": "Elimina",
+ "move": "Mueve",
+ "toValue": "al valor",
+ "to": "a",
+ "search": "Buscar",
+ "replace": "Reemplazar con"
+ },
+ "errors": {
+ "invalid-from": "Propiedad 'from' inválida: __error__",
+ "invalid-json": "Propiedad JSON 'to' inválida",
+ "invalid-expr": "Expresión JSONata inválida: __error__",
+ "no-override": "No se puede establecer una propiedad que no sea de tipo objeto: __property__",
+ "invalid-prop": "Expresión de propiedad inválida: __property__",
+ "invalid-json-data": "Datos JSON inválidos: __error__"
+ }
+ },
+ "range": {
+ "range": "rango",
+ "label": {
+ "action": "Acción",
+ "inputrange": "Mapear el rango de entrada",
+ "resultrange": "al rango objetivo",
+ "from": "de",
+ "to": "a",
+ "roundresult": "¿Redondear el resultado al número entero más cercano?",
+ "minin": "entrada de",
+ "maxin": "entrada a",
+ "minout": "destino de",
+ "maxout": "destino a"
+ },
+ "placeholder": {
+ "min": "e.g. 0",
+ "maxin": "e.g. 99",
+ "maxout": "e.g. 255"
+ },
+ "scale": {
+ "payload": "Escalar la propiedad del mensaje",
+ "limit": "Escalar y limitar al rango objetivo",
+ "wrap": "Escalar y ajustar dentro del rango objetivo",
+ "drop": "Escalar, pero eliminar el mensaje si está fuera del rango de entrada"
+ },
+ "tip": "Consejo: Este nodo SÓLO funciona con números.",
+ "errors": {
+ "notnumber": "No es un número"
+ }
+ },
+ "csv": {
+ "label": {
+ "columns": "Columnas",
+ "separator": "Separador",
+ "c2o": "Opciones de CSV a objeto",
+ "o2c": "Opciones de objeto a CSV",
+ "input": "Entrada",
+ "skip-s": "Saltar primero",
+ "skip-e": "líneas",
+ "firstrow": "la primera fila contiene nombres de columnas",
+ "output": "Salida",
+ "includerow": "incluir fila de nombre de columna",
+ "newline": "Nueva línea",
+ "usestrings": "analizar valores numéricos",
+ "include_empty_strings": "incluir cadenas vacías",
+ "include_null_values": "incluir valores nulos"
+ },
+ "placeholder": {
+ "columns": "nombres de columnas separados por comas"
+ },
+ "separator": {
+ "comma": "coma",
+ "tab": "tabulación",
+ "space": "espacio",
+ "semicolon": "semicoma",
+ "colon": "dos puntos",
+ "hashtag": "almohadilla",
+ "other": "otro..."
+ },
+ "output": {
+ "row": "un mensaje por fila",
+ "array": "un solo mensaje [array]"
+ },
+ "newline": {
+ "linux": "Linux (\\n)",
+ "mac": "Mac (\\r)",
+ "windows": "Windows (\\r\\n)"
+ },
+ "hdrout": {
+ "none": "nunca enviar encabezados de columna",
+ "all": "enviar siempre encabezados de columna",
+ "once": "enviar encabezados una vez, hasta msg.reset"
+ },
+ "errors": {
+ "csv_js": "Este nodo solo maneja cadenas CSV u objetos JS.",
+ "obj_csv": "No se ha especificado ninguna plantilla de columnas para el objeto -> CSV.",
+ "bad_csv": "Datos CSV con formato incorrecto: la salida probablemente esté corrupta."
+ }
+ },
+ "html": {
+ "label": {
+ "select": "Selector",
+ "output": "Salida",
+ "in": "en"
+ },
+ "output": {
+ "html": "el contenido HTML de los elementos",
+ "text": "sólo el contenido textual de los elementos",
+ "attr": "un objeto de cualquier atributo de los elementos"
+ },
+ "format": {
+ "single": "como un mensaje único que contiene una matriz",
+ "multi": "como mensajes múltiples, uno para cada elemento"
+ }
+ },
+ "json": {
+ "errors": {
+ "dropped-object": "Carga sin objeto ignorada",
+ "dropped": "Tipo de carga no compatible ignorado",
+ "dropped-error": "No se pudo convertir la carga",
+ "schema-error": "Error de esquema JSON",
+ "schema-error-compile": "Error de esquema JSON: no se pudo compilar el esquema"
+ },
+ "label": {
+ "o2j": "Opciones de objeto a JSON",
+ "pretty": "Formatear cadena JSON",
+ "action": "Acción",
+ "property": "Propiedad",
+ "actions": {
+ "toggle": "Convertir entre cadena JSON y objeto",
+ "str": "Convierta siempre a cadena JSON",
+ "obj": "Convertir siempre a objeto JavaScript"
+ }
+ }
+ },
+ "yaml": {
+ "errors": {
+ "dropped-object": "Carga sin objeto ignorada",
+ "dropped": "Tipo de carga no admitida ignorada",
+ "dropped-error": "No se pudo convertir la carga"
+ }
+ },
+ "xml": {
+ "label": {
+ "represent": "Propiedad para atributos XML",
+ "prefix": "Propiedad para el contenido de la etiqueta",
+ "advanced": "Opciones avanzadas",
+ "x2o": "Opciones de XML a objeto"
+ },
+ "errors": {
+ "xml_js": "Este nodo solo maneja cadenas XML u objetos JS."
+ }
+ },
+ "file": {
+ "label": {
+ "write": "escribir archivo",
+ "read": "leer archivo",
+ "filename": "Nombre del archivo",
+ "path": "ruta",
+ "action": "Acción",
+ "addnewline": "Añadir nueva línea (\\n) a cada carga?",
+ "createdir": "¿Crear directorio si no existe?",
+ "outputas": "Salida",
+ "breakchunks": "Romper en trozos",
+ "breaklines": "Romper en filas",
+ "sendError": "Enviar mensaje en caso de error (modo compatible)",
+ "encoding": "Codificación",
+ "deletelabel": "eliminar __file__",
+ "utf8String": "texto UTF8",
+ "utf8String_plural": "textos UTF8",
+ "binaryBuffer": "buffer binario",
+ "binaryBuffer_plural": "buffers binarios",
+ "allProps": "incluir todas las propiedades existentes en cada mensaje"
+ },
+ "action": {
+ "append": "adjuntar al archivo",
+ "overwrite": "sobrescribir archivo",
+ "delete": "borrar archivo"
+ },
+ "output": {
+ "utf8": "una sola cadena UTF8",
+ "buffer": "un único objeto Buffer",
+ "lines": "un mensaje por línea",
+ "stream": "una corriente de buffers"
+ },
+ "status": {
+ "wrotefile": "escrito al archivo: __file__",
+ "deletedfile": "archivo eliminado: __file__",
+ "appendedfile": "adjuntado al archivo: __file__"
+ },
+ "encoding": {
+ "none": "predeterminado",
+ "setbymsg": "definido por msg.encoding",
+ "native": "Nativo",
+ "unicode": "Unicode",
+ "japanese": "Japanese",
+ "chinese": "Chinese",
+ "korean": "Korean",
+ "taiwan": "Taiwan/Hong Kong",
+ "windows": "Windows codepages",
+ "iso": "ISO codepages",
+ "ibm": "IBM codepages",
+ "mac": "Mac codepages",
+ "koi8": "KOI8 codepages",
+ "misc": "Misceláneas"
+ },
+ "errors": {
+ "nofilename": "No se ha especificado ningún nombre de archivo",
+ "invaliddelete": "Advertencia: eliminación no válida. Utiliza la opción de eliminación específica en el cuadro de diálogo de configuración.",
+ "deletefail": "no se pudo eliminar el archivo: __error__",
+ "writefail": "no se pudo escribir en el archivo: __error__",
+ "appendfail": "no se pudo adjuntar al archivo: __error__",
+ "createfail": "no se pudo crear el archivo: __error__"
+ },
+ "tip": "Consejo: El nombre del archivo debe ser una ruta absoluta; de lo contrario, será relativo al directorio de trabajo del proceso Node-RED."
+ },
+ "split": {
+ "split": "dividir",
+ "intro": "Dividir msg.payload
basado en tipo:",
+ "object": "Objeto",
+ "objectSend": "Enviar un mensaje para cada par clave/valor",
+ "strBuff": "Texto / Buffer",
+ "array": "Array",
+ "splitUsing": "Dividir usando",
+ "splitLength": "Longitud fija de",
+ "stream": "Manejar como un flujo de mensajes",
+ "addname": " Copiar clave a "
+ },
+ "join": {
+ "join": "unir",
+ "mode": {
+ "mode": "Modo",
+ "auto": "automático",
+ "merge": "fusionar secuencias",
+ "reduce": "reducir secuencia",
+ "custom": "manual"
+ },
+ "combine": "Combinar cada",
+ "completeMessage": "mensaje completo",
+ "create": "a crear",
+ "type": {
+ "string": "un Texto",
+ "array": "un Array",
+ "buffer": "un Buffer",
+ "object": "un Objeto clave/valor",
+ "merged": "un Objeto combinado"
+ },
+ "using": "usando el valor de",
+ "key": "como la clave",
+ "joinedUsing": "se unió usando",
+ "send": "Enviar el mensaje:",
+ "afterCount": "Después de varias partes del mensaje",
+ "count": "contar",
+ "subsequent": "y cada mensaje posterior.",
+ "afterTimeout": "Después de un tiempo de espera trás el primer mensaje",
+ "seconds": "segundos",
+ "complete": "Después de un mensaje con la propiedad msg.complete
establecida",
+ "tip": "Este modo supone que este nodo está emparejado con un nodo dividir o que los mensajes recibidos tendrán una propiedad msg.parts
configurada correctamente.",
+ "too-many": "demasiados mensajes pendientes en el nodo de unión.",
+ "message-prop": "propiedad de mensaje",
+ "merge": {
+ "topics-label": "Temas Fusionados",
+ "topics": "temas",
+ "topic": "tema",
+ "on-change": "Enviar mensaje combinado al llegar un nuevo tema"
+ },
+ "reduce": {
+ "exp": "Expresión de reducción",
+ "exp-value": "expresión",
+ "init": "Valor inicial",
+ "right": "Evaluar en orden inverso (último a primero)",
+ "fixup": "Expresión de reparación"
+ },
+ "errors": {
+ "invalid-expr": "Expresión JSONata no válida: __error__",
+ "invalid-type": "No se puede juntar __error__ al buffer"
+ }
+ },
+ "sort": {
+ "sort": "ordenar",
+ "target": "Ordenar",
+ "seq": "secuencia de mensajes",
+ "key": "Clave",
+ "elem": "valor del elemento",
+ "order": "Orden",
+ "ascending": "ascendente",
+ "descending": "descendente",
+ "as-number": "como número",
+ "invalid-exp": "Expresión JSONata no válida en nodo de ordenación: __message__",
+ "too-many": "Demasiados mensajes pendientes en el nodo de clasificación",
+ "clear": "borrar mensaje pendiente en nodo de clasificación"
+ },
+ "batch": {
+ "batch": "lote",
+ "mode": {
+ "label": "Modo",
+ "num-msgs": "Agrupar por número de mensajes",
+ "interval": "Agrupar por intervalo de tiempo",
+ "concat": "Concatenar secuencias"
+ },
+ "count": {
+ "label": "Número de mensajes",
+ "overlap": "Solapamiento",
+ "count": "Contar",
+ "invalid": "Recuento y solapamiento no válidos"
+ },
+ "interval": {
+ "label": "Intervalo",
+ "seconds": "segundos",
+ "empty": "enviar mensaje vacío cuando no llega ningún mensaje"
+ },
+ "concat": {
+ "topics-label": "Temas",
+ "topic": "tema"
+ },
+ "too-many": "demasiados mensajes pendientes en el nodo de lotes",
+ "unexpected": "modo inesperado",
+ "no-parts": "ninguna propiedad 'parte' en el mensaje",
+ "error": {
+ "invalid-count": "Recuento no válido",
+ "invalid-overlap": "Solapamiento no válido",
+ "invalid-interval": "Intervalo no válido"
+ }
+ },
+ "rbe": {
+ "rbe": "filtrar",
+ "label": {
+ "func": "Modo",
+ "init": "Enviar valor inicial",
+ "start": "Valor inicial",
+ "name": "Nombre",
+ "septopics": "Aplicar el modo por separado para cada ",
+ "gap": "cambio de valor",
+ "property": "propiedad",
+ "topic": "tema"
+ },
+ "placeholder": {
+ "bandgap": "e.g. 10 ó 5%",
+ "start": "dejar en blanco para utilizar el primer dato recibido"
+ },
+ "opts": {
+ "rbe": "bloquear a menos que cambie el valor",
+ "rbei": "bloquear a menos que cambie el valor (ignorar el valor inicial)",
+ "deadband": "bloquear a menos que el cambio de valor sea mayor que",
+ "deadbandEq": "bloquear a menos que el cambio de valor sea mayor o igual que",
+ "narrowband": "bloquear si el cambio de valor es mayor que",
+ "narrowbandEq": "bloquear si el cambio de valor es mayor o igual que",
+ "in": "comparado con el último valor introducido",
+ "out": "comparado con el último valor de salida válido"
+ },
+ "warn": {
+ "nonumber": "no hay un número en la carga"
+ }
+ },
+ "global-config": {
+ "label": {
+ "open-conf": "Abrir Ajustes"
+ }
+ }
+}
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/network/05-tls.html b/packages/node_modules/@node-red/nodes/locales/es-ES/network/05-tls.html
new file mode 100644
index 000000000..715977ee8
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/network/05-tls.html
@@ -0,0 +1,19 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/network/06-httpproxy.html b/packages/node_modules/@node-red/nodes/locales/es-ES/network/06-httpproxy.html
new file mode 100644
index 000000000..8f830c29d
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/network/06-httpproxy.html
@@ -0,0 +1,22 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/network/10-mqtt.html b/packages/node_modules/@node-red/nodes/locales/es-ES/network/10-mqtt.html
new file mode 100644
index 000000000..dbfbff291
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/network/10-mqtt.html
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/network/21-httpin.html b/packages/node_modules/@node-red/nodes/locales/es-ES/network/21-httpin.html
new file mode 100644
index 000000000..2da3f7116
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/network/21-httpin.html
@@ -0,0 +1,83 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/network/21-httprequest.html b/packages/node_modules/@node-red/nodes/locales/es-ES/network/21-httprequest.html
new file mode 100644
index 000000000..9cf82938f
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/network/21-httprequest.html
@@ -0,0 +1,81 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/network/22-websocket.html b/packages/node_modules/@node-red/nodes/locales/es-ES/network/22-websocket.html
new file mode 100644
index 000000000..ccb929227
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/network/22-websocket.html
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/network/31-tcpin.html b/packages/node_modules/@node-red/nodes/locales/es-ES/network/31-tcpin.html
new file mode 100644
index 000000000..0d25594b4
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/network/31-tcpin.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/network/32-udp.html b/packages/node_modules/@node-red/nodes/locales/es-ES/network/32-udp.html
new file mode 100644
index 000000000..d87354621
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/network/32-udp.html
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-CSV.html b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-CSV.html
new file mode 100644
index 000000000..5dbbb88f0
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-CSV.html
@@ -0,0 +1,49 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-HTML.html b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-HTML.html
new file mode 100644
index 000000000..29491bb61
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-HTML.html
@@ -0,0 +1,33 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-JSON.html b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-JSON.html
new file mode 100644
index 000000000..36358ee9d
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-JSON.html
@@ -0,0 +1,44 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-XML.html b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-XML.html
new file mode 100644
index 000000000..95e7d83a4
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-XML.html
@@ -0,0 +1,49 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-YAML.html b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-YAML.html
new file mode 100644
index 000000000..2edce51e3
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/parsers/70-YAML.html
@@ -0,0 +1,34 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/17-split.html b/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/17-split.html
new file mode 100644
index 000000000..2537abad5
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/17-split.html
@@ -0,0 +1,146 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/18-sort.html b/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/18-sort.html
new file mode 100644
index 000000000..5999947a9
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/18-sort.html
@@ -0,0 +1,41 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/19-batch.html b/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/19-batch.html
new file mode 100644
index 000000000..7fd81c89b
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/sequence/19-batch.html
@@ -0,0 +1,35 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/storage/10-file.html b/packages/node_modules/@node-red/nodes/locales/es-ES/storage/10-file.html
new file mode 100644
index 000000000..0e8750d14
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/storage/10-file.html
@@ -0,0 +1,62 @@
+
+
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/locales/es-ES/storage/23-watch.html b/packages/node_modules/@node-red/nodes/locales/es-ES/storage/23-watch.html
new file mode 100644
index 000000000..cfaf604a2
--- /dev/null
+++ b/packages/node_modules/@node-red/nodes/locales/es-ES/storage/23-watch.html
@@ -0,0 +1,30 @@
+
+
+
diff --git a/packages/node_modules/@node-red/nodes/package.json b/packages/node_modules/@node-red/nodes/package.json
index 1391f684d..b003e4f07 100644
--- a/packages/node_modules/@node-red/nodes/package.json
+++ b/packages/node_modules/@node-red/nodes/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/nodes",
- "version": "3.1.3",
+ "version": "3.1.5",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/node_modules/@node-red/registry/package.json b/packages/node_modules/@node-red/registry/package.json
index 88def8031..187ebaf3b 100644
--- a/packages/node_modules/@node-red/registry/package.json
+++ b/packages/node_modules/@node-red/registry/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/registry",
- "version": "3.1.3",
+ "version": "3.1.5",
"license": "Apache-2.0",
"main": "./lib/index.js",
"repository": {
@@ -16,7 +16,7 @@
}
],
"dependencies": {
- "@node-red/util": "3.1.3",
+ "@node-red/util": "3.1.5",
"clone": "2.1.2",
"fs-extra": "11.1.1",
"semver": "7.5.4",
diff --git a/packages/node_modules/@node-red/runtime/lib/flows/Subflow.js b/packages/node_modules/@node-red/runtime/lib/flows/Subflow.js
index 031e75c36..62948d203 100644
--- a/packages/node_modules/@node-red/runtime/lib/flows/Subflow.js
+++ b/packages/node_modules/@node-red/runtime/lib/flows/Subflow.js
@@ -212,6 +212,7 @@ class Subflow extends Flow {
var subflowInstanceConfig = {
id: this.subflowInstance.id,
type: this.subflowInstance.type,
+ g: this.subflowInstance.g,
z: this.subflowInstance.z,
name: this.subflowInstance.name,
wires: [],
diff --git a/packages/node_modules/@node-red/runtime/lib/flows/index.js b/packages/node_modules/@node-red/runtime/lib/flows/index.js
index fa6649263..c955dfe1c 100644
--- a/packages/node_modules/@node-red/runtime/lib/flows/index.js
+++ b/packages/node_modules/@node-red/runtime/lib/flows/index.js
@@ -374,7 +374,12 @@ async function start(type,diff,muteLog,isDeploy) {
// A modified-type deploy means restarting things that have changed
// Update the global flow
- activeFlows['global'].update(activeFlowConfig,activeFlowConfig);
+ if (activeFlows['global']) {
+ activeFlows['global'].update(activeFlowConfig,activeFlowConfig);
+ } else {
+ log.debug("red/nodes/flows.start : starting flow : global");
+ activeFlows['global'] = Flow.create(flowAPI,activeFlowConfig);
+ }
for (id in activeFlowConfig.flows) {
if (activeFlowConfig.flows.hasOwnProperty(id)) {
if (!activeFlowConfig.flows[id].disabled) {
diff --git a/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js b/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js
index 856e5561b..3eff72870 100644
--- a/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js
+++ b/packages/node_modules/@node-red/runtime/lib/nodes/credentials.js
@@ -384,7 +384,8 @@ var api = module.exports = {
}
}
} else if (nodeType === "global-config") {
- const existingCredentialKeys = Object.keys(savedCredentials?.map || [])
+ savedCredentials.map = savedCredentials.map || {}
+ const existingCredentialKeys = Object.keys(savedCredentials.map)
const newCredentialKeys = Object.keys(newCreds?.map || [])
existingCredentialKeys.forEach(key => {
if (!newCreds.map?.[key]) {
@@ -396,7 +397,7 @@ var api = module.exports = {
})
newCredentialKeys.forEach(key => {
if (!/^has_/.test(key)) {
- if (!savedCredentials.map?.[key] || newCreds.map[key] !== '__PWRD__') {
+ if (!savedCredentials.map[key] || newCreds.map[key] !== '__PWRD__') {
// This key either doesn't exist in current saved, or the
// value has been changed
savedCredentials.map[key] = newCreds.map[key]
diff --git a/packages/node_modules/@node-red/runtime/locales/es-ES/runtime.json b/packages/node_modules/@node-red/runtime/locales/es-ES/runtime.json
new file mode 100644
index 000000000..8f63cb01e
--- /dev/null
+++ b/packages/node_modules/@node-red/runtime/locales/es-ES/runtime.json
@@ -0,0 +1,195 @@
+{
+ "runtime": {
+ "welcome": "Bienvenid@ a Node-RED",
+ "version": "__component__ versión: __version__",
+ "unsupported_version": "Versión no soportada de __component__. Requiere: __requires__ Encontrado: __version__",
+ "paths": {
+ "settings": "Fichero de Ajustes : __path__",
+ "httpStatic": "HTTP Estático : __path__"
+ }
+ },
+ "server": {
+ "loading": "Cargando paleta de nodos",
+ "palette-editor": {
+ "disabled": "Editor de paletas desactivado : ajustes de usuario",
+ "npm-not-found": "Editor de paletas desactivado : comando npm no encontrado",
+ "npm-too-old": "Editor de paletas desactivado : versión npm demasiado vieja. Requiere npm >= 3.x"
+ },
+ "errors": "Fallo al registrar __count__ tipo de nodo.",
+ "errors_plural": "Fallo al registrar __count__ tipos de nodo.",
+ "errors-help": "Ejecutar con -v para más detalles",
+ "missing-modules": "Faltan módulos de nodos:",
+ "node-version-mismatch": "El nodo de módulo no puede cargarse en esta versión. Requiere: __version__ ",
+ "set-has-no-types": "Establece no tiene ningún tipo. nombre: '__name__', módulo: '__module__', fichero: '__file__'",
+ "type-already-registered": "'__type__' ya registrado por módulo __module__",
+ "removing-modules": "Eliminando módulos de la configuración",
+ "added-types": "Tipos de nodos añadidos:",
+ "removed-types": "Tipos de nodos eliminados:",
+ "install": {
+ "invalid": "Nombre de módulo no válido",
+ "installing": "Instalando módulo: __name__, versión: __version__",
+ "installed": "Módulo instalado: __name__",
+ "install-failed": "Error de instalación",
+ "install-failed-long": "Fallo en la instalación del módulo __name__:",
+ "install-failed-not-found": "$t(server.install.install-failed-long) módulo no encontrado",
+ "install-failed-name": "$t(server.install.install-failed-long) nombre de módulo inválido: __name__",
+ "install-failed-url": "$t(server.install.install-failed-long) URL inválida: __url__",
+ "post-install-error": "Error ejecutando código 'postInstall':",
+ "upgrading": "Actualizando módulo: __name__ a la versión: __version__",
+ "upgraded": "Módulo actualizado: __name__. Reinicia Node-RED para utilizar la nueva versión",
+ "upgrade-failed-not-found": "$t(server.install.install-failed-long) versión no encontrada",
+ "uninstalling": "Desinstalando el módulo: __name__",
+ "uninstall-failed": "Error de desinstalación",
+ "uninstall-failed-long": "Error en la desinstalación del módulo __name__:",
+ "uninstalled": "Desinstalando módulo: __name__",
+ "old-ext-mod-dir-warning": "\n\n---------------------------------------------------------------------\nDirectorio de módulos externos Node-RED 1.3 detectado:\n __oldDir__\nEste directorio ya no se utiliza. Los módulos externos serán reinstalado en tu directorio de usuario Node-RED:__newDir__\nBorra el antiguo directorio externalModules para eliminar este mensaje.\n---------------------------------------------------------------------\n"
+ },
+ "deprecatedOption": "__old__ está en DESUSO. Utiliza __new__",
+ "unable-to-listen": "No se puede escuchar __listenpath__",
+ "port-in-use": "Error: puerto en uso",
+ "uncaught-exception": "Excepción no detectada:",
+ "admin-ui-disabled": "IU de administrador deshabilitado",
+ "now-running": "El servidor está funcionando en __listenpath__",
+ "failed-to-start": "No se pudo iniciar el servidor:",
+ "headless-mode": "Ejecutando en modo sin interfaz",
+ "httpadminauth-deprecated": "httpAdminAuth está en DESUSO. Utiliza adminAuth",
+ "https": {
+ "refresh-interval": "Actualizando la configuración HTTPS cada __interval__ horas",
+ "settings-refreshed": "La configuración HTTPS del servidor se ha actualizado",
+ "refresh-failed": "No se pudo actualizar la configuración HTTPS: __message__",
+ "nodejs-version": "httpsRefreshInterval requiere Node.js 11 o superior",
+ "function-required": "httpsRefreshInterval requiere que la propiedad HTTPS sea una función"
+ }
+ },
+ "api": {
+ "flows": {
+ "error-save": "Error al guardar flujos: __message__",
+ "error-reload": "Error al recargar flujos: __message__"
+ },
+ "library": {
+ "error-load-entry": "Error al cargar la entrada de la librería '__path__': __message__",
+ "error-save-entry": "Error al guardar la entrada de la librería '__path__': __message__",
+ "error-load-flow": "Error al cargar el flujo '__path__': __message__",
+ "error-save-flow": "Error al guardar el flujo '__path__': __message__"
+ },
+ "nodes": {
+ "enabled": "Tipos de nodo habilitados:",
+ "disabled": "Tipos de nodo deshabilitados:",
+ "error-enable": "Fallo al habilitar nodo:"
+ }
+ },
+ "comms": {
+ "error": "Error del canal de comunicación: __message__",
+ "error-server": "Error del servidor de comunicación: __message__",
+ "error-send": "Error de envío de comunicación: __message__"
+ },
+ "settings": {
+ "user-not-available": "No se puede guardar la configuración del usuario: __message__",
+ "not-available": "Ajustes no disponibles",
+ "property-read-only": "La propiedad '__prop__' es de sólo lectura",
+ "readonly-mode": "Ejecución en modo de sólo lectura. Los cambios no se guardarán."
+ },
+ "library": {
+ "unknownLibrary": "Librería desconocida: __library__",
+ "unknownType": "Tipo de librería desconocida: __type__",
+ "readOnly": "La librería __library__ es de sólo lectura",
+ "failedToInit": "Error al inicializar la librería __library__: __error__",
+ "invalidProperty": "Propiedad inválida __prop__: '__value__'"
+ },
+ "nodes": {
+ "credentials": {
+ "error": "Error al cargar las credenciales: __message__",
+ "error-saving": "Error al guardar credenciales: __message__",
+ "not-registered": "El tipo de credencial '__type__' no está registrado",
+ "system-key-warning": "\n\n---------------------------------------------------------------------\nTu archivo de credenciales de flujo se cifra utilizando una clave generada por el sistema. Si la clave generada por el sistema se pierde por cualquier motivo, tu archivo de credenciales no será recuperable, tendrás que borrarlo y volver a introducir tus credenciales. Node-RED volverá a cifrar tu archivo de credenciales utilizando la clave elegida la próxima vez que instancias un cambio.\n---------------------------------------------------------------------\n",
+ "unencrypted": "Usando credenciales no encriptadas",
+ "encryptedNotFound": "Credenciales encriptadas no encontradas"
+ },
+ "flows": {
+ "safe-mode": "Flujos detenidos en modo seguro. Instancia para iniciar",
+ "registered-missing": "Falta tipo registrado: __type__",
+ "error": "Error al cargar flujos: __message__",
+ "starting-modified-nodes": "Iniciando nodos modificados",
+ "starting-modified-flows": "Iniciando flujos modificados",
+ "starting-flows": "Iniciando flujos",
+ "started-modified-nodes": "Nodos modificados iniciados",
+ "started-modified-flows": "Flujos modificados iniciados",
+ "started-flows": "Flujos iniciados",
+ "stopping-modified-nodes": "Detención de nodos modificados",
+ "stopping-modified-flows": "Detención de flujos modificados",
+ "stopping-flows": "Flujos detenidos",
+ "stopped-modified-nodes": "Nodos modificados detenidos",
+ "stopped-modified-flows": "Flujos modificados detenidos",
+ "stopped-flows": "Flujos detenidos",
+ "stopped": "Detenido",
+ "stopping-error": "Error al detener el nodo: __message__",
+ "updated-flows": "Flujos actualizados",
+ "added-flow": "Añadiendo flujo: __label__",
+ "updated-flow": "Flujo actualizado: __label__",
+ "removed-flow": "Flujo eliminado: __label__",
+ "missing-types": "Esperando a que se registren los tipos que faltan:",
+ "missing-type-provided": " - __type__ (proporcionado por el módulo npm __module__)",
+ "missing-type-install-1": "Para instalar cualquiera de estos módulos que faltan, ejecuta:",
+ "missing-type-install-2": "en el directorio:"
+ },
+ "flow": {
+ "unknown-type": "Tipo desconocido: __type__",
+ "missing-types": "tipos que faltan",
+ "error-loop": "El mensaje superó el número máximo de capturas",
+ "non-message-returned": "El nodo intentó enviar un mensaje del tipo __type__"
+ },
+ "index": {
+ "unrecognised-id": "id no reconocido: __id__",
+ "type-in-use": "Tipo en uso: __msg__",
+ "unrecognised-module": "Módulo no reconocido: __module__"
+ },
+ "registry": {
+ "localfilesystem": {
+ "module-not-found": "No se puede encontrar el módulo '__module__'"
+ }
+ }
+ },
+ "storage": {
+ "index": {
+ "forbidden-flow-name": "nombre de flujo prohibido"
+ },
+ "localfilesystem": {
+ "user-dir": "Directorio de usuario : __path__",
+ "flows-file": "Archivo de flujos : __path__",
+ "create": "Creando nuevo archivo __type__",
+ "empty": "El archivo __type__ existente está vacío",
+ "invalid": "El archivo __type__ existente no es un JSON válido",
+ "restore": "Restaurando copia de seguridad de archivo __type__ : __path__",
+ "restore-fail": "Error al restaurar la copia de seguridad del archivo __type__ : __message__",
+ "fsync-fail": "Fallo en el volcado del archivo __path__ al disco : __message__",
+ "warn_name": "Nombre de archivo de flujos indefinido. Generando usando nombre de servidor",
+ "projects": {
+ "changing-project": "Configuración del proyecto activo : __project__",
+ "active-project": "Proyecto activo : __project__",
+ "projects-directory": "Directorio de proyectos: __projectsDirectory__",
+ "project-not-found": "Proyecto no encontrado : __project__",
+ "no-active-project": "No hay proyecto activo: se utiliza el archivo de flujos por defecto",
+ "disabled": "Proyectos desactivados : editorTheme.projects.enabled=false",
+ "disabledNoFlag": "Proyectos desactivados : establece editorTheme.projects.enabled=true a habilitado",
+ "git-not-found": "Proyectos desactivados : comando git no encontrado",
+ "git-version-old": "Proyectos desactivados : git __version__ no soportada. Requiere 2.x",
+ "summary": "Un Proyecto Node-RED",
+ "readme": "### Acerca de\n\nEste es el archivo README.md de tu proyecto. Ayuda a los usuarios a entender qué hace tu proyecto, cómo usarlo y cualquier otra cosa que necesiten saber."
+ }
+ }
+ },
+ "context": {
+ "log-store-init": "Almacén de contexto : '__name__' [__info__]",
+ "error-loading-module": "Error al cargar el almacén de contexto: __message__",
+ "error-loading-module2": "Error al cargar el almacén de contexto '__module__': __message__",
+ "error-module-not-defined": "Falta la opción 'module' en el almacén de contexto '__storage__'.",
+ "error-invalid-module-name": "Nombre de almacén de contexto no válido: '__name__'",
+ "error-invalid-default-module": "Almacén de contexto por defecto desconocido: '__storage__'",
+ "unknown-store": "Se ha especificado un almacén de contexto desconocido '__name__'. Usando almacén por defecto.",
+ "localfilesystem": {
+ "invalid-json": "JSON no válido en el archivo de contexto '__file__'",
+ "error-circular": "El contexto __scope__ contiene una referencia circular que no se puede mantener",
+ "error-write": "Error al escribir el contexto: __message__"
+ }
+ }
+}
diff --git a/packages/node_modules/@node-red/runtime/locales/fr/runtime.json b/packages/node_modules/@node-red/runtime/locales/fr/runtime.json
index 327af1460..0f5be3054 100644
--- a/packages/node_modules/@node-red/runtime/locales/fr/runtime.json
+++ b/packages/node_modules/@node-red/runtime/locales/fr/runtime.json
@@ -26,8 +26,8 @@
"removed-types": "Types de noeuds supprimés :",
"install": {
"invalid": "Nom de module invalide",
- "installing": "Installation du module : __nom__, version : __version__",
- "installed": "Module installé : __nom__",
+ "installing": "Installation du module : __name__, version : __version__",
+ "installed": "Module installé : __name__",
"install-failed": "L'installation a échoué",
"install-failed-long": "L'installation du module __name__ a échoué :",
"install-failed-not-found": "Module $t(server.install.install-failed-long) introuvable",
diff --git a/packages/node_modules/@node-red/runtime/package.json b/packages/node_modules/@node-red/runtime/package.json
index 78a65f7e0..f1aa5b101 100644
--- a/packages/node_modules/@node-red/runtime/package.json
+++ b/packages/node_modules/@node-red/runtime/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/runtime",
- "version": "3.1.3",
+ "version": "3.1.5",
"license": "Apache-2.0",
"main": "./lib/index.js",
"repository": {
@@ -16,8 +16,8 @@
}
],
"dependencies": {
- "@node-red/registry": "3.1.3",
- "@node-red/util": "3.1.3",
+ "@node-red/registry": "3.1.5",
+ "@node-red/util": "3.1.5",
"async-mutex": "0.4.0",
"clone": "2.1.2",
"express": "4.18.2",
diff --git a/packages/node_modules/@node-red/util/package.json b/packages/node_modules/@node-red/util/package.json
index e06220bbc..eea46d2c4 100644
--- a/packages/node_modules/@node-red/util/package.json
+++ b/packages/node_modules/@node-red/util/package.json
@@ -1,6 +1,6 @@
{
"name": "@node-red/util",
- "version": "3.1.3",
+ "version": "3.1.5",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/node_modules/node-red/lib/red.js b/packages/node_modules/node-red/lib/red.js
index a61adf1c2..a48de47d7 100644
--- a/packages/node_modules/node-red/lib/red.js
+++ b/packages/node_modules/node-red/lib/red.js
@@ -26,8 +26,8 @@ var server = null;
var apiEnabled = false;
const NODE_MAJOR_VERSION = process.versions.node.split('.')[0];
-if (NODE_MAJOR_VERSION > 14) {
- const dns = require('node:dns');
+if (NODE_MAJOR_VERSION >= 16) {
+ const dns = require('dns');
dns.setDefaultResultOrder('ipv4first');
}
diff --git a/packages/node_modules/node-red/package.json b/packages/node_modules/node-red/package.json
index 5fc8e21e3..9159c704e 100644
--- a/packages/node_modules/node-red/package.json
+++ b/packages/node_modules/node-red/package.json
@@ -1,6 +1,6 @@
{
"name": "node-red",
- "version": "3.1.3",
+ "version": "3.1.5",
"description": "Low-code programming for event-driven applications",
"homepage": "https://nodered.org",
"license": "Apache-2.0",
@@ -31,15 +31,15 @@
"flow"
],
"dependencies": {
- "@node-red/editor-api": "3.1.3",
- "@node-red/runtime": "3.1.3",
- "@node-red/util": "3.1.3",
- "@node-red/nodes": "3.1.3",
+ "@node-red/editor-api": "3.1.5",
+ "@node-red/runtime": "3.1.5",
+ "@node-red/util": "3.1.5",
+ "@node-red/nodes": "3.1.5",
"basic-auth": "2.0.1",
"bcryptjs": "2.4.3",
"express": "4.18.2",
"fs-extra": "11.1.1",
- "node-red-admin": "^3.1.1",
+ "node-red-admin": "^3.1.2",
"nopt": "5.0.0",
"semver": "7.5.4"
},