feat: type the plugin host record, move plugin strings out of core and add lint checks

This commit is contained in:
LukeGus committed 2026-09-29 13:08:39 -05:00
1 parent bba06f7ff6
commit b8bbcd2196
626 files changed
+23884 -4590

No files matched your search

+2 -114
View File
@@ -324,10 +324,6 @@
"appearanceIntro": "Trieu un tema, un color d'accent i el vostre idioma. Tots tres es poden canviar més tard a Configuració.",
"featuresTitle": "Què més fa Termix?",
"featuresIntro": "Cada servidor que deseu es pot obrir en més d'un terminal. Això és el que hi ha darrere de les icones de l'esquerra.",
"feature_files": "Gestor de fitxers",
"feature_files_desc": "Navegueu, pengeu, descarregueu i editeu fitxers a través de SFTP sense sortir de l'aplicació.",
"feature_tunnels": "Túnels",
"feature_tunnels_desc": "Reenvia ports a través d'un servidor per arribar a serveis que no estan exposats.",
"feature_snippets": "Fragments",
"feature_snippets_desc": "Desa les ordres que executes sovint i envia-les a un terminal amb un sol clic.",
"featuresRailHint": "No necessiteu cap d'aquestes? Amagueu qualsevol icona de la barra lateral a Configuració, a Navegació.",
@@ -449,7 +445,6 @@
"passwordSaved": "Contrasenya desada, escriu per canviar-la",
"key": "Clau",
"credential": "Credencial",
"none": "Cap",
"sshPrivateKey": "Clau privada SSH",
"keyType": "Tipus de clau",
"uploadFile": "Puja el fitxer",
@@ -611,17 +606,12 @@
"keepaliveIntervalLabel": "Interval de manteniment (segons)",
"maxKeepaliveMisses": "Màxims errors de manteniment en directe",
"sameHost": "Aquest host (túnel directe)",
"bindHost": "Vincula l'amfitrió",
"connectionToolbar": "Barra d'eines de connexió",
"showConnectionToolbar": "Mostra la barra d'eines de connexió",
"showConnectionToolbarDesc": "Mostra la barra d'eines a les sessions SSH, RDP, VNC i Telnet d'aquest amfitrió. També la pots ocultar temporalment des de la barra d'eines.",
"proxmoxLastSyncStatus": {
"success": "Èxit"
},
"proxmoxGuestsSelected_one": "{{count}} convidat — {{selected}} seleccionat",
"proxmoxGuestsSelected_other": "{{count}} convidats — {{selected}} seleccionats",
"proxmoxImportButton_one": "Importa l'amfitrió {{count}}",
"proxmoxImportButton_other": "Importa els amfitrions {{count}}",
"proxmoxResultSkippedNoIp": "{{count}} omès (no s'ha trobat cap IP)",
"proxmoxStatsUrlCopied": "URL de les estadístiques de Proxmox copiada al porta-retalls",
"copyProxmoxStatsUrlAction": "Copia l'URL de les estadístiques de Proxmox",
@@ -896,13 +886,11 @@
"updatedCount": "Amfitrions {{count}} actualitzats",
"friendlyNameLabel": "Nom amigable",
"descriptionLabel": "Descripció",
"loadingHost": "S'està carregant l'amfitrió...",
"loadingHosts": "S'estan carregant els amfitrions...",
"loadingCredentials": "S'estan carregant les credencials...",
"noHostsYet": "Encara no hi ha amfitrions",
"noHostsYetHint": "Afegeix un servidor per obrir terminals, navegar per fitxers i veure mètriques.",
"noHostsMatchSearch": "No hi ha amfitrions que coincideixin amb la teva cerca",
"hostNotFound": "No s'ha trobat l'amfitrió",
"searchHosts": "Cerca amfitrions...",
"sortHosts": "Ordena els hosts",
"sortDefault": "Ordre per defecte",
@@ -925,7 +913,6 @@
"filterAuthKey": "Clau SSH",
"filterAuthCredential": "Credencial",
"filterAuthNone": "Cap",
"filterAuthOpkssh": "OPKSSH",
"filterAuthStepca": "Pas CA",
"filterProtocolGroup": "Protocol",
"filterProtocolSsh": "SSH",
@@ -1114,13 +1101,7 @@
"connect": "Connecta't a l'amfitrió",
"clear": "Clar",
"paste": "Enganxa",
"connected": "Connectat",
"clipboardWriteFailed": "No s'ha pogut copiar al porta-retalls. Assegureu-vos que la pàgina es serveix per HTTPS o localhost.",
"clipboardReadFailed": "No s'ha pogut llegir del porta-retalls. Assegureu-vos que els permisos del porta-retalls estiguin concedits.",
"tmuxDetach": "Desconnecta de la sessió de tmux",
"terminalTitle": "Terminal - {{host}}",
"terminalWithPath": "Terminal - {{host}}:{{path}}",
"runTitle": "Executant {{command}} - {{host}}",
"totpRequired": "Cal autenticació de dos factors",
"totpCodeLabel": "Codi de verificació",
"totpVerify": "Verifica",
@@ -1148,109 +1129,20 @@
}
},
"transfer": {
"copyToHost": "Copia a l'amfitrió…",
"moveToHost": "Moure a l'amfitrió…",
"copyItemsToHost": "Copia els elements {{count}} a l'amfitrió…",
"moveItemsToHost": "Mou els elements {{count}} a l'amfitrió…",
"noHostsConnected": "No hi ha altres amfitrions de gestors de fitxers disponibles.",
"noHostsConnectedHint": "Afegiu un altre amfitrió SSH amb el Gestor de fitxers habilitat al Gestor d'amfitrions.",
"selectDestinationHost": "Selecciona l'amfitrió de destinació",
"destinationPath": "Camí de destinació",
"recentDestinations": "Destinacions recents",
"collapseRecentDestinations": "Replega les destinacions recents",
"expandRecentDestinations": "Expandeix les destinacions recents",
"browseFolders": "Navega per les carpetes de destinació",
"browseDestination": "Navega o introdueix la ruta",
"confirmCopy": "Còpia",
"confirmMove": "Moure",
"transferring": "Transferint…",
"progressVerifying": "Verificació de la integritat del fitxer…",
"progressBenchmarking": "Selecció de la ruta de transferència més ràpida…",
"compressing": "Comprimint…",
"extracting": "Extraient…",
"transferringItems": "Transferint {{current}} de {{total}} elements…",
"transferSuccess": "Transferència completada",
"transferError": "La transferència ha fallat",
"transferPartial": "Transferència completada amb errors {{count}}",
"transferPartialHint": "No s'ha pogut transferir: {{paths}}",
"itemsSummary": "{{count}} elements",
"destMustBeDirectory": "La destinació ha de ser un directori per a transferències de diversos elements",
"selectThisFolder": "Selecciona aquesta carpeta",
"browsePathWillBeCreated": "Aquesta carpeta encara no existeix. Es crearà quan comenci la transferència.",
"browsePathError": "No s'ha pogut obrir aquesta ruta a l'amfitrió de destinació.",
"goUp": "Puja",
"copyFolderToHost": "Copia la carpeta a l'amfitrió…",
"moveFolderToHost": "Mou la carpeta a l'amfitrió…",
"hostReady": "Llest",
"hostConnecting": "Connectant…",
"hostDisconnected": "No connectat",
"hostAuthRequired": "Cal autenticació: obriu primer el Gestor de fitxers en aquest amfitrió.",
"hostConnectionFailed": "La connexió ha fallat",
"metricsTitle": "Horaris de transferència",
"metricsPrepare": "Prepara la destinació: {{duration}}",
"metricsCompress": "Comprimir a la font: {{duration}}",
"metricsHopSourceRead": "Font → servidor: {{throughput}}",
"metricsHopDestSftpWrite": "Servidor → destí (SFTP): {{throughput}}",
"metricsHopDestLocalWrite": "Servidor → destí (local): {{throughput}}",
"metricsTransfer": "Extrem a extrem: {{throughput}} ({{duration}})",
"metricsExtract": "Extracte a la destinació: {{duration}}",
"metricsVerify": "SHA-256 verificat: {{duration}}",
"metricsRouteBenchmark": "Sonda de ruta — directa: {{direct}}, relé: {{relay}}",
"metricsSourceDelete": "Elimina de la font: {{duration}}",
"metricsTotal": "Total: {{duration}}",
"progressCompressing": "Compressió a l'amfitrió d'origen…",
"progressExtracting": "Extraient a la destinació…",
"progressTransferring": "Transferència de dades…",
"progressReconnecting": "Reconnectant…",
"parallelSegmentsLabel": "Carrils de transferència paral·lels",
"parallelSegmentsOption": "carrils {{count}}",
"parallelSegmentsHint": "Els fitxers grans es divideixen en blocs de 256 MB. Els carrils múltiples utilitzen connexions separades (com ara iniciar diverses transferències) per a un rendiment total més alt.",
"progressTotalSpeed": "{{speed}} total ({{lanes}} carrils)",
"progressTransferringItems": "Transferència de fitxers ({{current}} de {{total}})…",
"progressBytes": "{{transferred}} / {{total}}",
"progressItems": "{{current}} / {{total}} fitxers",
"sourceNotDeletedPartial": "Fitxers font conservats (transferència parcial)",
"jumpHostLimitation": "Tots dos hosts han de ser accessibles des del servidor Termix. No s'admet l'encaminament directe d'host a host.",
"cancel": "Cancel·la",
"methodLabel": "Mètode de transferència",
"methodAuto": "Automàtic",
"methodTar": "Arxiu Tar",
"methodItemSftp": "SFTP per fitxer",
"methodAutoHint": "Tria SFTP tar o per fitxer en funció del nombre de fitxers, la mida i la compressibilitat. Els fitxers individuals sempre utilitzen SFTP en temps real.",
"methodTarHint": "Comprimir a l'origen, transferir un arxiu, extreure a la destinació. Requereix tar en ambdós hosts Unix.",
"methodItemSftpHint": "Transfereix cada fitxer individualment per SFTP. Funciona en tots els hosts, inclòs Windows.",
"methodPreviewLoading": "Càlcul del mètode de transferència…",
"methodPreviewError": "No s'ha pogut previsualitzar el mètode de transferència. El servidor encara triarà un mètode quan l'inicieu.",
"methodPreviewWillUseTar": "Utilitzarà: Arxiu Tar",
"methodPreviewWillUseItemSftp": "Utilitzarà: SFTP per fitxer",
"methodPreviewScanSummary": "{{fileCount}} fitxers, {{totalSize}} total (escanejats a l'amfitrió d'origen).",
"methodItemSftpLimitation": "Cada fitxer utilitza el mateix flux SFTP com una còpia d'un sol fitxer, un darrere l'altre. El progrés es combina en tots els fitxers, de manera que la barra es mou lentament durant els fitxers grans.",
"methodReason": {
"user_item_sftp": "Heu triat SFTP per fitxer.",
"user_tar": "Has triat l'arxiu tar.",
"tar_unavailable": "Tar no està disponible en un o tots dos hosts; s'utilitzarà SFTP per fitxer.",
"windows_host": "Hi ha un host de Windows implicat; no s'utilitza tar.",
"auto_multi_large": "Automàtic: diversos fitxers, inclòs un fitxer gran ({{largestSize}}) amb dades compressibles: paquets de fitxers tar en una sola transferència.",
"auto_single_large_in_archive": "Automàtic: un fitxer gran ({{largestSize}}) en aquest conjunt — SFTP per fitxer.",
"auto_many_incompressible": "Automàtic: dades majoritàriament incompressibles — SFTP per fitxer.",
"auto_many_files": "Automàtic: molts fitxers ({{fileCount}}) — tar redueix la sobrecàrrega per fitxer.",
"auto_default": "Automàtic: SFTP per fitxer per a aquest conjunt."
},
"progressCancel": "Cancel·la",
"progressCancelling": "Cancel·lant…",
"progressStalled": "Estancat",
"resumedHint": "S'ha tornat a connectar a una transferència activa iniciada en una altra finestra.",
"transferCancelled": "Transferència cancel·lada",
"transferCancelledCopyHint": "És possible que hi hagi fitxers parcials a la destinació.",
"transferCancelledMoveHint": "És possible que hi hagi fitxers parcials a la destinació. No s'han eliminat els fitxers d'origen.",
"cleanupDestFiles": "Neteja la destinació",
"cleanupDestFilesSuccess": "S'han eliminat fitxers parcials de la destinació",
"cleanupDestFilesPartial": "No s'han pogut eliminar alguns fitxers parcials",
"cleanupDestFilesNothing": "Res a netejar a la destinació",
"cleanupDestFilesError": "La neteja ha fallat",
"retryTransfer": "Torna-ho a intentar",
"retryTransferError": "No s'ha pogut reintentar.",
"transferFailedRetryHint": "S'han conservat dades parcials a la destinació. El reintent es reprendrà quan es restableixi la connexió."
"sourceNotDeletedPartial": "Fitxers font conservats (transferència parcial)"
},
"tunnels": {
"connect": "Connecta",
@@ -1261,8 +1153,6 @@
"clientTunnel": "Túnel del client",
"addClientTunnel": "Afegeix un túnel de client",
"active": "Actiu",
"start": "Inici",
"stop": "Atura",
"typeServerLocalDesc": "De l'amfitrió actual al punt final.",
"typeServerRemoteDesc": "Punt final torna a l'amfitrió actual.",
"typeClientLocalDesc": "Ordinador local al punt final.",
@@ -1374,8 +1264,7 @@
"resetCodeRateLimitedWithTime": "Taxa limitada: massa intents de verificació. Espereu {{time}} segons abans de tornar-ho a intentar.",
"authTokenSaveFailed": "No s'ha pogut desar el testimoni d'autenticació",
"authTokenMissing": "El servidor no ha retornat un testimoni d'autenticació nou. Si us plau, torneu a iniciar la sessió.",
"failedToLoadServer": "No s'ha pogut carregar el servidor",
"remoteServerRequired": "Cal un servidor remot. Connecteu un servidor remot a Configuració per utilitzar aquest tipus de connexió."
"failedToLoadServer": "No s'ha pogut carregar el servidor"
},
"messages": {
"registrationDisabled": "El registre de comptes nous està desactivat actualment per un administrador. Si us plau, inicia la sessió o contacta amb un administrador.",
@@ -1831,7 +1720,6 @@
"protocolLabel": "Protocol",
"domainLabel": "Domini",
"domainPlaceholder": "opcional",
"connectToTerminal": "Connecta't al terminal",
"connectToFiles": "Connecta't a fitxers"
},
"splitScreen": {