feat: move snippets, keybinding actions and macros out of core into plugins

This commit is contained in:
LukeGus committed 2026-09-29 11:39:14 -05:00
1 parent d9bba10612
commit e0c30a4e6f
262 files changed
+9091 -10744

No files matched your search

+1 -229
View File
@@ -409,7 +409,6 @@
"sidebarSettings": "Configuració de la barra lateral...",
"hosts": "Amfitrions",
"snippets": "Fragments",
"macros": "Macros",
"hostManager": "Gestor d'amfitrions",
"credentials": "Credencials",
"connections": "Connexions",
@@ -869,7 +868,6 @@
"groupTags": "Etiquetes i pin",
"groupTunnels": "Túnels",
"groupJumpHosts": "Amfitrions de salt",
"groupQuickActions": "Accions ràpides",
"groupFeatureFlags": "Banderes de funcions",
"groupAdvanced": "Configuració avançada",
"preview": "Vista prèvia",
@@ -1068,9 +1066,6 @@
"addCredentialDesc": "Emmagatzemar claus o contrasenyes SSH",
"tmuxMonitor": "Monitor Tmux",
"tmuxMonitorDesc": "Supervisa les sessions tmux a tots els teus amfitrions",
"snippets": "Fragments",
"runSnippetDesc": "Executar a la pestanya activa del terminal",
"noSnippetsFound": "No s'han trobat fragments que coincideixin amb \"{{search}}\"",
"recentActivity": "Activitat recent",
"serversAndHosts": "Servidors i amfitrions",
"noHostsFound": "No s'han trobat hosts que coincideixin amb \"{{search}}\"",
@@ -1864,119 +1859,6 @@
"hotkeysPrevTab": "Pestanya anterior",
"hotkeysJumpTab": "Salta a la pestanya"
},
"snippets": {
"title": "Fragments",
"createSnippetTitle": "Crea un fragment",
"createSnippetDescription": "Crea un nou fragment d'ordre per a una execució ràpida",
"nameLabel": "Nom",
"namePlaceholder": "p. ex., reiniciar Nginx",
"descriptionLabel": "Descripció",
"descriptionPlaceholder": "Descripció opcional",
"optional": "Opcional",
"folderLabel": "Carpeta",
"noFolder": "Sense carpeta (Sense categoria)",
"commandLabel": "Comandament",
"commandPlaceholder": "p. ex., sudo systemctl reinicia nginx",
"typeLabel": "Tipus",
"typeCommand": "Comandament",
"typeNote": "Nota",
"noteLabel": "Nota",
"notePlaceholder": "p. ex., un text de recordatori o indicació reutilitzable",
"cancel": "Cancel·la",
"createSnippetButton": "Crea un fragment",
"createFolderTitle": "Crea una carpeta",
"createFolderDescription": "Organitza els teus fragments en carpetes",
"folderNameLabel": "Nom de la carpeta",
"folderNamePlaceholder": "p. ex., ordres del sistema, scripts de Docker",
"folderColorLabel": "Color de la carpeta",
"folderIconLabel": "Icona de carpeta",
"previewLabel": "Vista prèvia",
"folderNameFallback": "Nom de la carpeta",
"createFolderButton": "Crea una carpeta",
"targetTerminals": "Terminals de destinació",
"selectAll": "Tot",
"selectNone": "Cap",
"noTerminalTabsOpen": "No hi ha pestanyes de terminal obertes",
"searchPlaceholder": "Fragments de cerca...",
"newSnippet": "Nou fragment",
"newFolder": "Nova carpeta",
"run": "Corre",
"noSnippetsInFolder": "No hi ha fragments en aquesta carpeta",
"uncategorized": "Sense categoria",
"editSnippetTitle": "Edita el fragment",
"editSnippetDescription": "Actualitza aquest fragment d'ordres",
"saveSnippetButton": "Desa els canvis",
"createSuccess": "Fragment creat correctament",
"createFailed": "No s'ha pogut crear el fragment",
"updateSuccess": "Fragment actualitzat correctament",
"updateFailed": "No s'ha pogut actualitzar el fragment",
"deleteFailed": "No s'ha pogut suprimir el fragment",
"folderCreateSuccess": "Carpeta creada correctament",
"folderCreateFailed": "No s'ha pogut crear la carpeta",
"editFolderTitle": "Edita la carpeta",
"editFolderDescription": "Canvia el nom o l'aspecte d'aquesta carpeta",
"saveFolderButton": "Desa els canvis",
"editFolder": "Edita la carpeta",
"deleteFolder": "Suprimeix la carpeta",
"folderDeleteSuccess": "S'ha suprimit la carpeta \"{{name}}\"",
"folderDeleteFailed": "No s'ha pogut suprimir la carpeta",
"folderEditSuccess": "La carpeta s'ha actualitzat correctament",
"folderEditFailed": "No s'ha pogut actualitzar la carpeta",
"confirmRunMessage": "Executar \"{{name}}\"?",
"confirmRunButton": "Corre",
"runSuccess": "Ha executat \"{{name}}\" en terminals {{count}}",
"pasteSuccess": "S'ha enganxat \"{{name}}\" al(s) terminal(s) {{count}}",
"pasteToTerminal": "Enganxa",
"copySuccess": "S'ha copiat \"{{name}}\" al porta-retalls",
"shareTitle": "Compartir fragment",
"shareUser": "Usuari",
"shareRole": "Rol",
"selectUser": "Selecciona un usuari...",
"selectRole": "Selecciona un rol...",
"shareSuccess": "Fragment compartit correctament",
"shareFailed": "No s'ha pogut compartir el fragment",
"revokeSuccess": "Accés revocat",
"revokeFailed": "No s'ha pogut revocar l'accés",
"currentAccess": "Accés actual",
"shareLoadError": "No s'han pogut carregar les dades compartides",
"loading": "S'està carregant...",
"close": "Tanca",
"reorderFailed": "No s'ha pogut desar l'ordre del fragment",
"importExport": "Importació / Exportació",
"exportBtn": "Exporta JSON",
"importBtn": "Importa JSON",
"exportSuccess": "Fragments exportats correctament",
"exportFailed": "No s'han pogut exportar els fragments",
"importTitle": "Importa fragments",
"importDescription": "Importa fragments i carpetes des d'un fitxer JSON exportat per Termix",
"importDropOrClick": "Deixa anar un fitxer JSON aquí o fes clic per navegar",
"importSelectedFile": "Seleccionat: {{name}}",
"importOverwrite": "Sobreescriu els fragments existents amb el mateix nom i carpeta",
"importStartBtn": "Importa",
"importSuccess": "Importació completada: {{snippets}} fragment(s) afegit(s), {{updated}} actualitzat, {{skipped}} omès, {{folders}} carpeta(es) afegida(es)",
"importFailed": "No s'han pogut importar els fragments",
"importInvalidFile": "Fitxer no vàlid: s'esperava un objecte JSON amb fragments o matrius de carpetes.",
"targetHostsLabel": "Amfitrions de destinació",
"targetHostsHint": "Assigneu hosts per executar aquest fragment directament sense un terminal obert.",
"noHostsAvailable": "No hi ha cap amfitrió configurat",
"clearTargetHosts": "Esborra-ho tot",
"hasTargetHosts": "Té amfitrions de destinació",
"runOnTargets": "Executar en objectius",
"directRunSuccess": "Ha executat \"{{name}}\" en {{count}} host(s)",
"directRunPartialFail": "\"{{name}}\" ha fallat en un o més amfitrions",
"executionResultTitle": "Resultats de l'execució: {{name}}",
"executionResultDescription": "Sortida de l'execució del fragment a cada amfitrió de destinació.",
"executionSuccess": "Èxit",
"executionFailed": "Fallat",
"expandAll": "Expandir totes les carpetes",
"collapseAll": "Replega totes les carpetes",
"settings": "Configuració del fragment",
"variablesHint": "Variables: $HOST, $USER, $PORT, $NAME, ${INPUT_1:Etiqueta}",
"variablesDialogTitle": "Executa \"{{name}}\"",
"variablesDialogDescription": "Empleneu els valors que necessita aquest fragment abans d'executar-lo.",
"variablesPreviewLabel": "Vista prèvia",
"variablesConfirmButton": "Corre"
},
"keybindings": {
"title": "Dreceres de teclat",
"description": "Personalitza les dreceres de copiar, enganxar i controlar del terminal, o vincula tecles per enviar text o executar un fragment.",
@@ -2000,26 +1882,11 @@
"pressKeysPlaceholder": "Feu clic i premeu les tecles",
"recording": "Premeu les tecles...",
"comboRequiredError": "Premeu primer una combinació de tecles",
"textRequiredError": "Introduïu el text per enviar",
"controlCodeRequiredError": "Introduïu una sola lletra per al codi de control",
"snippetRequiredError": "Selecciona un fragment",
"conflictWarning": "Aquesta combinació ja està vinculada a {{combo}}. Si deseu, totes dues es dispararan.",
"actionLabel": "Acció",
"actionCopy": "Copia la selecció",
"actionPaste": "Enganxa",
"actionSendControlCode": "Envia el senyal Ctrl+lletra",
"actionSendText": "Enviar text",
"actionRunSnippet": "Executa el fragment existent",
"actionNextTab": "Canvia a la pestanya següent",
"actionPreviousTab": "Canvia a la pestanya anterior",
"actionOpenCommandPalette": "Obre la cerca ràpida",
"controlCodeLabel": "Carta",
"textLabel": "Text per enviar",
"appendEnterLabel": "Premeu Intro després d'enviar",
"snippetLabel": "Fragment",
"selectSnippetPlaceholder": "Selecciona un fragment",
"orphanedSnippetWarning": "fragment no trobat",
"clipboardPermissionNote": "Pot demanar permisos al porta-retalls en el primer ús en alguns navegadors."
"actionOpenCommandPalette": "Obre la cerca ràpida"
},
"userProfile": {
"donateTitle": "Mantingueu viva la Termix",
@@ -2240,100 +2107,5 @@
"ntfyTopicRequired": "El tema és obligatori",
"ntfyToken": "Token d'accés (opcional)",
"channelSaveFailed": "No s'ha pogut desar el canal"
},
"macros": {
"title": "Macros",
"description": "Executa una sèrie d'ordres desades en un terminal i reacciona al que el servidor envia de tornada.",
"target": "Objectiu",
"noTerminal": "Cap terminal obert",
"empty": "Encara no hi ha macros",
"emptyHint": "Crea una macro per automatitzar un flux de terminal, com ara iniciar la sessió, reiniciar un servei o respondre a les indicacions.",
"create": "Nova macro",
"back": "Torna a les macros",
"name": "Nom",
"namePlaceholder": "Reinicia el servidor web",
"nameRequired": "Doneu un nom a la macro abans de desar-la",
"descriptionLabel": "Descripció",
"descriptionPlaceholder": "Què fa aquesta macro (opcional)",
"unsaved": "Canvis no desats",
"save": "Desa",
"saved": "Macro desada",
"saveFailed": "No s'ha pogut desar la macro",
"delete": "Suprimeix",
"deleteTitle": "Voleu suprimir aquesta macro?",
"deleteBody": "«{{name}}» s'eliminarà permanentment. Això no es pot desfer.",
"deleted": "Macro suprimida",
"cancel": "Cancel·la",
"run": "Corre",
"stop": "Atura",
"running": "Corrent...",
"completed": "Macro acabada",
"failed": "La macro ha fallat",
"loadFailed": "No s'han pogut carregar les macros",
"needTerminal": "Obriu i connecteu primer un terminal",
"noSteps": "Aquesta macro encara no té cap pas. Afegeix-ne un a continuació.",
"addStep": "Afegeix un pas",
"stepNumber": "Pas {{number}}",
"removeStep": "Elimina el pas",
"confirmRunTitle": "Voleu executar aquesta macro?",
"confirmRunBody": "\"{{name}}\" enviarà ordres a {{host}}.",
"confirmRunAction": "Executa macro",
"stepTypes": {
"send": {
"label": "Envia l'ordre",
"help": "Escriu text al terminal, igual que si l'haguessis escrit."
},
"wait": {
"label": "Espera la sortida",
"help": "Es posa en pausa fins que el servidor imprimeix el text que anomeneu, com si fos una sol·licitud de contrasenya."
},
"delay": {
"label": "Pausa",
"help": "Espera un temps fix abans del següent pas."
},
"if": {
"label": "Si la sortida conté",
"help": "Comprova tot el que el servidor ha imprès fins ara i després executa una de les dues branques."
},
"repeat": {
"label": "Repetir",
"help": "Executa els passos que hi ha dins un nombre determinat de vegades."
}
},
"send": {
"text": "Ordre o text",
"textPlaceholder": "reinici de systemctl a nginx",
"pressEnter": "Premeu Intro després d'enviar",
"pressEnterHelp": "Desactiva això per escriure text sense enviar-lo."
},
"wait": {
"pattern": "Espereu fins que la sortida contingui",
"patternPlaceholder": "contrasenya:",
"timeout": "Renunciar després",
"onTimeout": "Si mai apareix",
"stop": "Atura la macro",
"continue": "Continua igualment"
},
"delay": {
"duration": "Espera"
},
"ifStep": {
"pattern": "Si la sortida conté",
"patternPlaceholder": "Actiu: actiu (en funcionament)",
"then": "Aleshores fes això",
"else": "Si no, fes això",
"emptyBranch": "Sense esglaons"
},
"repeat": {
"count": "Nombre de vegades",
"times": "vegades"
},
"match": {
"useRegex": "Coincideix amb una expressió regular",
"useRegexHelp": "Deixa això desactivat perquè el text coincideixi exactament com està escrit.",
"invalidRegex": "No és una expressió regular vàlida, es trobarà com a text sense format."
},
"seconds": "segons",
"secondsShort": "{{count}}s"
}
}