feat: convert ssh tunnels into a plugin

This commit is contained in:
LukeGus committed 2026-09-23 17:27:28 -05:00
1 parent c85c1fdb86
commit 1682861853
220 files changed
+36928 -11374

No files matched your search

+3 -130
View File
@@ -671,7 +671,6 @@
"home": "Inici",
"terminal": "Terminal",
"localTerminal": "Terminal local",
"tunnels": "Túnels",
"fileManager": "Gestor de fitxers",
"serverStats": "Mètriques de l'amfitrió",
"admin": "Administrador",
@@ -714,7 +713,6 @@
"macros": "Macros",
"hostManager": "Gestor d'amfitrions",
"credentials": "Credencials",
"portForwarding": "Reenviament",
"connections": "Connexions",
"serial": "Sèrie",
"keepSideMenuOpen": "Mantenir el menú obert",
@@ -765,7 +763,6 @@
"tabTerminal": "Terminal",
"tabRdp": "RDP",
"tabVnc": "VNC",
"tabTunnels": "Túnels",
"tabStats": "Mètriques de l'amfitrió",
"tabTelnet": "Telnet",
"tabSharing": "Compartir",
@@ -1071,31 +1068,8 @@
"startupSnippetLabel": "Fragment d'inici",
"keepaliveIntervalLabel": "Interval de manteniment (segons)",
"maxKeepaliveMisses": "Màxims errors de manteniment en directe",
"tunnelSettings": "Configuració del túnel",
"enableTunneling": "Activa la tunelització",
"enableTunnelingDesc": "Habilita la funcionalitat del túnel SSH per a aquest amfitrió",
"serverTunnelsSection": "Túnels de servidor",
"addTunnelBtn": "Afegeix un túnel",
"noTunnelsConfigured": "No hi ha túnels configurats.",
"tunnelLabel": "Túnel {{number}}",
"tunnelType": "Tipus de túnel",
"tunnelModeLocalDesc": "Reenvia un port local a un port del servidor remot (o a un host accessible des d'aquest).",
"tunnelModeRemoteDesc": "Reenvia un port del servidor remot a un port local de la teva màquina.",
"tunnelModeDynamicDesc": "Crea un proxy SOCKS5 en un port local per al reenviament dinàmic de ports.",
"sameHost": "Aquest host (túnel directe)",
"endpointHost": "Amfitrió de punt final",
"endpointHostPlaceholder": "Mateix host, host SSH o host/IP accessible",
"endpointPort": "Port de punt final",
"bindHost": "Vincula l'amfitrió",
"sourcePort": "Port d'origen",
"maxRetries": "Màxim d'intents",
"retryIntervalS": "Interval de reintent (s)",
"autoStartLabel": "Inici automàtic",
"autoStartDesc": "Connecta automàticament aquest túnel quan es carregui l'amfitrió",
"tunnelConnecting": "Túnel que connecta...",
"tunnelDisconnected": "Túnel desconnectat",
"failedToConnectTunnel": "No s'ha pogut connectar",
"failedToDisconnectTunnel": "No s'ha pogut desconnectar",
"enableTmuxMonitor": "Activa el monitor Tmux",
"enableTmuxMonitorDesc": "Mostra aquest host al monitor Tmux i afegeix les seves accions tmux a la barra lateral",
"enableTerminalToolbar": "Habilita la barra d'eines del terminal",
@@ -1326,12 +1300,9 @@
"refreshBtn": "Actualitza",
"addTag": "Afegeix etiquetes...",
"deleteConfirmBtn": "Suprimeix",
"tunnelRequirementsText": "El servidor SSH ha de tenir definits GatewayPorts sí, AllowTcpForwarding sí i PermitRootLogin sí a /etc/ssh/sshd_config.",
"deleteHostConfirm": "Voleu suprimir \"{{name}}\"?",
"enableAtLeastOneProtocol": "Activeu com a mínim un dels protocols anteriors per configurar l'autenticació i la connexió.",
"keyPassphrase": "Contrasenya de clau",
"connectBtn": "Connecta",
"disconnectBtn": "Desconnecta",
"basicInformation": "Informació bàsica",
"authDetailsSection": "Detalls d'autenticació",
"credTypeLabel": "Tipus",
@@ -1952,100 +1923,26 @@
"transferFailedRetryHint": "S'han conservat dades parcials a la destinació. El reintent es reprendrà quan es restableixi la connexió."
},
"tunnels": {
"noSshTunnels": "Sense túnels SSH",
"createFirstTunnelMessage": "Encara no has creat cap túnel SSH. Configureu les connexions del túnel al Gestor d'amfitrions per començar.",
"connected": "Connectat",
"disconnected": "Desconnectat",
"connecting": "Connectant...",
"error": "Error",
"canceling": "Cancel·lant...",
"connect": "Connecta",
"disconnect": "Desconnecta",
"cancel": "Cancel·la",
"port": "Port",
"localPort": "Port local",
"remotePort": "Port remot",
"destinationPort": "Port de destinació",
"currentHostPort": "Port d'amfitrió actual",
"endpointPort": "Port del punt final",
"bindIp": "IP local",
"localAddress": "Adreça local",
"remoteAddress": "Adreça remota",
"destinationAddress": "Adreça de destinació",
"remoteBindAddress": "Adreça d'enllaç remota",
"intermediateHost": "Hoste intermedi",
"endpointSshConfig": "Configuració SSH del punt final",
"endpointSshHost": "Amfitrió SSH de punt final",
"endpointSshHostPlaceholder": "Seleccioneu un amfitrió configurat",
"endpointSshHostRequired": "Seleccioneu un host SSH de punt final per a cada túnel de client.",
"attempt": "Intent {{current}} de {{max}}",
"nextRetryIn": "Proper intent en {{seconds}} segons",
"clientTunnels": "Túnels de client",
"clientTunnel": "Túnel del client",
"addClientTunnel": "Afegeix un túnel de client",
"noClientTunnels": "No hi ha túnels de client configurats en aquest escriptori.",
"tunnelName": "Nom del túnel",
"remoteHost": "Amfitrió remot",
"autoStart": "Inici automàtic",
"clientAutoStartDesc": "S'inicia quan s'obre aquest client d'escriptori i roman connectat.",
"clientManualStartDesc": "Feu servir Start i Stop des d'aquesta fila. Termix no l'obrirà automàticament.",
"clientRemoteServerNote": "El reenviament remot pot requerir AllowTcpForwarding i GatewayPorts al servidor SSH del punt final. El port remot es tanca quan aquest escriptori es desconnecta.",
"clientTunnelStarted": "Túnel del client iniciat",
"clientTunnelStopped": "Túnel del client aturat",
"tunnelTestSucceeded": "La prova del túnel ha tingut èxit",
"tunnelTestFailed": "La prova del túnel ha fallat",
"localSaved": "Túnels de client desats",
"localSaveError": "No s'han pogut desar els túnels del client local.",
"invalidBindIp": "La IP local ha de ser una adreça IPv4 vàlida.",
"invalidLocalTargetIp": "La IP de destinació local ha de ser una adreça IPv4 vàlida.",
"invalidRemoteAddress": "Cal una adreça remota.",
"invalidLocalPort": "El port local ha d'estar entre 1 i 65535.",
"invalidRemotePort": "El port remot ha d'estar entre 1 i 65535.",
"invalidLocalTargetPort": "El port de destinació local ha d'estar entre 1 i 65535.",
"invalidEndpointPort": "El port del punt final ha d'estar entre 1 i 65535.",
"duplicateAutoStartBind": "Només un túnel de client d'inici automàtic pot utilitzar {{bind}}.",
"manualControlError": "No s'ha pogut actualitzar l'estat del túnel.",
"active": "Actiu",
"start": "Inici",
"stop": "Atura",
"test": "Prova",
"type": "Tipus de túnel",
"typeLocal": "Local (-L)",
"typeRemote": "Comandament a distància (-R)",
"typeDynamic": "Dinàmic (-D)",
"typeServerLocalDesc": "De l'amfitrió actual al punt final.",
"typeServerRemoteDesc": "Punt final torna a l'amfitrió actual.",
"typeClientLocalDesc": "Ordinador local al punt final.",
"typeClientRemoteDesc": "Punt final de tornada a l'ordinador local.",
"typeClientDynamicDesc": "SOCKS a l'ordinador local.",
"typeDynamicDesc": "Reenvia el trànsit de SOCKS5 CONNECT a través de SSH",
"forwardDescriptionServerLocal": "Amfitrió actual {{sourcePort}} → punt final {{endpointPort}}.",
"forwardDescriptionServerRemote": "Punt final {{endpointPort}} → amfitrió actual {{sourcePort}}.",
"forwardDescriptionServerDynamic": "SOCKS a l'amfitrió actual {{sourcePort}}.",
"forwardDescriptionClientLocal": "Local {{sourcePort}} → remot {{endpointPort}}.",
"forwardDescriptionClientRemote": "Remot {{sourcePort}} → local {{endpointPort}}.",
"forwardDescriptionClientDynamic": "SOCKS al port local {{sourcePort}}.",
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} via {{endpoint}}",
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} a {{endpoint}} → {{localHost}}:{{localPort}}",
"summaryClientDynamic": "{{localHost}}:{{localPort}} → MITJONS via {{endpoint}}",
"autoNameClientLocal": "Local {{localPort}} → {{endpoint}} {{remotePort}}",
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → local {{localPort}}",
"autoNameClientDynamic": "MITJONS {{localPort}} via {{endpoint}}",
"route": "Ruta:",
"lastStarted": "Últim inici",
"lastTested": "Última prova",
"lastError": "Últim error",
"maxRetries": "Màxim d'intents",
"maxRetriesDescription": "Nombre màxim d'intents de reintent.",
"retryInterval": "Interval de reintent (segons)",
"retryIntervalDescription": "Temps d'espera entre intents de reintent.",
"local": "Local",
"remote": "Remot",
"destination": "Destinació",
"host": "Amfitrió",
"mode": "Mode",
"noHostSelected": "No s'ha seleccionat cap amfitrió",
"working": "Treballant..."
"remote": "Remot"
},
"cardGrid": {
"dragToMove": "Arrossega per moure",
@@ -2175,37 +2072,13 @@
},
"profile": {
"c2sTunnelConfigDesc": "Túnels d'escriptori locals dirigits a hosts SSH configurats.",
"c2sTunnelPresets": "Preajustos del túnel del client",
"c2sTunnelPresetsDesc": "Desa la llista de túnels locals d'aquest client d'escriptori com a predefinició de servidor amb nom o torna a carregar una predefinició en aquest client.",
"c2sTunnelPresetsUnavailable": "Els preajustos del túnel del client només estan disponibles al client d'escriptori.",
"c2sPresetName": "Nom predefinit",
"c2sPresetNamePlaceholder": "Nom predefinit del client",
"c2sPresetToLoad": "Predefinició per carregar",
"c2sNoPresetSelected": "No s'ha seleccionat cap predefinició",
"c2sNoPresets": "No s'han desat presets",
"c2sLoadPreset": "Carrega",
"c2sCurrentLocalConfig": "{{count}} túnel(s) de client local configurat(s) en aquest escriptori.",
"c2sPresetSyncNote": "Els preajustaments són instantànies explícites; carregar-ne una substitueix la llista de túnels de clients locals d'aquest client d'escriptori.",
"c2sPresetSaved": "S'ha desat la configuració predefinida del túnel del client",
"c2sPresetLoaded": "Predefinició del túnel del client carregada localment",
"c2sPresetRenamed": "S'ha canviat el nom de la predefinició del túnel del client",
"c2sPresetDeleted": "S'ha suprimit la configuració predefinida del túnel del client",
"c2sPresetLoadError": "No s'han pogut carregar els preajustos del túnel del client"
"c2sTunnelPresetsDesc": "Desa la llista de túnels locals d'aquest client d'escriptori com a predefinició de servidor amb nom o torna a carregar una predefinició en aquest client."
},
"placeholders": {
"maxRetries": "3",
"retryInterval": "10",
"language": "Llengua",
"keyPassword": "contrasenya clau",
"pastePrivateKey": "Enganxa la teva clau privada aquí...",
"localListenerHost": "127.0.0.1 (escolta localment)",
"localTargetHost": "127.0.0.1 (objectiu en aquest ordinador)",
"remoteTargetHost": "127.0.0.1 (objectiu des del punt final)",
"remoteBindHost": "127.0.0.1 (escolta al punt final)",
"socksListenerHost": "127.0.0.1 (escoltador de SOCKS)",
"enterPassword": "Introdueix la teva contrasenya",
"defaultPort": "22",
"defaultEndpointPort": "224"
"enterPassword": "Introdueix la teva contrasenya"
},
"dashboard": {
"title": "Tauler de control",