From 668ebcace4a130d352a17f654d78906f2c86b215 Mon Sep 17 00:00:00 2001 From: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> Date: Tue, 13 Jan 2026 00:52:07 -0600 Subject: [PATCH] New translations en.json (Catalan) --- src/locales/translated/ca.json | 4452 ++++++++++++++++---------------- 1 file changed, 2226 insertions(+), 2226 deletions(-) diff --git a/src/locales/translated/ca.json b/src/locales/translated/ca.json index e319cfd7..7542a6fd 100644 --- a/src/locales/translated/ca.json +++ b/src/locales/translated/ca.json @@ -1,882 +1,882 @@ { "credentials": { - "credentialsViewer": "Credentials Viewer", - "manageYourSSHCredentials": "Manage your SSH credentials securely", - "addCredential": "Add Credential", - "createCredential": "Create Credential", - "editCredential": "Edit Credential", - "viewCredential": "View Credential", - "duplicateCredential": "Duplicate Credential", - "deleteCredential": "Delete Credential", - "updateCredential": "Update Credential", - "credentialName": "Credential Name", - "credentialDescription": "Description", - "username": "Username", - "searchCredentials": "Search credentials...", - "selectFolder": "Select Folder", - "selectAuthType": "Select Auth Type", - "allFolders": "All Folders", - "allAuthTypes": "All Auth Types", - "uncategorized": "Uncategorized", + "credentialsViewer": "Visualitzador de credencials", + "manageYourSSHCredentials": "Gestiona les teves credencials SSH de manera segura", + "addCredential": "Afegeix credencials", + "createCredential": "Crea credencials", + "editCredential": "Edita la credencial", + "viewCredential": "Veure credencial", + "duplicateCredential": "Credencial duplicada", + "deleteCredential": "Suprimeix la credencial", + "updateCredential": "Actualitza les credencials", + "credentialName": "Nom de la credencial", + "credentialDescription": "Descripció", + "username": "Nom d'usuari", + "searchCredentials": "Cerca credencials...", + "selectFolder": "Selecciona una carpeta", + "selectAuthType": "Selecciona el tipus d'autorització", + "allFolders": "Totes les carpetes", + "allAuthTypes": "Tots els tipus d'autorització", + "uncategorized": "Sense categoria", "totalCredentials": "Total", - "keyBased": "Key-based", - "passwordBased": "Password-based", - "folders": "Folders", - "noCredentialsMatchFilters": "No credentials match your filters", - "noCredentialsYet": "No credentials created yet", - "createFirstCredential": "Create your first credential", - "failedToFetchCredentials": "Failed to fetch credentials", - "credentialDeletedSuccessfully": "Credential deleted successfully", - "failedToDeleteCredential": "Failed to delete credential", - "confirmDeleteCredential": "Are you sure you want to delete credential \"{{name}}\"?", - "credentialCreatedSuccessfully": "Credential created successfully", - "credentialUpdatedSuccessfully": "Credential updated successfully", - "failedToSaveCredential": "Failed to save credential", - "failedToFetchCredentialDetails": "Failed to fetch credential details", - "failedToFetchHostsUsing": "Failed to fetch hosts using this credential", - "loadingCredentials": "Loading credentials...", - "retry": "Retry", - "noCredentials": "No Credentials", - "noCredentialsMessage": "You haven't added any credentials yet. Click \"Add Credential\" to get started.", - "sshCredentials": "SSH Credentials", - "credentialsCount": "{{count}} credentials", - "refresh": "Refresh", - "passwordRequired": "Password is required", - "sshKeyRequired": "SSH key is required", - "credentialAddedSuccessfully": "Credential \"{{name}}\" added successfully", + "keyBased": "Basat en claus", + "passwordBased": "Basat en contrasenya", + "folders": "Carpetes", + "noCredentialsMatchFilters": "No hi ha credencials que coincideixin amb els filtres", + "noCredentialsYet": "Encara no s'han creat credencials", + "createFirstCredential": "Crea la teva primera credencial", + "failedToFetchCredentials": "No s'han pogut obtenir les credencials", + "credentialDeletedSuccessfully": "Credencial suprimida correctament", + "failedToDeleteCredential": "No s'ha pogut suprimir la credencial", + "confirmDeleteCredential": "Esteu segur que voleu suprimir la credencial \"{{name}}\"?", + "credentialCreatedSuccessfully": "Credencial creada correctament", + "credentialUpdatedSuccessfully": "Credencial actualitzada correctament", + "failedToSaveCredential": "No s'ha pogut desar la credencial", + "failedToFetchCredentialDetails": "No s'han pogut obtenir els detalls de les credencials", + "failedToFetchHostsUsing": "No s'han pogut obtenir els hosts amb aquesta credencial", + "loadingCredentials": "S'estan carregant les credencials...", + "retry": "Torna-ho a intentar", + "noCredentials": "Sense credencials", + "noCredentialsMessage": "Encara no has afegit cap credencial. Fes clic a \"Afegeix credencial\" per començar.", + "sshCredentials": "Credencials SSH", + "credentialsCount": "credencials {{count}}", + "refresh": "Actualitza", + "passwordRequired": "Cal una contrasenya", + "sshKeyRequired": "Cal una clau SSH", + "credentialAddedSuccessfully": "La credencial \"{{name}}\" s'ha afegit correctament", "general": "General", - "description": "Description", - "folder": "Folder", - "tags": "Tags", - "addTagsSpaceToAdd": "Add tags (press space to add)", - "password": "Password", - "key": "Key", - "sshPrivateKey": "SSH Private Key", - "upload": "Upload", - "updateKey": "Update Key", - "keyPassword": "Key Password", - "keyType": "Key Type", + "description": "Descripció", + "folder": "Carpeta", + "tags": "Etiquetes", + "addTagsSpaceToAdd": "Afegeix etiquetes (prem espai per afegir)", + "password": "Contrasenya", + "key": "Clau", + "sshPrivateKey": "Clau privada SSH", + "upload": "Pujada", + "updateKey": "Actualitza la clau", + "keyPassword": "Contrasenya clau", + "keyType": "Tipus de clau", "keyTypeRSA": "RSA", "keyTypeECDSA": "ECDSA", "keyTypeEd25519": "Ed25519", - "basicInfo": "Basic Info", - "authentication": "Authentication", - "organization": "Organization", - "basicInformation": "Basic Information", - "basicInformationDescription": "Enter the basic information for this credential", - "authenticationMethod": "Authentication Method", - "authenticationMethodDescription": "Choose how you want to authenticate with SSH servers", - "organizationDescription": "Organize your credentials with folders and tags", - "enterCredentialName": "Enter credential name", - "enterCredentialDescription": "Enter description (optional)", - "enterUsername": "Enter username", - "nameIsRequired": "Credential name is required", - "usernameIsRequired": "Username is required", - "authenticationType": "Authentication Type", - "passwordAuthDescription": "Use password authentication", - "sshKeyAuthDescription": "Use SSH key authentication", - "passwordIsRequired": "Password is required", - "sshKeyIsRequired": "SSH key is required", - "sshKeyType": "SSH Key Type", - "privateKey": "Private Key", - "enterPassword": "Enter password", - "enterPrivateKey": "Enter private key", - "keyPassphrase": "Key Passphrase", - "enterKeyPassphrase": "Enter key passphrase (optional)", - "keyPassphraseOptional": "Optional: leave empty if your key has no passphrase", - "leaveEmptyToKeepCurrent": "Leave empty to keep current value", - "uploadKeyFile": "Upload Key File", - "generateKeyPairButton": "Generate Key Pair", - "generateKeyPair": "Generate Key Pair", - "generateKeyPairDescription": "Generate a new SSH key pair. If you want to protect the key with a passphrase, enter it in the Key Password field below first.", - "deploySSHKey": "Deploy SSH Key", - "deploySSHKeyDescription": "Deploy public key to target server", - "sourceCredential": "Source Credential", - "targetHost": "Target Host", - "deploymentProcess": "Deployment Process", - "deploymentProcessDescription": "This will safely add the public key to the target host's ~/.ssh/authorized_keys file without overwriting existing keys. The operation is reversible.", - "chooseHostToDeploy": "Choose a host to deploy to...", - "deploying": "Deploying...", - "name": "Name", - "noHostsAvailable": "No hosts available", - "noHostsMatchSearch": "No hosts match your search", - "sshKeyGenerationNotImplemented": "SSH key generation feature coming soon", - "connectionTestingNotImplemented": "Connection testing feature coming soon", - "testConnection": "Test Connection", - "selectOrCreateFolder": "Select or create folder", - "noFolder": "No folder", - "orCreateNewFolder": "Or create new folder", - "addTag": "Add tag", - "saving": "Saving...", - "credentialId": "Credential ID", - "overview": "Overview", - "security": "Security", - "usage": "Usage", - "securityDetails": "Security Details", - "securityDetailsDescription": "View encrypted credential information", - "credentialSecured": "Credential Secured", - "credentialSecuredDescription": "All sensitive data is encrypted with AES-256", - "passwordAuthentication": "Password Authentication", - "keyAuthentication": "Key Authentication", - "securityReminder": "Security Reminder", - "securityReminderText": "Never share your credentials. All data is encrypted at rest.", - "hostsUsingCredential": "Hosts Using This Credential", - "noHostsUsingCredential": "No hosts are currently using this credential", - "timesUsed": "Times Used", - "lastUsed": "Last Used", - "connectedHosts": "Connected Hosts", - "created": "Created", - "lastModified": "Last Modified", - "usageStatistics": "Usage Statistics", - "copiedToClipboard": "{{field}} copied to clipboard", - "failedToCopy": "Failed to copy to clipboard", - "sshKey": "SSH Key", - "createCredentialDescription": "Create a new SSH credential for secure access", - "editCredentialDescription": "Update the credential information", - "listView": "List", - "folderView": "Folders", - "unknownCredential": "Unknown", - "confirmRemoveFromFolder": "Are you sure you want to remove \"{{name}}\" from folder \"{{folder}}\"? The credential will be moved to \"Uncategorized\".", - "removedFromFolder": "Credential \"{{name}}\" removed from folder successfully", - "failedToRemoveFromFolder": "Failed to remove credential from folder", - "folderRenamed": "Folder \"{{oldName}}\" renamed to \"{{newName}}\" successfully", - "failedToRenameFolder": "Failed to rename folder", - "movedToFolder": "Credential \"{{name}}\" moved to \"{{folder}}\" successfully", - "failedToMoveToFolder": "Failed to move credential to folder", - "sshPublicKey": "SSH Public Key", - "publicKeyNote": "Public key is optional but recommended for key validation", - "publicKeyUploaded": "Public Key Uploaded", - "uploadPublicKey": "Upload Public Key", - "uploadPrivateKeyFile": "Upload Private Key File", - "uploadPublicKeyFile": "Upload Public Key File", - "privateKeyRequiredForGeneration": "Private key is required to generate public key", - "failedToGeneratePublicKey": "Failed to generate public key", - "generatePublicKey": "Generate from Private Key", - "publicKeyGeneratedSuccessfully": "Public key generated successfully", - "detectedKeyType": "Detected key type", - "detectingKeyType": "detecting...", - "optional": "Optional", - "generateKeyPairNew": "Generate New Key Pair", - "generateEd25519": "Generate Ed25519", - "generateECDSA": "Generate ECDSA", - "generateRSA": "Generate RSA", + "basicInfo": "Informació bàsica", + "authentication": "Autenticació", + "organization": "Organització", + "basicInformation": "Informació bàsica", + "basicInformationDescription": "Introduïu la informació bàsica per a aquesta credencial", + "authenticationMethod": "Mètode d'autenticació", + "authenticationMethodDescription": "Trieu com voleu autenticar-vos amb els servidors SSH", + "organizationDescription": "Organitza les teves credencials amb carpetes i etiquetes", + "enterCredentialName": "Introduïu el nom de la credencial", + "enterCredentialDescription": "Introdueix la descripció (opcional)", + "enterUsername": "Introdueix el nom d'usuari", + "nameIsRequired": "Cal indicar el nom de la credencial", + "usernameIsRequired": "El nom d'usuari és obligatori", + "authenticationType": "Tipus d'autenticació", + "passwordAuthDescription": "Utilitza l'autenticació amb contrasenya", + "sshKeyAuthDescription": "Utilitza l'autenticació amb clau SSH", + "passwordIsRequired": "Cal una contrasenya", + "sshKeyIsRequired": "Cal una clau SSH", + "sshKeyType": "Tipus de clau SSH", + "privateKey": "Clau privada", + "enterPassword": "Introdueix la contrasenya", + "enterPrivateKey": "Introduïu la clau privada", + "keyPassphrase": "Contrasenya de clau", + "enterKeyPassphrase": "Introduïu la contrasenya de la clau (opcional)", + "keyPassphraseOptional": "Opcional: deixeu-ho en blanc si la clau no té cap contrasenya", + "leaveEmptyToKeepCurrent": "Deixeu-ho en blanc per mantenir el valor actual", + "uploadKeyFile": "Puja el fitxer de clau", + "generateKeyPairButton": "Genera un parell de claus", + "generateKeyPair": "Genera un parell de claus", + "generateKeyPairDescription": "Genera un nou parell de claus SSH. Si vols protegir la clau amb una contrasenya, introdueix-la primer al camp Contrasenya de la clau que hi ha a continuació.", + "deploySSHKey": "Implementa la clau SSH", + "deploySSHKeyDescription": "Implementa la clau pública al servidor de destinació", + "sourceCredential": "Credencial d'origen", + "targetHost": "Amfitrió de destinació", + "deploymentProcess": "Procés de desplegament", + "deploymentProcessDescription": "Això afegirà de manera segura la clau pública al fitxer ~/.ssh/authorized_keys de l'amfitrió de destinació sense sobreescriure les claus existents. L'operació és reversible.", + "chooseHostToDeploy": "Trieu un amfitrió on implementar...", + "deploying": "S'està desplegant...", + "name": "Nom", + "noHostsAvailable": "No hi ha amfitrions disponibles", + "noHostsMatchSearch": "No hi ha amfitrions que coincideixin amb la teva cerca", + "sshKeyGenerationNotImplemented": "La funció de generació de claus SSH estarà disponible aviat", + "connectionTestingNotImplemented": "Funció de prova de connexió disponible aviat", + "testConnection": "Prova de connexió", + "selectOrCreateFolder": "Selecciona o crea una carpeta", + "noFolder": "Sense carpeta", + "orCreateNewFolder": "O crear una carpeta nova", + "addTag": "Afegeix una etiqueta", + "saving": "Desant...", + "credentialId": "ID de credencial", + "overview": "Visió general", + "security": "Seguretat", + "usage": "Ús", + "securityDetails": "Detalls de seguretat", + "securityDetailsDescription": "Veure la informació de credencials xifrades", + "credentialSecured": "Credencial protegida", + "credentialSecuredDescription": "Totes les dades sensibles estan xifrades amb AES-256", + "passwordAuthentication": "Autenticació de contrasenya", + "keyAuthentication": "Autenticació de clau", + "securityReminder": "Recordatori de seguretat", + "securityReminderText": "No comparteixis mai les teves credencials. Totes les dades estan xifrades en repòs.", + "hostsUsingCredential": "Amfitrions que utilitzen aquesta credencial", + "noHostsUsingCredential": "Actualment, cap amfitrió no utilitza aquesta credencial", + "timesUsed": "Vegades utilitzades", + "lastUsed": "Últim ús", + "connectedHosts": "Amfitrions connectats", + "created": "Creat", + "lastModified": "Última modificació", + "usageStatistics": "Estadístiques d'ús", + "copiedToClipboard": "{{field}} s'ha copiat al porta-retalls", + "failedToCopy": "No s'ha pogut copiar al porta-retalls", + "sshKey": "Clau SSH", + "createCredentialDescription": "Crea una nova credencial SSH per a un accés segur", + "editCredentialDescription": "Actualitza la informació de les credencials", + "listView": "Llista", + "folderView": "Carpetes", + "unknownCredential": "Desconegut", + "confirmRemoveFromFolder": "Esteu segur que voleu eliminar \"{{name}}\" de la carpeta \"{{folder}}\"? La credencial es mourà a \"Sense categoria\".", + "removedFromFolder": "La credencial \"{{name}}\" s'ha eliminat correctament de la carpeta", + "failedToRemoveFromFolder": "No s'ha pogut eliminar la credencial de la carpeta", + "folderRenamed": "La carpeta \"{{oldName}}\" s'ha canviat correctament a \"{{newName}}\"", + "failedToRenameFolder": "No s'ha pogut canviar el nom de la carpeta", + "movedToFolder": "La credencial \"{{name}}\" s'ha mogut correctament a \"{{folder}}\"", + "failedToMoveToFolder": "No s'ha pogut moure la credencial a la carpeta", + "sshPublicKey": "Clau pública SSH", + "publicKeyNote": "La clau pública és opcional però recomanada per a la validació de claus", + "publicKeyUploaded": "Clau pública carregada", + "uploadPublicKey": "Puja la clau pública", + "uploadPrivateKeyFile": "Puja el fitxer de clau privada", + "uploadPublicKeyFile": "Puja el fitxer de clau pública", + "privateKeyRequiredForGeneration": "Cal una clau privada per generar la clau pública", + "failedToGeneratePublicKey": "No s'ha pogut generar la clau pública", + "generatePublicKey": "Generar a partir de la clau privada", + "publicKeyGeneratedSuccessfully": "Clau pública generada correctament", + "detectedKeyType": "Tipus de clau detectat", + "detectingKeyType": "detectant...", + "optional": "Opcional", + "generateKeyPairNew": "Genera un nou parell de claus", + "generateEd25519": "Genera Ed25519", + "generateECDSA": "Generar ECDSA", + "generateRSA": "Generar RSA", "keyTypeEcdsaP256": "ECDSA P-256 (SSH)", "keyTypeEcdsaP384": "ECDSA P-384 (SSH)", "keyTypeEcdsaP521": "ECDSA P-521 (SSH)", "keyTypeDsa": "DSA (SSH)", "keyTypeRsaSha256": "RSA-SHA2-256", "keyTypeRsaSha512": "RSA-SHA2-512", - "keyPairGeneratedSuccessfully": "{{keyType}} key pair generated successfully", - "failedToGenerateKeyPair": "Failed to generate key pair", - "generateKeyPairNote": "Generate a new SSH key pair directly. This will replace any existing keys in the form.", - "invalidKey": "Invalid Key", - "detectionError": "Detection Error", - "removing": "Removing:", - "clickToEditCredential": "Click to edit credential", - "dragToMoveBetweenFolders": "Drag to move between folders", - "keyBasedOnlyForDeployment": "Only SSH key-based credentials can be deployed", - "publicKeyRequiredForDeployment": "Public key is required for deployment", - "selectTargetHost": "Please select a target host", - "keyDeployedSuccessfully": "SSH key deployed successfully", - "deploymentFailed": "Deployment failed", - "failedToDeployKey": "Failed to deploy SSH key", - "clickToRenameFolder": "Click to rename folder", - "renameFolder": "Rename folder", + "keyPairGeneratedSuccessfully": "Parell de claus {{keyType}} generat correctament", + "failedToGenerateKeyPair": "No s'ha pogut generar el parell de claus", + "generateKeyPairNote": "Genera directament un nou parell de claus SSH. Això substituirà qualsevol clau existent al formulari.", + "invalidKey": "Clau no vàlida", + "detectionError": "Error de detecció", + "removing": "Eliminació de:", + "clickToEditCredential": "Feu clic per editar la credencial", + "dragToMoveBetweenFolders": "Arrossega per moure't entre carpetes", + "keyBasedOnlyForDeployment": "Només es poden implementar credencials basades en claus SSH", + "publicKeyRequiredForDeployment": "Cal una clau pública per al desplegament", + "selectTargetHost": "Seleccioneu un amfitrió de destinació", + "keyDeployedSuccessfully": "La clau SSH s'ha desplegat correctament", + "deploymentFailed": "El desplegament ha fallat", + "failedToDeployKey": "No s'ha pogut implementar la clau SSH", + "clickToRenameFolder": "Feu clic per canviar el nom de la carpeta", + "renameFolder": "Canvia el nom de la carpeta", "idLabel": "ID:" }, "dragIndicator": { "error": "Error: {{error}}", - "dragging": "Dragging {{fileName}}", - "preparing": "Preparing {{fileName}}", - "readySingle": "Ready to download {{fileName}}", - "readyMultiple": "Ready to download {{count}} files", - "batchDrag": "Drag {{count}} files to desktop", - "dragToDesktop": "Drag to desktop", - "canDragAnywhere": "You can drag files anywhere on your desktop" + "dragging": "Arrossegant {{fileName}}", + "preparing": "Preparant {{fileName}}", + "readySingle": "Llest per descarregar {{fileName}}", + "readyMultiple": "A punt per descarregar els fitxers {{count}}", + "batchDrag": "Arrossega {{count}} fitxers a l'escriptori", + "dragToDesktop": "Arrossega a l'escriptori", + "canDragAnywhere": "Podeu arrossegar fitxers a qualsevol lloc de l'escriptori" }, "sshTools": { - "title": "SSH Tools", - "closeTools": "Close SSH Tools", - "keyRecording": "Key Recording", - "startKeyRecording": "Start Key Recording", - "stopKeyRecording": "Stop Key Recording", - "selectTerminals": "Select terminals:", - "typeCommands": "Type commands (all keys supported):", - "commandsWillBeSent": "Commands will be sent to {{count}} selected terminal(s).", - "settings": "Settings", - "enableRightClickCopyPaste": "Enable right‑click copy/paste", - "shareIdeas": "Have ideas for what should come next for ssh tools? Share them on", + "title": "Eines SSH", + "closeTools": "Tanca les eines SSH", + "keyRecording": "Enregistrament de claus", + "startKeyRecording": "Inicia l'enregistrament de claus", + "stopKeyRecording": "Atura l'enregistrament de tecles", + "selectTerminals": "Seleccioneu els terminals:", + "typeCommands": "Comandes d'escriptura (totes les tecles compatibles):", + "commandsWillBeSent": "Les ordres s'enviaran al(s) terminal(s) seleccionat(s) {{count}} .", + "settings": "Configuració", + "enableRightClickCopyPaste": "Activa la funció de copiar/enganxar amb el clic dret", + "shareIdeas": "Tens idees sobre què hauria de venir després amb les eines ssh? Comparteix-les a", "scripts": { - "inputPlaceholder": "e.g., System Commands, Docker Scripts" + "inputPlaceholder": "p. ex., ordres del sistema, scripts de Docker" } }, "snippets": { - "title": "Snippets", - "new": "New Snippet", - "create": "Create Snippet", - "edit": "Edit Snippet", - "run": "Run", - "empty": "No snippets yet", - "emptyHint": "Create a snippet to save commonly used commands", - "searchSnippets": "Search snippets...", - "name": "Name", - "description": "Description", - "content": "Command", - "namePlaceholder": "e.g., Restart Nginx", - "descriptionPlaceholder": "Optional description", - "contentPlaceholder": "e.g., sudo systemctl restart nginx", - "nameRequired": "Name is required", - "contentRequired": "Command is required", - "createDescription": "Create a new command snippet for quick execution", - "editDescription": "Edit this command snippet", - "deleteConfirmTitle": "Delete Snippet", - "deleteConfirmDescription": "Are you sure you want to delete \"{{name}}\"?", - "createSuccess": "Snippet created successfully", - "updateSuccess": "Snippet updated successfully", - "deleteSuccess": "Snippet deleted successfully", - "createFailed": "Failed to create snippet", - "updateFailed": "Failed to update snippet", - "deleteFailed": "Failed to delete snippet", - "failedToFetch": "Failed to fetch snippets", - "executeSuccess": "Executing: {{name}}", - "copySuccess": "Copied \"{{name}}\" to clipboard", - "runTooltip": "Execute this snippet in the terminal", - "copyTooltip": "Copy snippet to clipboard", - "editTooltip": "Edit this snippet", - "deleteTooltip": "Delete this snippet", - "newFolder": "New Folder", - "reorderSameFolder": "Can only reorder snippets within the same folder", - "reorderSuccess": "Snippets reordered successfully", - "reorderFailed": "Failed to reorder snippets", - "deleteFolderConfirm": "Delete folder \"{{name}}\"? All snippets will be moved to Uncategorized.", - "deleteFolderSuccess": "Folder deleted successfully", - "deleteFolderFailed": "Failed to delete folder", - "updateFolderSuccess": "Folder updated successfully", - "createFolderSuccess": "Folder created successfully", - "updateFolderFailed": "Failed to update folder", - "createFolderFailed": "Failed to create folder", - "selectTerminals": "Select Terminals (optional)", - "executeOnSelected": "Execute on {{count}} selected terminal(s)", - "executeOnCurrent": "Execute on current terminal (click to select multiple)", - "folder": "Folder", - "selectFolder": "Select a folder or leave empty", - "noFolder": "No folder (Uncategorized)", - "folderName": "Folder Name", - "folderNameRequired": "Folder name is required", - "folderColor": "Folder Color", - "folderIcon": "Folder Icon", - "preview": "Preview", - "updateFolder": "Update Folder", - "createFolder": "Create Folder", - "editFolder": "Edit Folder", - "editFolderDescription": "Customize your snippet folder", - "createFolderDescription": "Organize your snippets into folders" + "title": "Fragments", + "new": "Nou fragment", + "create": "Crea un fragment", + "edit": "Edita el fragment", + "run": "Corre", + "empty": "Encara no hi ha fragments", + "emptyHint": "Crea un fragment per desar les ordres més utilitzades", + "searchSnippets": "Fragments de cerca...", + "name": "Nom", + "description": "Descripció", + "content": "Comandament", + "namePlaceholder": "p. ex., reiniciar Nginx", + "descriptionPlaceholder": "Descripció opcional", + "contentPlaceholder": "p. ex., sudo systemctl reinicia nginx", + "nameRequired": "El nom és obligatori", + "contentRequired": "Cal una comanda", + "createDescription": "Crea un nou fragment d'ordre per a una execució ràpida", + "editDescription": "Edita aquest fragment d'ordre", + "deleteConfirmTitle": "Suprimeix el fragment", + "deleteConfirmDescription": "Esteu segur que voleu suprimir \"{{name}}\"?", + "createSuccess": "Fragment creat correctament", + "updateSuccess": "Fragment actualitzat correctament", + "deleteSuccess": "Fragment suprimit correctament", + "createFailed": "No s'ha pogut crear el fragment", + "updateFailed": "No s'ha pogut actualitzar el fragment", + "deleteFailed": "No s'ha pogut suprimir el fragment", + "failedToFetch": "No s'han pogut obtenir fragments", + "executeSuccess": "Executant: {{name}}", + "copySuccess": "S'ha copiat \"{{name}}\" al porta-retalls", + "runTooltip": "Executa aquest fragment al terminal", + "copyTooltip": "Copia el fragment al porta-retalls", + "editTooltip": "Edita aquest fragment", + "deleteTooltip": "Suprimeix aquest fragment", + "newFolder": "Nova carpeta", + "reorderSameFolder": "Només es poden reordenar fragments dins de la mateixa carpeta", + "reorderSuccess": "Fragments reordenats correctament", + "reorderFailed": "No s'han pogut reordenar els fragments", + "deleteFolderConfirm": "Voleu suprimir la carpeta \"{{name}}\"? Tots els fragments es mouran a Sense categoria.", + "deleteFolderSuccess": "La carpeta s'ha suprimit correctament", + "deleteFolderFailed": "No s'ha pogut suprimir la carpeta", + "updateFolderSuccess": "La carpeta s'ha actualitzat correctament", + "createFolderSuccess": "Carpeta creada correctament", + "updateFolderFailed": "No s'ha pogut actualitzar la carpeta", + "createFolderFailed": "No s'ha pogut crear la carpeta", + "selectTerminals": "Selecciona terminals (opcional)", + "executeOnSelected": "Executa en {{count}} terminal(s) seleccionat(s)", + "executeOnCurrent": "Executa al terminal actual (feu clic per seleccionar-ne diversos)", + "folder": "Carpeta", + "selectFolder": "Seleccioneu una carpeta o deixeu-la en blanc", + "noFolder": "Sense carpeta (Sense categoria)", + "folderName": "Nom de la carpeta", + "folderNameRequired": "El nom de la carpeta és obligatori", + "folderColor": "Color de la carpeta", + "folderIcon": "Icona de carpeta", + "preview": "Vista prèvia", + "updateFolder": "Actualitza la carpeta", + "createFolder": "Crea una carpeta", + "editFolder": "Edita la carpeta", + "editFolderDescription": "Personalitza la carpeta de fragments", + "createFolderDescription": "Organitza els teus fragments en carpetes" }, "commandHistory": { - "title": "History", - "searchPlaceholder": "Search commands...", - "noTerminal": "No active terminal", - "noTerminalHint": "Open a terminal to see its command history.", - "empty": "No command history yet", - "emptyHint": "Execute commands in the active terminal to build its history.", - "noResults": "No commands found", - "noResultsHint": "No commands matching \"{{query}}\"", - "deleteSuccess": "Command deleted from history", - "deleteFailed": "Failed to delete command.", - "deleteTooltip": "Delete command", - "tabHint": "Use Tab in Terminal to autocomplete from command history if enabled in User Profile", - "authRequiredRefresh": "Authentication required. Please refresh the page.", - "dataAccessLockedReauth": "Data access locked. Please re-authenticate.", - "loading": "Loading command history...", - "error": "Error Loading History" + "title": "Història", + "searchPlaceholder": "Comandes de cerca...", + "noTerminal": "Cap terminal actiu", + "noTerminalHint": "Obriu un terminal per veure el seu historial d'ordres.", + "empty": "Encara no hi ha historial de comandes", + "emptyHint": "Executeu ordres al terminal actiu per construir el seu historial.", + "noResults": "No s'han trobat ordres", + "noResultsHint": "No hi ha ordres que coincideixin amb \"{{query}}\"", + "deleteSuccess": "Comanda suprimida de l'historial", + "deleteFailed": "No s'ha pogut suprimir l'ordre.", + "deleteTooltip": "Comandament de supressió", + "tabHint": "Feu servir la pestanya del terminal per completar automàticament des de l'historial d'ordres si està activat al perfil d'usuari", + "authRequiredRefresh": "Cal autenticació. Si us plau, actualitzeu la pàgina.", + "dataAccessLockedReauth": "Accés a les dades bloquejat. Si us plau, torneu a autenticar-vos.", + "loading": "S'està carregant l'historial d'ordres...", + "error": "S'ha produït un error en carregar l'historial" }, "splitScreen": { - "title": "Split Screen", - "none": "None", - "twoSplit": "2-Way", - "threeSplit": "3-Way", - "fourSplit": "4-Way", - "availableTabs": "Available Tabs", - "dragTabsHint": "Drag tabs to the layout cells below to assign them", - "layout": "Split Screen Layout", - "dropHere": "Drop tab here", - "apply": "Apply Split", - "clear": "Clear Split", - "selectMode": "Select a split screen mode", - "helpText": "Choose how many tabs you want to view at once", - "success": "Split screen applied successfully", - "cleared": "Split screen cleared", + "title": "Pantalla dividida", + "none": "Cap", + "twoSplit": "Bidireccional", + "threeSplit": "3 vies", + "fourSplit": "4 vies", + "availableTabs": "Pestanyes disponibles", + "dragTabsHint": "Arrossegueu pestanyes a les cel·les de disseny següents per assignar-les", + "layout": "Disseny de pantalla dividida", + "dropHere": "Deixa anar la pestanya aquí", + "apply": "Aplica la divisió", + "clear": "Divisió clara", + "selectMode": "Selecciona un mode de pantalla dividida", + "helpText": "Trieu quantes pestanyes voleu veure alhora", + "success": "La pantalla dividida s'ha aplicat correctament", + "cleared": "S'ha esborrat la pantalla dividida", "error": { - "noAssignments": "Please assign at least one tab to the layout", - "fillAllSlots": "Please fill all {{count}} slots before applying" + "noAssignments": "Si us plau, assigneu com a mínim una pestanya al disseny.", + "fillAllSlots": "Si us plau, ompliu tots els espais {{count}} abans de sol·licitar-ho." } }, "homepage": { - "loggedInTitle": "Logged in!", - "loggedInMessage": "You are logged in! Use the sidebar to access all available tools. To get started, create an SSH Host in the SSH Manager tab. Once created, you can connect to that host using the other apps in the sidebar.", - "failedToLoadAlerts": "Failed to load alerts", - "failedToDismissAlert": "Failed to dismiss alert" + "loggedInTitle": "Sessió iniciada!", + "loggedInMessage": "Has iniciat la sessió! Fes servir la barra lateral per accedir a totes les eines disponibles. Per començar, crea un host SSH a la pestanya Gestor SSH. Un cop creat, pots connectar-te a aquest host mitjançant les altres aplicacions de la barra lateral.", + "failedToLoadAlerts": "No s'han pogut carregar les alertes", + "failedToDismissAlert": "No s'ha pogut ignorar l'alerta" }, "serverConfig": { - "title": "Server Configuration", - "description": "Configure the Termix server URL to connect to your backend services", - "serverUrl": "Server URL", - "enterServerUrl": "Please enter a server URL", - "testConnectionFirst": "Please test the connection first", - "connectionSuccess": "Connection successful!", - "connectionFailed": "Connection failed", - "connectionError": "Connection error occurred", - "connected": "Connected", - "disconnected": "Disconnected", - "configSaved": "Configuration saved successfully", - "saveFailed": "Failed to save configuration", - "saveError": "Error saving configuration", - "saving": "Saving...", - "saveConfig": "Save Configuration", - "helpText": "Enter the URL where your Termix server is running (e.g., http://localhost:30001 or https://your-server.com)", - "warning": "Warning", - "notValidatedWarning": "URL not validated - ensure it's correct", - "changeServer": "Change Server", - "mustIncludeProtocol": "Server URL must start with http:// or https://" + "title": "Configuració del servidor", + "description": "Configureu l'URL del servidor Termix per connectar-vos als vostres serveis de backend", + "serverUrl": "URL del servidor", + "enterServerUrl": "Si us plau, introduïu una URL de servidor", + "testConnectionFirst": "Si us plau, proveu primer la connexió", + "connectionSuccess": "Connexió correcta!", + "connectionFailed": "La connexió ha fallat", + "connectionError": "S'ha produït un error de connexió", + "connected": "Connectat", + "disconnected": "Desconnectat", + "configSaved": "La configuració s'ha desat correctament", + "saveFailed": "No s'ha pogut desar la configuració", + "saveError": "S'ha produït un error en desar la configuració", + "saving": "Desant...", + "saveConfig": "Desa la configuració", + "helpText": "Introduïu l'URL on s'executa el vostre servidor Termix (per exemple, http://localhost:30001 o https://el-vostre-servidor.com)", + "warning": "Avís", + "notValidatedWarning": "URL no validada: assegureu-vos que sigui correcta", + "changeServer": "Canviar servidor", + "mustIncludeProtocol": "L'URL del servidor ha de començar per http:// o https://" }, "versionCheck": { - "error": "Version Check Error", - "checkFailed": "Failed to check for updates", - "upToDate": "App is Up to Date", - "currentVersion": "You are running version {{version}}", - "updateAvailable": "Update Available", - "newVersionAvailable": "A new version is available! You are running {{current}}, but {{latest}} is available.", - "releasedOn": "Released on {{date}}", - "downloadUpdate": "Download Update", - "dismiss": "Dismiss", - "checking": "Checking for updates...", - "checkUpdates": "Check for Updates", - "checkingUpdates": "Checking for updates...", - "refresh": "Refresh", - "updateRequired": "Update Required", - "updateDismissed": "Update notification dismissed", - "noUpdatesFound": "No updates found" + "error": "Error de comprovació de versió", + "checkFailed": "No s'ha pogut comprovar si hi ha actualitzacions", + "upToDate": "L'aplicació està actualitzada", + "currentVersion": "Esteu executant la versió {{version}}", + "updateAvailable": "Actualització disponible", + "newVersionAvailable": "Hi ha una nova versió disponible! Esteu executant {{current}}, però {{latest}} està disponible.", + "releasedOn": "Publicat el {{date}}", + "downloadUpdate": "Descarrega l'actualització", + "dismiss": "Ignora", + "checking": "S'estan buscant actualitzacions...", + "checkUpdates": "Comprova si hi ha actualitzacions", + "checkingUpdates": "S'estan buscant actualitzacions...", + "refresh": "Actualitza", + "updateRequired": "Actualització necessària", + "updateDismissed": "Notificació d'actualització ignorada", + "noUpdatesFound": "No s'han trobat actualitzacions" }, "common": { - "close": "Close", - "minimize": "Minimize", - "online": "Online", - "offline": "Offline", - "continue": "Continue", - "maintenance": "Maintenance", - "degraded": "Degraded", - "discord": "Discord", + "close": "Tanca", + "minimize": "Minimitzar", + "online": "En línia", + "offline": "Fora de línia", + "continue": "Continua", + "maintenance": "Manteniment", + "degraded": "Degradat", + "discord": "Discòrdia", "error": "Error", - "warning": "Warning", - "info": "Info", - "success": "Success", - "loading": "Loading...", - "required": "Required", - "optional": "Optional", - "connect": "Connect", - "connecting": "Connecting...", - "creating": "Creating...", - "clear": "Clear", - "toggleSidebar": "Toggle Sidebar", - "sidebar": "Sidebar", - "home": "Home", - "expired": "Expired", - "expiresToday": "Expires today", - "expiresTomorrow": "Expires in {{days}} days", - "updateAvailable": "Update Available", - "sshPath": "SSH Path", - "localPath": "Local Path", - "appName": "Termix", - "resetSidebarWidth": "Reset sidebar width", - "dragToResizeSidebar": "Drag to resize sidebar", - "noAuthCredentials": "No authentication credentials available for this SSH host", - "noReleases": "No Releases", - "updatesAndReleases": "Updates & Releases", - "newVersionAvailable": "A new version ({{version}}) is available.", - "failedToFetchUpdateInfo": "Failed to fetch update information", - "preRelease": "Pre-release", - "loginFailed": "Login failed", - "noReleasesFound": "No releases found.", - "yourBackupCodes": "Your Backup Codes", - "sendResetCode": "Send Reset Code", - "verifyCode": "Verify Code", - "resetPassword": "Reset Password", - "resetCode": "Reset Code", - "newPassword": "New Password", - "folder": "Folder", - "file": "File", - "renamedSuccessfully": "renamed successfully", - "deletedSuccessfully": "deleted successfully", - "noTunnelConnections": "No tunnel connections configured", - "sshTools": "SSH Tools", - "english": "English", - "chinese": "Chinese", - "german": "German", - "cancel": "Cancel", - "username": "Username", - "name": "Name", - "login": "Login", - "logout": "Logout", - "register": "Register", - "password": "Password", - "version": "Version", - "confirmPassword": "Confirm Password", - "back": "Back", - "email": "Email", - "submit": "Submit", - "change": "Change", - "save": "Save", - "saving": "Saving...", - "delete": "Delete", - "edit": "Edit", - "add": "Add", - "search": "Search", - "confirm": "Confirm", - "yes": "Yes", + "warning": "Avís", + "info": "Informació", + "success": "Èxit", + "loading": "S'està carregant...", + "required": "Obligatori", + "optional": "Opcional", + "connect": "Connecta", + "connecting": "Connectant...", + "creating": "Creant...", + "clear": "Clar", + "toggleSidebar": "Obre/tanca la barra lateral", + "sidebar": "Barra lateral", + "home": "Inici", + "expired": "Caducat", + "expiresToday": "Caduca avui", + "expiresTomorrow": "Caduca en {{days}} dies", + "updateAvailable": "Actualització disponible", + "sshPath": "Camí SSH", + "localPath": "Camí local", + "appName": "Tèrmix", + "resetSidebarWidth": "Restableix l'amplada de la barra lateral", + "dragToResizeSidebar": "Arrossega per canviar la mida de la barra lateral", + "noAuthCredentials": "No hi ha credencials d'autenticació disponibles per a aquest amfitrió SSH.", + "noReleases": "Sense llançaments", + "updatesAndReleases": "Actualitzacions i llançaments", + "newVersionAvailable": "Hi ha disponible una nova versió ({{version}}).", + "failedToFetchUpdateInfo": "No s'ha pogut obtenir la informació d'actualització", + "preRelease": "Preestrena", + "loginFailed": "Error d'inici de sessió", + "noReleasesFound": "No s'han trobat llançaments.", + "yourBackupCodes": "Els vostres codis de còpia de seguretat", + "sendResetCode": "Enviar codi de restabliment", + "verifyCode": "Verifica el codi", + "resetPassword": "Restablir contrasenya", + "resetCode": "Restableix el codi", + "newPassword": "Nova contrasenya", + "folder": "Carpeta", + "file": "Fitxer", + "renamedSuccessfully": "canviat de nom correctament", + "deletedSuccessfully": "suprimit correctament", + "noTunnelConnections": "No hi ha connexions de túnel configurades", + "sshTools": "Eines SSH", + "english": "Anglès", + "chinese": "xinès", + "german": "Alemany", + "cancel": "Cancel·la", + "username": "Nom d'usuari", + "name": "Nom", + "login": "Inicia la sessió", + "logout": "Tanca la sessió", + "register": "Registra't", + "password": "Contrasenya", + "version": "Versió", + "confirmPassword": "Confirma la contrasenya", + "back": "Enrere", + "email": "Correu electrònic", + "submit": "Enviar", + "change": "Canvi", + "save": "Desa", + "saving": "Desant...", + "delete": "Suprimeix", + "edit": "Edita", + "add": "Afegeix", + "search": "Cerca", + "confirm": "Confirma", + "yes": "Sí", "no": "No", - "ok": "OK", - "enabled": "Enabled", - "disabled": "Disabled", + "ok": "D'acord", + "enabled": "Activat", + "disabled": "Discapacitat", "important": "Important", - "notEnabled": "Not Enabled", - "settingUp": "Setting up...", - "next": "Next", - "previous": "Previous", - "refresh": "Refresh", - "settings": "Settings", - "profile": "Profile", - "help": "Help", - "about": "About", - "language": "Language", - "autoDetect": "Auto-detect", - "changeAccountPassword": "Change your account password", - "passwordResetTitle": "Password Reset", - "passwordResetDescription": "You are about to reset your password. This will log you out of all active sessions.", - "enterSixDigitCode": "Enter the 6-digit code from the docker container logs for user:", - "enterNewPassword": "Enter your new password for user:", - "passwordsDoNotMatch": "Passwords do not match", - "passwordMinLength": "Password must be at least 6 characters long", - "passwordResetSuccess": "Password reset successfully! You can now log in with your new password.", - "failedToInitiatePasswordReset": "Failed to initiate password reset", - "failedToVerifyResetCode": "Failed to verify reset code", - "failedToCompletePasswordReset": "Failed to complete password reset", - "documentation": "Documentation", - "retry": "Retry", - "checking": "Checking...", - "checkingDatabase": "Checking database connection...", - "actions": "Actions", - "remove": "Remove", - "revoke": "Revoke", - "create": "Create" + "notEnabled": "No habilitat", + "settingUp": "Configurant...", + "next": "Següent", + "previous": "Anterior", + "refresh": "Actualitza", + "settings": "Configuració", + "profile": "Perfil", + "help": "Ajuda", + "about": "Sobre", + "language": "Llengua", + "autoDetect": "Detecció automàtica", + "changeAccountPassword": "Canvia la contrasenya del teu compte", + "passwordResetTitle": "Restabliment de contrasenya", + "passwordResetDescription": "Esteu a punt de restablir la vostra contrasenya. Això tancarà la sessió de totes les sessions actives.", + "enterSixDigitCode": "Introduïu el codi de 6 dígits dels registres del contenidor Docker per a l'usuari:", + "enterNewPassword": "Introduïu la nova contrasenya per a l'usuari:", + "passwordsDoNotMatch": "Les contrasenyes no coincideixen", + "passwordMinLength": "La contrasenya ha de tenir com a mínim 6 caràcters", + "passwordResetSuccess": "La contrasenya s'ha restablert correctament. Ara podeu iniciar la sessió amb la vostra nova contrasenya.", + "failedToInitiatePasswordReset": "No s'ha pogut iniciar el restabliment de la contrasenya", + "failedToVerifyResetCode": "No s'ha pogut verificar el codi de restabliment", + "failedToCompletePasswordReset": "No s'ha pogut completar el restabliment de la contrasenya", + "documentation": "Documentació", + "retry": "Torna-ho a intentar", + "checking": "S'està revisant...", + "checkingDatabase": "S'està comprovant la connexió a la base de dades...", + "actions": "Accions", + "remove": "Elimina", + "revoke": "Revocar", + "create": "Crea" }, "nav": { - "home": "Home", - "hosts": "Hosts", - "credentials": "Credentials", + "home": "Inici", + "hosts": "Amfitrions", + "credentials": "Credencials", "terminal": "Terminal", "docker": "Docker", - "tunnels": "Tunnels", - "fileManager": "File Manager", - "serverStats": "Server Stats", - "admin": "Admin", - "userProfile": "User Profile", - "tools": "Tools", - "snippets": "Snippets", - "newTab": "New Tab", - "splitScreen": "Split Screen", - "closeTab": "Close Tab", - "sshManager": "SSH Manager", - "hostManager": "Host Manager", - "cannotSplitTab": "Cannot split this tab", - "tabNavigation": "Tab Navigation", + "tunnels": "Túnels", + "fileManager": "Gestor de fitxers", + "serverStats": "Estadístiques del servidor", + "admin": "Administrador", + "userProfile": "Perfil d'usuari", + "tools": "Eines", + "snippets": "Fragments", + "newTab": "Nova pestanya", + "splitScreen": "Pantalla dividida", + "closeTab": "Tanca la pestanya", + "sshManager": "Gestor SSH", + "hostManager": "Gestor d'amfitrions", + "cannotSplitTab": "No es pot dividir aquesta pestanya", + "tabNavigation": "Navegació per pestanyes", "hostTabTitle": "{{username}}@{{ip}}:{{port}}" }, "admin": { - "title": "Admin Settings", + "title": "Configuració de l'administrador", "oidc": "OIDC", - "users": "Users", - "userManagement": "User Management", - "makeAdmin": "Make Admin", - "removeAdmin": "Remove Admin", - "deleteUser": "Delete user {{username}}? This cannot be undone.", - "allowRegistration": "Allow Registration", - "oidcSettings": "OIDC Settings", - "clientId": "Client ID", - "clientSecret": "Client Secret", - "issuerUrl": "Issuer URL", - "authorizationUrl": "Authorization URL", - "tokenUrl": "Token URL", - "updateSettings": "Update Settings", - "confirmDelete": "Are you sure you want to delete this user?", - "confirmMakeAdmin": "Are you sure you want to make {{username}} an admin?", - "confirmRemoveAdmin": "Are you sure you want to remove admin status from {{username}}?", - "externalAuthentication": "External Authentication (OIDC)", - "configureExternalProvider": "Configure external identity provider for OIDC/OAuth2 authentication.", - "userIdentifierPath": "User Identifier Path", - "displayNamePath": "Display Name Path", - "scopes": "Scopes", - "saving": "Saving...", - "saveConfiguration": "Save Configuration", - "reset": "Reset", - "success": "Success", - "loading": "Loading...", - "refresh": "Refresh", - "loadingUsers": "Loading users...", - "username": "Username", - "type": "Type", - "actions": "Actions", - "external": "External", + "users": "Usuaris", + "userManagement": "Gestió d'usuaris", + "makeAdmin": "Fes-te administrador/a", + "removeAdmin": "Elimina l'administrador", + "deleteUser": "Voleu suprimir l'usuari {{username}}? Això no es pot desfer.", + "allowRegistration": "Permet el registre", + "oidcSettings": "Configuració de l'OIDC", + "clientId": "ID de client", + "clientSecret": "Secret del client", + "issuerUrl": "URL de l'emissor", + "authorizationUrl": "URL d'autorització", + "tokenUrl": "URL del testimoni", + "updateSettings": "Actualitza la configuració", + "confirmDelete": "Esteu segur que voleu eliminar aquest usuari?", + "confirmMakeAdmin": "Esteu segur que voleu fer que {{username}} sigui administrador?", + "confirmRemoveAdmin": "Esteu segur que voleu eliminar l'estat d'administrador de {{username}}?", + "externalAuthentication": "Autenticació externa (OIDC)", + "configureExternalProvider": "Configura el proveïdor d'identitat extern per a l'autenticació OIDC/OAuth2.", + "userIdentifierPath": "Ruta d'identificació d'usuari", + "displayNamePath": "Camí del nom de visualització", + "scopes": "Àmbits", + "saving": "Desant...", + "saveConfiguration": "Desa la configuració", + "reset": "Restablir", + "success": "Èxit", + "loading": "S'està carregant...", + "refresh": "Actualitza", + "loadingUsers": "S'estan carregant els usuaris...", + "username": "Nom d'usuari", + "type": "Tipus", + "actions": "Accions", + "external": "Extern", "local": "Local", - "adminManagement": "Admin Management", - "makeUserAdmin": "Make User Admin", - "adding": "Adding...", - "currentAdmins": "Current Admins", - "adminBadge": "Admin", - "removeAdminButton": "Remove Admin", + "adminManagement": "Gestió administrativa", + "makeUserAdmin": "Fes que l'usuari sigui administrador", + "adding": "Afegint...", + "currentAdmins": "Administradors actuals", + "adminBadge": "Administrador", + "removeAdminButton": "Elimina l'administrador", "general": "General", - "userRegistration": "User Registration", - "allowNewAccountRegistration": "Allow new account registration", - "allowPasswordLogin": "Allow username/password login", - "missingRequiredFields": "Missing required fields: {{fields}}", - "oidcConfigurationUpdated": "OIDC configuration updated successfully!", - "failedToFetchOidcConfig": "Failed to fetch OIDC configuration", - "failedToFetchRegistrationStatus": "Failed to fetch registration status", - "failedToFetchPasswordLoginStatus": "Failed to fetch password login status", - "failedToFetchUsers": "Failed to fetch users", - "oidcConfigurationDisabled": "OIDC configuration disabled successfully!", - "failedToUpdateOidcConfig": "Failed to update OIDC configuration", - "failedToDisableOidcConfig": "Failed to disable OIDC configuration", - "enterUsernameToMakeAdmin": "Enter username to make admin", - "userIsNowAdmin": "User {{username}} is now an admin", - "failedToMakeUserAdmin": "Failed to make user admin", - "removeAdminStatus": "Remove admin status from {{username}}?", - "adminStatusRemoved": "Admin status removed from {{username}}", - "failedToRemoveAdminStatus": "Failed to remove admin status", - "userDeletedSuccessfully": "User {{username}} deleted successfully", - "failedToDeleteUser": "Failed to delete user", - "overrideUserInfoUrl": "Override User Info URL (not required)", - "failedToFetchSessions": "Failed to fetch sessions", - "sessionRevokedSuccessfully": "Session revoked successfully", - "failedToRevokeSession": "Failed to revoke session", - "confirmRevokeSession": "Are you sure you want to revoke this session?", - "confirmRevokeAllSessions": "Are you sure you want to revoke all sessions for this user?", - "failedToRevokeSessions": "Failed to revoke sessions", - "sessionsRevokedSuccessfully": "Sessions revoked successfully", - "linkToPasswordAccount": "Link to Password Account", - "linkOIDCDialogTitle": "Link OIDC Account to Password Account", - "linkOIDCDialogDescription": "Link {{username}} (OIDC user) to an existing password account. This will enable dual authentication for the password account.", - "createUser": "Create User", - "createUserDescription": "Create a new local user with username and password", - "enterUsername": "Enter username", - "enterPassword": "Enter password", - "userCreatedSuccessfully": "User {{username}} created successfully", - "failedToCreateUser": "Failed to create user", - "manageUser": "Manage User", - "manageUserDescription": "Manage user settings, roles, and permissions", - "authType": "Authentication Type", - "adminStatus": "Admin Status", - "userId": "User ID", - "regularUser": "Regular User", - "adminPrivileges": "Administrator Privileges", - "administratorRole": "Administrator Role", - "administratorRoleDescription": "Grant full system access and management privileges", - "passwordManagement": "Password Management", - "passwordResetWarning": "Resetting a user's password will delete all their data (SSH hosts, credentials, settings). This action cannot be undone.", - "resetUserPassword": "Reset User Password", - "resettingPassword": "Resetting...", - "passwordResetInitiated": "Password reset initiated for {{username}}. Reset code sent.", - "failedToResetPassword": "Failed to initiate password reset", - "sessionManagement": "Session Management", - "revokeAllSessions": "Revoke All Sessions", - "revokeAllSessionsDescription": "Force logout from all devices and sessions", - "revoking": "Revoking...", - "revoke": "Revoke All", - "dangerZone": "Danger Zone", - "deleteUserTitle": "Delete User Account", - "deleteUserWarning": "Permanently delete this user account and all associated data. This action cannot be undone.", - "deleting": "Deleting...", - "cannotDeleteSelf": "You cannot delete your own account", - "cannotRemoveLastAdmin": "Cannot remove the last administrator", - "cannotRemoveOwnAdmin": "You cannot remove your own admin privileges", - "cannotModifyOwnAdminStatus": "You cannot modify your own admin status", - "dualAuth": "Dual Auth", - "externalOIDC": "External (OIDC)", - "localPassword": "Local Password", - "confirmRevokeOwnSessions": "Are you sure you want to revoke all your own sessions? You will be logged out.", - "linkOIDCWarningTitle": "Warning: OIDC User Data Will Be Deleted", - "linkOIDCActionDeleteUser": "Delete the OIDC user account and all their data", - "linkOIDCActionAddCapability": "Add OIDC login capability to the target password account", - "linkOIDCActionDualAuth": "Allow the password account to login with both password and OIDC", - "linkTargetUsernameLabel": "Target Password Account Username", - "linkTargetUsernamePlaceholder": "Enter username of password account", - "linkAccountsButton": "Link Accounts", - "linkingAccounts": "Linking...", - "accountsLinkedSuccessfully": "OIDC user {{oidcUsername}} has been linked to {{targetUsername}}", - "failedToLinkAccounts": "Failed to link accounts", - "linkTargetUsernameRequired": "Target username is required", - "unlinkOIDCTitle": "Unlink OIDC Authentication", - "unlinkOIDCDescription": "Remove OIDC authentication from {{username}}? The user will only be able to login with username/password after this.", - "unlinkOIDCSuccess": "OIDC unlinked from {{username}}", - "failedToUnlinkOIDC": "Failed to unlink OIDC", - "databaseSecurity": "Database Security", - "encryptionStatus": "Encryption Status", - "encryptionEnabled": "Encryption Enabled", - "enabled": "Enabled", - "disabled": "Disabled", - "keyId": "Key ID", - "created": "Created", - "migrationStatus": "Migration Status", - "migrationCompleted": "Migration completed", - "migrationRequired": "Migration required", - "deviceProtectedMasterKey": "Environment-Protected Master Key", - "legacyKeyStorage": "Legacy Key Storage", - "masterKeyEncryptedWithDeviceFingerprint": "Master key encrypted with environment fingerprint (KEK protection active)", - "keyNotProtectedByDeviceBinding": "Key not protected by environment binding (upgrade recommended)", - "valid": "Valid", - "initializeDatabaseEncryption": "Initialize Database Encryption", - "enableAes256EncryptionWithDeviceBinding": "Enable AES-256 encryption with environment-bound master key protection. This creates enterprise-grade security for SSH keys, passwords, and authentication tokens.", - "featuresEnabled": "Features enabled:", - "aes256GcmAuthenticatedEncryption": "AES-256-GCM authenticated encryption", - "deviceFingerprintMasterKeyProtection": "Environment fingerprint master key protection (KEK)", - "pbkdf2KeyDerivation": "PBKDF2 key derivation with 100K iterations", - "automaticKeyManagement": "Automatic key management and rotation", - "initializing": "Initializing...", - "initializeEnterpriseEncryption": "Initialize Enterprise Encryption", - "migrateExistingData": "Migrate Existing Data", - "encryptExistingUnprotectedData": "Encrypt existing unprotected data in your database. This process is safe and creates automatic backups.", - "testMigrationDryRun": "Verify Encryption Compatibility", - "migrating": "Migrating...", - "migrateData": "Migrate Data", - "securityInformation": "Security Information", - "sshPrivateKeysEncryptedWithAes256": "SSH private keys and passwords are encrypted with AES-256-GCM", - "userAuthTokensProtected": "User authentication tokens and 2FA secrets are protected", - "masterKeysProtectedByDeviceFingerprint": "Master encryption keys are protected by device fingerprint (KEK)", - "keysBoundToServerInstance": "Keys are bound to current server environment (migratable via environment variables)", - "pbkdf2HkdfKeyDerivation": "PBKDF2 + HKDF key derivation with 100K iterations", - "backwardCompatibleMigration": "All data remains backward compatible during migration", - "enterpriseGradeSecurityActive": "Enterprise-Grade Security Active", - "masterKeysProtectedByDeviceBinding": "Your master encryption keys are protected by environment fingerprinting. This uses server hostname, paths, and other environment info to generate protection keys. To migrate servers, set the DB_ENCRYPTION_KEY environment variable on the new server.", + "userRegistration": "Registre d'usuari", + "allowNewAccountRegistration": "Permet el registre de comptes nous", + "allowPasswordLogin": "Permet l'inici de sessió amb nom d'usuari/contrasenya", + "missingRequiredFields": "Camps obligatoris que falten: {{fields}}", + "oidcConfigurationUpdated": "La configuració de l'OIDC s'ha actualitzat correctament!", + "failedToFetchOidcConfig": "No s'ha pogut obtenir la configuració de l'OIDC.", + "failedToFetchRegistrationStatus": "No s'ha pogut obtenir l'estat del registre", + "failedToFetchPasswordLoginStatus": "No s'ha pogut obtenir l'estat d'inici de sessió de la contrasenya", + "failedToFetchUsers": "No s'han pogut obtenir els usuaris", + "oidcConfigurationDisabled": "La configuració OIDC s'ha desactivat correctament!", + "failedToUpdateOidcConfig": "No s'ha pogut actualitzar la configuració de l'OIDC.", + "failedToDisableOidcConfig": "No s'ha pogut desactivar la configuració d'OIDC.", + "enterUsernameToMakeAdmin": "Introdueix el nom d'usuari per fer-lo administrador", + "userIsNowAdmin": "L'usuari {{username}} ara és administrador", + "failedToMakeUserAdmin": "No s'ha pogut fer que l'usuari sigui administrador.", + "removeAdminStatus": "Voleu eliminar l'estat d'administrador de {{username}}?", + "adminStatusRemoved": "S'ha eliminat l'estatus d'administrador de {{username}}", + "failedToRemoveAdminStatus": "No s'ha pogut eliminar l'estatus d'administrador", + "userDeletedSuccessfully": "L'usuari {{username}} s'ha eliminat correctament", + "failedToDeleteUser": "No s'ha pogut suprimir l'usuari", + "overrideUserInfoUrl": "Substitueix l'URL d'informació de l'usuari (no obligatori)", + "failedToFetchSessions": "No s'han pogut recuperar les sessions", + "sessionRevokedSuccessfully": "La sessió s'ha revocat correctament", + "failedToRevokeSession": "No s'ha pogut revocar la sessió", + "confirmRevokeSession": "Esteu segur que voleu revocar aquesta sessió?", + "confirmRevokeAllSessions": "Esteu segur que voleu revocar totes les sessions per a aquest usuari?", + "failedToRevokeSessions": "No s'han pogut revocar les sessions", + "sessionsRevokedSuccessfully": "Sessions revocades correctament", + "linkToPasswordAccount": "Enllaç al compte de contrasenya", + "linkOIDCDialogTitle": "Enllaça el compte OIDC al compte de contrasenya", + "linkOIDCDialogDescription": "Enllaça {{username}} (usuari OIDC) a un compte de contrasenya existent. Això habilitarà la doble autenticació per al compte de contrasenya.", + "createUser": "Crea un usuari", + "createUserDescription": "Crea un nou usuari local amb nom d'usuari i contrasenya", + "enterUsername": "Introdueix el nom d'usuari", + "enterPassword": "Introdueix la contrasenya", + "userCreatedSuccessfully": "L'usuari {{username}} s'ha creat correctament", + "failedToCreateUser": "No s'ha pogut crear l'usuari", + "manageUser": "Gestiona l'usuari", + "manageUserDescription": "Gestionar la configuració, els rols i els permisos dels usuaris", + "authType": "Tipus d'autenticació", + "adminStatus": "Estat d'administrador", + "userId": "ID d'usuari", + "regularUser": "Usuari habitual", + "adminPrivileges": "Privilegis d'administrador", + "administratorRole": "Rol d'administrador", + "administratorRoleDescription": "Atorgar accés complet al sistema i privilegis de gestió", + "passwordManagement": "Gestió de contrasenyes", + "passwordResetWarning": "Restablir la contrasenya d'un usuari eliminarà totes les seves dades (amfitrions SSH, credencials, configuració). Aquesta acció no es pot desfer.", + "resetUserPassword": "Restablir la contrasenya de l'usuari", + "resettingPassword": "Restableix...", + "passwordResetInitiated": "S'ha iniciat el restabliment de la contrasenya per a {{username}}. S'ha enviat el codi de restabliment.", + "failedToResetPassword": "No s'ha pogut iniciar el restabliment de la contrasenya", + "sessionManagement": "Gestió de sessions", + "revokeAllSessions": "Revoca totes les sessions", + "revokeAllSessionsDescription": "Força el tancament de sessió de tots els dispositius i sessions", + "revoking": "Revocació...", + "revoke": "Revoca-ho tot", + "dangerZone": "Zona de perill", + "deleteUserTitle": "Suprimeix el compte d'usuari", + "deleteUserWarning": "Suprimeix permanentment aquest compte d'usuari i totes les dades associades. Aquesta acció no es pot desfer.", + "deleting": "S'està suprimint...", + "cannotDeleteSelf": "No pots eliminar el teu propi compte", + "cannotRemoveLastAdmin": "No es pot eliminar l'últim administrador", + "cannotRemoveOwnAdmin": "No podeu eliminar els vostres propis privilegis d'administrador", + "cannotModifyOwnAdminStatus": "No pots modificar el teu propi estat d'administrador", + "dualAuth": "Doble autenticació", + "externalOIDC": "Extern (OIDC)", + "localPassword": "Contrasenya local", + "confirmRevokeOwnSessions": "Esteu segur que voleu revocar totes les vostres sessions? Es tancarà la sessió.", + "linkOIDCWarningTitle": "Avís: Les dades d'usuari de l'OIDC s'eliminaran", + "linkOIDCActionDeleteUser": "Suprimeix el compte d'usuari OIDC i totes les seves dades", + "linkOIDCActionAddCapability": "Afegeix la capacitat d'inici de sessió OIDC al compte de contrasenya de destinació", + "linkOIDCActionDualAuth": "Permet que el compte de contrasenya iniciï sessió tant amb contrasenya com amb OIDC", + "linkTargetUsernameLabel": "Nom d'usuari del compte de contrasenya de destinació", + "linkTargetUsernamePlaceholder": "Introduïu el nom d'usuari del compte de contrasenya", + "linkAccountsButton": "Enllaçar comptes", + "linkingAccounts": "Enllaçant...", + "accountsLinkedSuccessfully": "L'usuari OIDC {{oidcUsername}} ha estat enllaçat a {{targetUsername}}", + "failedToLinkAccounts": "No s'han pogut enllaçar els comptes", + "linkTargetUsernameRequired": "El nom d'usuari de destinació és obligatori.", + "unlinkOIDCTitle": "Desvincula l'autenticació OIDC", + "unlinkOIDCDescription": "Voleu eliminar l'autenticació OIDC de {{username}}? L'usuari només podrà iniciar sessió amb nom d'usuari i contrasenya després d'això.", + "unlinkOIDCSuccess": "OIDC desenllaçat de {{username}}", + "failedToUnlinkOIDC": "No s'ha pogut desenllaçar l'OIDC", + "databaseSecurity": "Seguretat de bases de dades", + "encryptionStatus": "Estat de xifratge", + "encryptionEnabled": "Xifratge habilitat", + "enabled": "Activat", + "disabled": "Discapacitat", + "keyId": "ID de clau", + "created": "Creat", + "migrationStatus": "Estat de la migració", + "migrationCompleted": "Migració completada", + "migrationRequired": "Migració necessària", + "deviceProtectedMasterKey": "Clau mestra protegida pel medi ambient", + "legacyKeyStorage": "Emmagatzematge de claus heretades", + "masterKeyEncryptedWithDeviceFingerprint": "Clau mestra xifrada amb empremta digital de l'entorn (protecció KEK activa)", + "keyNotProtectedByDeviceBinding": "Clau no protegida per l'enllaç d'entorn (es recomana l'actualització)", + "valid": "Vàlid", + "initializeDatabaseEncryption": "Inicialitzar el xifratge de la base de dades", + "enableAes256EncryptionWithDeviceBinding": "Habilita el xifratge AES-256 amb protecció de clau mestra vinculada a l'entorn. Això crea seguretat de nivell empresarial per a claus SSH, contrasenyes i tokens d'autenticació.", + "featuresEnabled": "Funcions habilitades:", + "aes256GcmAuthenticatedEncryption": "Xifratge autenticat AES-256-GCM", + "deviceFingerprintMasterKeyProtection": "Protecció de clau mestra d'empremta digital d'entorn (KEK)", + "pbkdf2KeyDerivation": "Derivació de clau PBKDF2 amb 100.000 iteracions", + "automaticKeyManagement": "Gestió i rotació automàtica de claus", + "initializing": "Inicialitzant...", + "initializeEnterpriseEncryption": "Inicialitzar el xifratge empresarial", + "migrateExistingData": "Migrar dades existents", + "encryptExistingUnprotectedData": "Xifra les dades desprotegides existents a la teva base de dades. Aquest procés és segur i crea còpies de seguretat automàtiques.", + "testMigrationDryRun": "Verifica la compatibilitat del xifratge", + "migrating": "Migrant...", + "migrateData": "Migrar dades", + "securityInformation": "Informació de seguretat", + "sshPrivateKeysEncryptedWithAes256": "Les claus privades i les contrasenyes SSH estan xifrades amb AES-256-GCM", + "userAuthTokensProtected": "Els tokens d'autenticació d'usuari i els secrets 2FA estan protegits", + "masterKeysProtectedByDeviceFingerprint": "Les claus de xifratge mestres estan protegides per l'empremta digital del dispositiu (KEK)", + "keysBoundToServerInstance": "Les claus estan vinculades a l'entorn actual del servidor (migrables mitjançant variables d'entorn)", + "pbkdf2HkdfKeyDerivation": "Derivació de clau PBKDF2 + HKDF amb 100.000 iteracions", + "backwardCompatibleMigration": "Totes les dades romanen compatibles amb versions anteriors durant la migració", + "enterpriseGradeSecurityActive": "Seguretat activa de nivell empresarial", + "masterKeysProtectedByDeviceBinding": "Les claus de xifratge mestres estan protegides per empremta digital de l'entorn. Això utilitza el nom d'amfitrió del servidor, les rutes i altra informació de l'entorn per generar claus de protecció. Per migrar servidors, definiu la variable d'entorn DB_ENCRYPTION_KEY al nou servidor.", "important": "Important", - "keepEncryptionKeysSecure": "Ensure data security: regularly backup your database files and server configuration. To migrate to a new server, set the DB_ENCRYPTION_KEY environment variable on the new environment, or maintain the same hostname and directory structure.", - "loadingEncryptionStatus": "Loading encryption status...", - "testMigrationDescription": "Verify that existing data can be safely migrated to encrypted format without actually modifying any data", - "serverMigrationGuide": "Server Migration Guide", - "migrationInstructions": "To migrate encrypted data to a new server: 1) Backup database files, 2) Set environment variable DB_ENCRYPTION_KEY=\"your-key\" on new server, 3) Restore database files", - "environmentProtection": "Environment Protection", - "environmentProtectionDesc": "Protects encryption keys based on server environment info (hostname, paths, etc.), migratable via environment variables", - "verificationCompleted": "Compatibility verification completed - no data was changed", - "verificationInProgress": "Verification completed", - "dataMigrationCompleted": "Data migration completed successfully!", - "verificationFailed": "Compatibility verification failed", - "migrationFailed": "Migration failed", - "runningVerification": "Running compatibility verification...", - "startingMigration": "Starting migration...", - "hardwareFingerprintSecurity": "Hardware Fingerprint Security", - "hardwareBoundEncryption": "Hardware-Bound Encryption Active", - "masterKeysNowProtectedByHardwareFingerprint": "Master keys are now protected by real hardware fingerprinting instead of environment variables", - "cpuSerialNumberDetection": "CPU serial number detection", - "motherboardUuidIdentification": "Motherboard UUID identification", - "diskSerialNumberVerification": "Disk serial number verification", - "biosSerialNumberCheck": "BIOS serial number check", - "stableMacAddressFiltering": "Stable MAC address filtering", - "databaseFileEncryption": "Database File Encryption", - "dualLayerProtection": "Dual-Layer Protection Active", - "bothFieldAndFileEncryptionActive": "Both field-level and file-level encryption are now active for maximum security", - "fieldLevelAes256Encryption": "Field-level AES-256 encryption for sensitive data", - "fileLevelDatabaseEncryption": "File-level database encryption with hardware binding", - "hardwareBoundFileKeys": "Hardware-bound file encryption keys", - "automaticEncryptedBackups": "Automatic encrypted backup creation", - "createEncryptedBackup": "Create Encrypted Backup", - "creatingBackup": "Creating Backup...", - "backupCreated": "Backup Created", - "encryptedBackupCreatedSuccessfully": "Encrypted backup created successfully", - "backupCreationFailed": "Backup creation failed", - "databaseMigration": "Database Migration", - "exportForMigration": "Export for Migration", - "exportDatabaseForHardwareMigration": "Export database as SQLite file with decrypted data for migration to new hardware", - "exportDatabase": "Export SQLite Database", - "exporting": "Exporting...", - "exportCreated": "SQLite Export Created", - "exportContainsDecryptedData": "SQLite export contains decrypted data - keep secure!", - "databaseExportedSuccessfully": "SQLite database exported successfully", - "databaseExportFailed": "SQLite database export failed", - "importFromMigration": "Import from Migration", - "importDatabaseFromAnotherSystem": "Import SQLite database from another system or hardware", - "importDatabase": "Import SQLite Database", - "importing": "Importing...", - "selectedFile": "Selected SQLite File", - "importWillReplaceExistingData": "SQLite import will replace existing data - backup recommended!", - "pleaseSelectImportFile": "Please select a SQLite import file", - "databaseImportedSuccessfully": "SQLite database imported successfully", - "databaseImportFailed": "SQLite database import failed", - "manageEncryptionAndBackups": "Manage encryption keys, database security, and backup operations", - "activeSecurityFeatures": "Currently active security measures and protections", - "deviceBindingTechnology": "Advanced hardware-based key protection technology", - "backupAndRecovery": "Secure backup creation and database recovery options", - "crossSystemDataTransfer": "Export and import databases across different systems", - "noMigrationNeeded": "No migration needed", - "encryptionKey": "Encryption Key", - "keyProtection": "Key Protection", - "active": "Active", - "legacy": "Legacy", - "dataStatus": "Data Status", - "encrypted": "Encrypted", - "needsMigration": "Needs Migration", - "ready": "Ready", - "initializeEncryption": "Initialize Encryption", - "initialize": "Initialize", - "test": "Test", - "migrate": "Migrate", - "backup": "Backup", - "createBackup": "Create Backup", - "exportImport": "Export/Import", - "export": "Export", - "import": "Import", - "passwordRequired": "Password required", - "confirmExport": "Confirm Export", - "exportDescription": "Export SSH hosts and credentials as SQLite file", - "importDescription": "Import SQLite file with incremental merge (skips duplicates)", - "criticalWarning": "Critical Warning", - "cannotDisablePasswordLoginWithoutOIDC": "Cannot disable password login without OIDC configured! You must configure OIDC authentication before disabling password login, or you will lose access to Termix.", - "confirmDisablePasswordLogin": "Are you sure you want to disable password login? Make sure OIDC is properly configured and working before proceeding, or you will lose access to your Termix instance.", - "passwordLoginDisabled": "Password login disabled successfully", - "passwordLoginAndRegistrationDisabled": "Password login and new account registration disabled successfully", - "requiresPasswordLogin": "Requires password login enabled", - "passwordLoginDisabledWarning": "Password login is disabled. Ensure OIDC is properly configured or you will not be able to log in to Termix.", - "oidcRequiredWarning": "CRITICAL: Password login is disabled. If you reset or misconfigure OIDC, you will lose all access to Termix and brick your instance. Only proceed if you are absolutely certain.", - "confirmDisableOIDCWarning": "WARNING: You are about to disable OIDC while password login is also disabled. This will brick your Termix instance and you will lose all access. Are you absolutely sure you want to proceed?", - "failedToUpdatePasswordLoginStatus": "Failed to update password login status", - "loadingSessions": "Loading sessions...", - "noActiveSessions": "No active sessions found.", - "device": "Device", - "user": "User", - "lastActive": "Last Active", - "expires": "Expires", - "revoked": "Revoked", - "revokeAllUserSessionsTitle": "Revoke all sessions for this user", - "revokeAll": "Revoke All", - "linkOidcToPasswordAccount": "Link OIDC Account to Password Account", - "linkOidcToPasswordAccountDescription": "Link {{username}} (OIDC user) to an existing password account. This will enable dual authentication for the password account.", - "linkOidcWarningTitle": "Warning: OIDC User Data Will Be Deleted", - "linkOidcWarningDescription": "This action will:", - "linkOidcActionDeleteUser": "Delete the OIDC user account and all their data", - "linkOidcActionAddCapability": "Add OIDC login capability to the target password account", - "linkOidcActionDualAuth": "Allow the password account to login with both password and OIDC", - "passwordMinLength": "Password must be at least 6 characters", - "currentRoles": "Current Roles", - "noRolesAssigned": "No roles assigned", - "assignNewRole": "Assign New Role" + "keepEncryptionKeysSecure": "Assegureu la seguretat de les dades: feu còpies de seguretat dels fitxers de la base de dades i de la configuració del servidor periòdicament. Per migrar a un servidor nou, definiu la variable d'entorn DB_ENCRYPTION_KEY al nou entorn o manteniu el mateix nom d'amfitrió i estructura de directoris.", + "loadingEncryptionStatus": "S'està carregant l'estat del xifratge...", + "testMigrationDescription": "Verificar que les dades existents es puguin migrar de manera segura a un format xifrat sense modificar realment cap dada", + "serverMigrationGuide": "Guia de migració de servidors", + "migrationInstructions": "Per migrar dades xifrades a un servidor nou: 1) Feu una còpia de seguretat dels fitxers de la base de dades, 2) Definiu la variable d'entorn DB_ENCRYPTION_KEY=\"la-vostra-clau\" al servidor nou, 3) Restaureu els fitxers de la base de dades", + "environmentProtection": "Protecció del medi ambient", + "environmentProtectionDesc": "Protegeix les claus de xifratge basades en la informació de l'entorn del servidor (nom d'amfitrió, rutes, etc.), migrables mitjançant variables d'entorn", + "verificationCompleted": "Verificació de compatibilitat completada: no s'han modificat les dades", + "verificationInProgress": "Verificació completada", + "dataMigrationCompleted": "Migració de dades completada correctament!", + "verificationFailed": "La verificació de compatibilitat ha fallat", + "migrationFailed": "La migració ha fallat", + "runningVerification": "Executant la verificació de compatibilitat...", + "startingMigration": "Iniciant la migració...", + "hardwareFingerprintSecurity": "Seguretat d'empremtes dactilars de maquinari", + "hardwareBoundEncryption": "Xifratge vinculat a maquinari actiu", + "masterKeysNowProtectedByHardwareFingerprint": "Les claus mestres ara estan protegides per empremtes digitals de maquinari reals en lloc de variables d'entorn.", + "cpuSerialNumberDetection": "Detecció del número de sèrie de la CPU", + "motherboardUuidIdentification": "Identificació de l'UUID de la placa base", + "diskSerialNumberVerification": "Verificació del número de sèrie del disc", + "biosSerialNumberCheck": "Comprovació del número de sèrie de la BIOS", + "stableMacAddressFiltering": "Filtratge estable d'adreces MAC", + "databaseFileEncryption": "Xifratge de fitxers de base de dades", + "dualLayerProtection": "Protecció de doble capa activa", + "bothFieldAndFileEncryptionActive": "Ara el xifratge a nivell de camp i a nivell de fitxer està actiu per a una seguretat màxima.", + "fieldLevelAes256Encryption": "Xifratge AES-256 a nivell de camp per a dades sensibles", + "fileLevelDatabaseEncryption": "Xifratge de bases de dades a nivell de fitxer amb vinculació de maquinari", + "hardwareBoundFileKeys": "Claus de xifratge de fitxers vinculades al maquinari", + "automaticEncryptedBackups": "Creació automàtica de còpies de seguretat xifrades", + "createEncryptedBackup": "Crea una còpia de seguretat xifrada", + "creatingBackup": "Creant còpia de seguretat...", + "backupCreated": "Còpia de seguretat creada", + "encryptedBackupCreatedSuccessfully": "Còpia de seguretat xifrada creada correctament", + "backupCreationFailed": "No s'ha pogut crear la còpia de seguretat", + "databaseMigration": "Migració de bases de dades", + "exportForMigration": "Exportació per a la migració", + "exportDatabaseForHardwareMigration": "Exporta la base de dades com a fitxer SQLite amb dades desxifrades per a la migració al nou maquinari", + "exportDatabase": "Exporta la base de dades SQLite", + "exporting": "Exportant...", + "exportCreated": "Exportació SQLite creada", + "exportContainsDecryptedData": "L'exportació SQLite conté dades desxifrades: mantingueu-les segures!", + "databaseExportedSuccessfully": "La base de dades SQLite s'ha exportat correctament", + "databaseExportFailed": "L'exportació de la base de dades SQLite ha fallat", + "importFromMigration": "Importar des de la migració", + "importDatabaseFromAnotherSystem": "Importar una base de dades SQLite des d'un altre sistema o maquinari", + "importDatabase": "Importa la base de dades SQLite", + "importing": "Important...", + "selectedFile": "Fitxer SQLite seleccionat", + "importWillReplaceExistingData": "La importació de SQLite substituirà les dades existents; es recomana fer una còpia de seguretat.", + "pleaseSelectImportFile": "Si us plau, seleccioneu un fitxer d'importació SQLite.", + "databaseImportedSuccessfully": "La base de dades SQLite s'ha importat correctament", + "databaseImportFailed": "La importació de la base de dades SQLite ha fallat", + "manageEncryptionAndBackups": "Gestionar les claus de xifratge, la seguretat de la base de dades i les operacions de còpia de seguretat", + "activeSecurityFeatures": "Mesures de seguretat i proteccions actualment actives", + "deviceBindingTechnology": "Tecnologia avançada de protecció de claus basada en maquinari", + "backupAndRecovery": "Opcions de creació segura de còpies de seguretat i recuperació de bases de dades", + "crossSystemDataTransfer": "Exportar i importar bases de dades entre diferents sistemes", + "noMigrationNeeded": "No cal migració", + "encryptionKey": "Clau de xifratge", + "keyProtection": "Protecció de claus", + "active": "Actiu", + "legacy": "Llegat", + "dataStatus": "Estat de les dades", + "encrypted": "Xifrat", + "needsMigration": "Necessita migració", + "ready": "Llest", + "initializeEncryption": "Inicialitzar el xifratge", + "initialize": "Inicialitzar", + "test": "Prova", + "migrate": "Migrar", + "backup": "Còpia de seguretat", + "createBackup": "Crea una còpia de seguretat", + "exportImport": "Exportació/Importació", + "export": "Exporta", + "import": "Importa", + "passwordRequired": "Cal una contrasenya", + "confirmExport": "Confirma l'exportació", + "exportDescription": "Exporta els hosts i les credencials SSH com a fitxer SQLite", + "importDescription": "Importa un fitxer SQLite amb una fusió incremental (omet els duplicats)", + "criticalWarning": "Avís crític", + "cannotDisablePasswordLoginWithoutOIDC": "No es pot desactivar l'inici de sessió amb contrasenya sense configurar l'OIDC. Heu de configurar l'autenticació OIDC abans de desactivar l'inici de sessió amb contrasenya o perdreu l'accés a Termix.", + "confirmDisablePasswordLogin": "Esteu segur que voleu desactivar l'inici de sessió amb contrasenya? Assegureu-vos que l'OIDC estigui configurat correctament i funcioni abans de continuar, o perdreu l'accés a la vostra instància de Termix.", + "passwordLoginDisabled": "Inici de sessió amb contrasenya desactivat correctament", + "passwordLoginAndRegistrationDisabled": "L'inici de sessió amb contrasenya i el registre de compte nou s'han desactivat correctament.", + "requiresPasswordLogin": "Requereix que l'inici de sessió amb contrasenya estigui habilitat", + "passwordLoginDisabledWarning": "L'inici de sessió amb contrasenya està desactivat. Assegureu-vos que l'OIDC estigui configurat correctament o no podreu iniciar sessió a Termix.", + "oidcRequiredWarning": "CRÍTIC: L'inici de sessió amb contrasenya està desactivat. Si restableixes o configures incorrectament l'OIDC, perdràs tot l'accés a Termix i bloquejaràs la teva instància. Només continua si n'estàs absolutament segur.", + "confirmDisableOIDCWarning": "AVÍS: Esteu a punt de desactivar OIDC mentre l'inici de sessió amb contrasenya també està desactivat. Això bloquejarà la vostra instància de Termix i perdreu tot l'accés. Esteu completament segur que voleu continuar?", + "failedToUpdatePasswordLoginStatus": "No s'ha pogut actualitzar l'estat d'inici de sessió de la contrasenya", + "loadingSessions": "S'estan carregant les sessions...", + "noActiveSessions": "No s'han trobat sessions actives.", + "device": "Dispositiu", + "user": "Usuari", + "lastActive": "Últim actiu", + "expires": "Caduca", + "revoked": "Revocat", + "revokeAllUserSessionsTitle": "Revoca totes les sessions per a aquest usuari", + "revokeAll": "Revoca-ho tot", + "linkOidcToPasswordAccount": "Enllaça el compte OIDC al compte de contrasenya", + "linkOidcToPasswordAccountDescription": "Enllaça {{username}} (usuari OIDC) a un compte de contrasenya existent. Això habilitarà la doble autenticació per al compte de contrasenya.", + "linkOidcWarningTitle": "Avís: Les dades d'usuari de l'OIDC s'eliminaran", + "linkOidcWarningDescription": "Aquesta acció permetrà:", + "linkOidcActionDeleteUser": "Suprimeix el compte d'usuari OIDC i totes les seves dades", + "linkOidcActionAddCapability": "Afegeix la capacitat d'inici de sessió OIDC al compte de contrasenya de destinació", + "linkOidcActionDualAuth": "Permet que el compte de contrasenya iniciï sessió tant amb contrasenya com amb OIDC", + "passwordMinLength": "La contrasenya ha de tenir com a mínim 6 caràcters", + "currentRoles": "Rols actuals", + "noRolesAssigned": "Sense rols assignats", + "assignNewRole": "Assigna un nou rol" }, "hosts": { - "title": "Host Manager", - "sshHosts": "SSH Hosts", - "noHosts": "No SSH Hosts", - "noHostsMessage": "You haven't added any SSH hosts yet. Click \"Add Host\" to get started.", - "loadingHosts": "Loading hosts...", - "failedToLoadHosts": "Failed to load hosts", - "retry": "Retry", - "refresh": "Refresh", - "optional": "Optional", - "hostsCount": "{{count}} hosts", - "importJson": "Import JSON", - "importing": "Importing...", - "importJsonTitle": "Import SSH Hosts from JSON", - "importJsonDesc": "Upload a JSON file to bulk import multiple SSH hosts (max 100).", - "downloadSample": "Download Sample", - "formatGuide": "Format Guide", - "exportCredentialWarning": "Warning: Host \"{{name}}\" uses credential authentication. The exported file will not include the credential data and will need to be manually reconfigured after import. Do you want to continue?", - "exportSensitiveDataWarning": "Warning: Host \"{{name}}\" contains sensitive authentication data (password/SSH key). The exported file will include this data in plaintext. Please keep the file secure and delete it after use. Do you want to continue?", - "uncategorized": "Uncategorized", - "confirmDelete": "Are you sure you want to delete \"{{name}}\" ?", - "failedToDeleteHost": "Failed to delete host", - "failedToExportHost": "Failed to export host. Please ensure you're logged in and have access to the host data.", - "jsonMustContainHosts": "JSON must contain a \"hosts\" array or be an array of hosts", - "noHostsInJson": "No hosts found in JSON file", - "maxHostsAllowed": "Maximum 100 hosts allowed per import", - "importCompleted": "Import completed: {{success}} successful, {{failed}} failed", - "importFailed": "Import failed", - "importError": "Import error", - "failedToImportJson": "Failed to import JSON file", - "connectionDetails": "Connection Details", - "organization": "Organization", - "ipAddress": "IP Address", + "title": "Gestor d'amfitrions", + "sshHosts": "Amfitrions SSH", + "noHosts": "Sense amfitrions SSH", + "noHostsMessage": "Encara no has afegit cap amfitrió SSH. Fes clic a \"Afegeix amfitrió\" per començar.", + "loadingHosts": "S'estan carregant els amfitrions...", + "failedToLoadHosts": "No s'han pogut carregar els amfitrions", + "retry": "Torna-ho a intentar", + "refresh": "Actualitza", + "optional": "Opcional", + "hostsCount": "amfitrions {{count}}", + "importJson": "Importa JSON", + "importing": "Important...", + "importJsonTitle": "Importa hosts SSH des de JSON", + "importJsonDesc": "Puja un fitxer JSON per importar de manera massiva diversos hosts SSH (màxim 100).", + "downloadSample": "Descarrega la mostra", + "formatGuide": "Guia de formats", + "exportCredentialWarning": "Avís: L'amfitrió \"{{name}}\" utilitza l'autenticació de credencials. El fitxer exportat no inclourà les dades de credencials i caldrà reconfigurar-lo manualment després de la importació. Voleu continuar?", + "exportSensitiveDataWarning": "Avís: L'amfitrió \"{{name}}\" conté dades d'autenticació sensibles (contrasenya/clau SSH). El fitxer exportat inclourà aquestes dades en text sense format. Si us plau, manteniu el fitxer segur i suprimiu-lo després d'utilitzar-lo. Voleu continuar?", + "uncategorized": "Sense categoria", + "confirmDelete": "Esteu segur que voleu suprimir \"{{name}}\"?", + "failedToDeleteHost": "No s'ha pogut suprimir l'amfitrió", + "failedToExportHost": "No s'ha pogut exportar l'amfitrió. Assegureu-vos que heu iniciat la sessió i que teniu accés a les dades de l'amfitrió.", + "jsonMustContainHosts": "El fitxer JSON ha de contenir una matriu \"hosts\" o ser una matriu d'amfitrions.", + "noHostsInJson": "No s'han trobat hosts al fitxer JSON", + "maxHostsAllowed": "Màxim de 100 amfitrions permesos per importació", + "importCompleted": "Importació completada: {{success}} correcta, {{failed}} fallida", + "importFailed": "La importació ha fallat", + "importError": "Error d'importació", + "failedToImportJson": "No s'ha pogut importar el fitxer JSON", + "connectionDetails": "Detalls de la connexió", + "organization": "Organització", + "ipAddress": "Adreça IP", "port": "Port", - "name": "Name", - "username": "Username", - "folder": "Folder", - "tags": "Tags", - "pin": "Pin", + "name": "Nom", + "username": "Nom d'usuari", + "folder": "Carpeta", + "tags": "Etiquetes", + "pin": "Fixar", "notes": "Notes", - "expirationDate": "Expiration Date", - "passwordRequired": "Password is required when using password authentication", - "sshKeyRequired": "SSH Private Key is required when using key authentication", - "keyTypeRequired": "Key Type is required when using key authentication", - "mustSelectValidSshConfig": "Must select a valid SSH configuration from the list", - "addHost": "Add Host", - "editHost": "Edit Host", - "cloneHost": "Clone Host", - "updateHost": "Update Host", - "hostUpdatedSuccessfully": "Host \"{{name}}\" updated successfully!", - "hostAddedSuccessfully": "Host \"{{name}}\" added successfully!", - "hostDeletedSuccessfully": "Host \"{{name}}\" deleted successfully!", - "failedToSaveHost": "Failed to save host. Please try again.", - "savingHost": "Saving host...", - "updatingHost": "Updating host...", - "cloningHost": "Cloning host...", - "enableTerminal": "Enable Terminal", - "enableTerminalDesc": "Enable/disable host visibility in Terminal tab", - "enableTunnel": "Enable Tunnel", - "enableTunnelDesc": "Enable/disable host visibility in Tunnel tab", - "enableFileManager": "Enable File Manager", - "enableFileManagerDesc": "Enable/disable host visibility in File Manager tab", - "enableDockerDesc": "Enable/disable host visibility in Docker tab", - "enableDocker": "Enable Docker", - "defaultPath": "Default Path", - "defaultPathDesc": "Default directory when opening file manager for this host", - "tunnelConnections": "Tunnel Connections", - "connection": "Connection", - "remove": "Remove", - "sourcePort": "Source Port", - "sourcePortDesc": " (Source refers to the Current Connection Details in the General tab)", - "endpointPort": "Endpoint Port", - "endpointSshConfig": "Endpoint SSH Configuration", - "tunnelForwardDescription": "This tunnel will forward traffic from port {{sourcePort}} on the source machine (current connection details in general tab) to port {{endpointPort}} on the endpoint machine.", - "maxRetries": "Max Retries", - "maxRetriesDescription": "Maximum number of retry attempts for tunnel connection.", - "retryInterval": "Retry Interval (seconds)", - "retryIntervalDescription": "Time to wait between retry attempts.", - "autoStartContainer": "Auto Start on Container Launch", - "autoStartDesc": "Automatically start this tunnel when the container launches", - "addConnection": "Add Tunnel Connection", - "sshpassRequired": "Sshpass Required For Password Authentication", - "sshpassRequiredDesc": "For password authentication in tunnels, sshpass must be installed on the system.", - "otherInstallMethods": "Other installation methods:", - "debianUbuntuEquivalent": "(Debian/Ubuntu) or the equivalent for your OS.", - "or": "or", + "expirationDate": "Data de caducitat", + "passwordRequired": "Cal una contrasenya quan s'utilitza l'autenticació amb contrasenya", + "sshKeyRequired": "Cal una clau privada SSH quan s'utilitza l'autenticació per clau", + "keyTypeRequired": "El tipus de clau és obligatori quan s'utilitza l'autenticació de clau", + "mustSelectValidSshConfig": "Cal seleccionar una configuració SSH vàlida de la llista.", + "addHost": "Afegeix amfitrió", + "editHost": "Edita l'amfitrió", + "cloneHost": "Host clonat", + "updateHost": "Actualitza l'amfitrió", + "hostUpdatedSuccessfully": "L'amfitrió \"{{name}}\" s'ha actualitzat correctament!", + "hostAddedSuccessfully": "L'amfitrió \"{{name}}\" s'ha afegit correctament!", + "hostDeletedSuccessfully": "L'amfitrió \"{{name}}\" s'ha suprimit correctament!", + "failedToSaveHost": "No s'ha pogut desar l'amfitrió. Torna-ho a provar.", + "savingHost": "Desant l'amfitrió...", + "updatingHost": "Actualitzant l'amfitrió...", + "cloningHost": "Clonació de l'amfitrió...", + "enableTerminal": "Habilita el terminal", + "enableTerminalDesc": "Activa/desactiva la visibilitat de l'amfitrió a la pestanya Terminal", + "enableTunnel": "Habilita el túnel", + "enableTunnelDesc": "Activa/desactiva la visibilitat de l'amfitrió a la pestanya Túnel", + "enableFileManager": "Habilita el gestor de fitxers", + "enableFileManagerDesc": "Activa/desactiva la visibilitat de l'amfitrió a la pestanya Gestor de fitxers", + "enableDockerDesc": "Activa/desactiva la visibilitat de l'amfitrió a la pestanya Docker", + "enableDocker": "Activa Docker", + "defaultPath": "Camí predeterminat", + "defaultPathDesc": "Directori per defecte en obrir el gestor de fitxers per a aquest amfitrió", + "tunnelConnections": "Connexions de túnels", + "connection": "Connexió", + "remove": "Elimina", + "sourcePort": "Port d'origen", + "sourcePortDesc": " (La font fa referència als detalls de la connexió actual a la pestanya General)", + "endpointPort": "Port de punt final", + "endpointSshConfig": "Configuració SSH del punt final", + "tunnelForwardDescription": "Aquest túnel redirigirà el trànsit des del port {{sourcePort}} de la màquina d'origen (detalls de la connexió actual a la pestanya general) fins al port {{endpointPort}} de la màquina final.", + "maxRetries": "Màxim d'intents", + "maxRetriesDescription": "Nombre màxim d'intents de reintent per a la connexió del túnel.", + "retryInterval": "Interval de reintent (segons)", + "retryIntervalDescription": "Temps d'espera entre intents de reintent.", + "autoStartContainer": "Inici automàtic en llançar contenidors", + "autoStartDesc": "Inicia automàticament aquest túnel quan s'iniciï el contenidor", + "addConnection": "Afegeix una connexió de túnel", + "sshpassRequired": "Sshpass necessari per a l'autenticació amb contrasenya", + "sshpassRequiredDesc": "Per a l'autenticació amb contrasenya en túnels, cal instal·lar sshpass al sistema.", + "otherInstallMethods": "Altres mètodes d'instal·lació:", + "debianUbuntuEquivalent": "(Debian/Ubuntu) o l'equivalent per al vostre sistema operatiu.", + "or": "o", "centosRhelFedora": "CentOS/RHEL/Fedora", "macos": "macOS", - "windows": "Windows", - "sshServerConfigRequired": "SSH Server Configuration Required", - "sshServerConfigDesc": "For tunnel connections, the SSH server must be configured to allow port forwarding:", - "gatewayPortsYes": "to bind remote ports to all interfaces", - "allowTcpForwardingYes": "to enable port forwarding", - "permitRootLoginYes": "if using root user for tunneling", - "editSshConfig": "Edit /etc/ssh/sshd_config and restart SSH: sudo systemctl restart sshd", - "upload": "Upload", - "authentication": "Authentication", - "password": "Password", - "key": "Key", - "credential": "Credential", - "none": "None", - "selectCredential": "Select Credential", - "selectCredentialPlaceholder": "Choose a credential...", - "credentialRequired": "Credential is required when using credential authentication", - "credentialDescription": "Selecting a credential will overwrite the current username and use the credential's authentication details.", - "cannotChangeAuthAsSharedUser": "Cannot change authentication as shared user", - "sshPrivateKey": "SSH Private Key", - "keyPassword": "Key Password", - "keyType": "Key Type", - "autoDetect": "Auto-detect", + "windows": "Finestres", + "sshServerConfigRequired": "Configuració del servidor SSH requerida", + "sshServerConfigDesc": "Per a connexions de túnel, el servidor SSH ha d'estar configurat per permetre el reenviament de ports:", + "gatewayPortsYes": "per vincular ports remots a totes les interfícies", + "allowTcpForwardingYes": "per habilitar el reenviament de ports", + "permitRootLoginYes": "si s'utilitza l'usuari root per a la tunelització", + "editSshConfig": "Editeu /etc/ssh/sshd_config i reinicieu SSH: sudo systemctl restart sshd", + "upload": "Pujada", + "authentication": "Autenticació", + "password": "Contrasenya", + "key": "Clau", + "credential": "Credencial", + "none": "Cap", + "selectCredential": "Selecciona la credencial", + "selectCredentialPlaceholder": "Trieu una credencial...", + "credentialRequired": "Cal tenir credencials quan s'utilitza l'autenticació de credencials", + "credentialDescription": "Si seleccioneu una credencial, se sobreescriurà el nom d'usuari actual i s'utilitzaran les dades d'autenticació de la credencial.", + "cannotChangeAuthAsSharedUser": "No es pot canviar l'autenticació com a usuari compartit", + "sshPrivateKey": "Clau privada SSH", + "keyPassword": "Contrasenya clau", + "keyType": "Tipus de clau", + "autoDetect": "Detecció automàtica", "rsa": "RSA", "ed25519": "ED25519", "ecdsaNistP256": "ECDSA NIST P-256", @@ -885,1015 +885,1015 @@ "dsa": "DSA", "rsaSha2256": "RSA SHA2-256", "rsaSha2512": "RSA SHA2-512", - "uploadFile": "Upload File", - "pasteKey": "Paste Key", - "updateKey": "Update Key", - "existingKey": "Existing Key (click to change)", - "existingCredential": "Existing Credential (click to change)", - "addTagsSpaceToAdd": "add tags (space to add)", + "uploadFile": "Puja el fitxer", + "pasteKey": "Enganxa la clau", + "updateKey": "Actualitza la clau", + "existingKey": "Clau existent (feu clic per canviar-la)", + "existingCredential": "Credencial existent (feu clic per canviar-la)", + "addTagsSpaceToAdd": "afegir etiquetes (espai per afegir)", "terminalBadge": "Terminal", - "tunnelBadge": "Tunnel", - "fileManagerBadge": "File Manager", + "tunnelBadge": "Túnel", + "fileManagerBadge": "Gestor de fitxers", "general": "General", "terminal": "Terminal", - "tunnel": "Tunnel", - "fileManager": "File Manager", - "serverStats": "Server Stats", - "hostViewer": "Host Viewer", - "enableServerStats": "Enable Server Stats", - "enableServerStatsDesc": "Enable/disable server statistics collection for this host", - "displayItems": "Display Items", - "displayItemsDesc": "Choose which metrics to display on the server stats page", - "enableCpu": "CPU Usage", - "enableMemory": "Memory Usage", - "enableDisk": "Disk Usage", - "enableNetwork": "Network Statistics (Coming Soon)", - "enableProcesses": "Process Count (Coming Soon)", - "enableUptime": "Uptime (Coming Soon)", - "enableHostname": "Hostname (Coming Soon)", - "enableOs": "Operating System (Coming Soon)", - "customCommands": "Custom Commands (Coming Soon)", - "customCommandsDesc": "Define custom shutdown and reboot commands for this server", - "shutdownCommand": "Shutdown Command", - "rebootCommand": "Reboot Command", - "confirmRemoveFromFolder": "Are you sure you want to remove \"{{name}}\" from folder \"{{folder}}\"? The host will be moved to \"No Folder\".", - "removedFromFolder": "Host \"{{name}}\" removed from folder successfully", - "failedToRemoveFromFolder": "Failed to remove host from folder", - "folderRenamed": "Folder \"{{oldName}}\" renamed to \"{{newName}}\" successfully", - "failedToRenameFolder": "Failed to rename folder", - "editFolderAppearance": "Edit Folder Appearance", - "editFolderAppearanceDesc": "Customize the color and icon for folder", - "folderColor": "Folder Color", - "folderIcon": "Folder Icon", - "preview": "Preview", - "folderAppearanceUpdated": "Folder appearance updated successfully", - "failedToUpdateFolderAppearance": "Failed to update folder appearance", - "deleteAllHostsInFolder": "Delete All Hosts in Folder", - "confirmDeleteAllHostsInFolder": "Are you sure you want to delete all {{count}} hosts in folder \"{{folder}}\"? This action cannot be undone.", - "allHostsInFolderDeleted": "Deleted {{count}} hosts from folder \"{{folder}}\" successfully", - "failedToDeleteHostsInFolder": "Failed to delete hosts in folder", - "movedToFolder": "Host \"{{name}}\" moved to \"{{folder}}\" successfully", - "failedToMoveToFolder": "Failed to move host to folder", - "clickToRenameFolder": "Click to rename folder", - "renameFolder": "Rename folder", - "removeFromFolder": "Remove from folder \"{{folder}}\"", - "editHostTooltip": "Edit host", - "deleteHostTooltip": "Delete host", - "exportHostTooltip": "Export host", - "cloneHostTooltip": "Clone host", - "clickToEditHost": "Click to edit host", - "dragToMoveBetweenFolders": "Drag to move between folders", - "exportedHostConfig": "Exported host configuration for {{name}}", - "openTerminal": "Open Terminal", - "openFileManager": "Open File Manager", - "openTunnels": "Open Tunnels", - "openServerDetails": "Open Server Details", - "statistics": "Statistics", - "enabledWidgets": "Enabled Widgets", - "openServerStats": "Open Server Stats", - "enabledWidgetsDesc": "Select which statistics widgets to display for this host", - "monitoringConfiguration": "Monitoring Configuration", - "monitoringConfigurationDesc": "Configure how often server statistics and status are checked", - "statusCheckEnabled": "Enable Status Monitoring", - "statusCheckEnabledDesc": "Check if the server is online or offline", - "statusCheckInterval": "Status Check Interval", - "statusCheckIntervalDesc": "How often to check if host is online (5s - 1h)", - "metricsEnabled": "Enable Metrics Monitoring", - "metricsEnabledDesc": "Collect CPU, RAM, disk, and other system statistics", - "metricsInterval": "Metrics Collection Interval", - "metricsIntervalDesc": "How often to collect server statistics (5s - 1h)", - "intervalSeconds": "seconds", - "intervalMinutes": "minutes", - "intervalValidation": "Monitoring intervals must be between 5 seconds and 1 hour (3600 seconds)", - "monitoringDisabled": "Server monitoring is disabled for this host", - "enableMonitoring": "Enable monitoring in Host Manager → Statistics tab", - "monitoringDisabledBadge": "Monitoring Off", - "statusMonitoring": "Status", - "metricsMonitoring": "Metrics", - "terminalCustomization": "Terminal Customization", - "appearance": "Appearance", - "behavior": "Behavior", - "advanced": "Advanced", - "themePreview": "Theme Preview", - "theme": "Theme", - "selectTheme": "Select theme", - "chooseColorTheme": "Choose a color theme for the terminal", - "fontFamily": "Font Family", - "selectFont": "Select font", - "selectFontDesc": "Select the font to use in the terminal", - "fontSize": "Font Size", - "fontSizeValue": "Font Size: {{value}}px", - "adjustFontSize": "Adjust the terminal font size", - "letterSpacing": "Letter Spacing", - "letterSpacingValue": "Letter Spacing: {{value}}px", - "adjustLetterSpacing": "Adjust spacing between characters", - "lineHeight": "Line Height", - "lineHeightValue": "Line Height: {{value}}", - "adjustLineHeight": "Adjust spacing between lines", - "cursorStyle": "Cursor Style", - "selectCursorStyle": "Select cursor style", - "cursorStyleBlock": "Block", - "cursorStyleUnderline": "Underline", + "tunnel": "Túnel", + "fileManager": "Gestor de fitxers", + "serverStats": "Estadístiques del servidor", + "hostViewer": "Visualitzador de l'amfitrió", + "enableServerStats": "Habilita les estadístiques del servidor", + "enableServerStatsDesc": "Activa/desactiva la recopilació d'estadístiques del servidor per a aquest amfitrió", + "displayItems": "Mostrar elements", + "displayItemsDesc": "Trieu quines mètriques voleu mostrar a la pàgina d'estadístiques del servidor", + "enableCpu": "Ús de la CPU", + "enableMemory": "Ús de memòria", + "enableDisk": "Ús del disc", + "enableNetwork": "Estadístiques de xarxa (properament)", + "enableProcesses": "Recompte de processos (properament)", + "enableUptime": "Temps de funcionament (properament)", + "enableHostname": "Nom de l'amfitrió (properament)", + "enableOs": "Sistema operatiu (properament)", + "customCommands": "Comandes personalitzades (properament)", + "customCommandsDesc": "Defineix ordres d'apagada i reinici personalitzades per a aquest servidor", + "shutdownCommand": "Ordre d'apagada", + "rebootCommand": "Ordre de reinici", + "confirmRemoveFromFolder": "Esteu segur que voleu eliminar \"{{name}}\" de la carpeta \"{{folder}}\"? L'amfitrió es mourà a \"Sense carpeta\".", + "removedFromFolder": "L'amfitrió \"{{name}}\" s'ha eliminat correctament de la carpeta.", + "failedToRemoveFromFolder": "No s'ha pogut eliminar l'amfitrió de la carpeta.", + "folderRenamed": "La carpeta \"{{oldName}}\" s'ha canviat correctament a \"{{newName}}\"", + "failedToRenameFolder": "No s'ha pogut canviar el nom de la carpeta", + "editFolderAppearance": "Edita l'aspecte de la carpeta", + "editFolderAppearanceDesc": "Personalitza el color i la icona de la carpeta", + "folderColor": "Color de la carpeta", + "folderIcon": "Icona de carpeta", + "preview": "Vista prèvia", + "folderAppearanceUpdated": "L'aspecte de la carpeta s'ha actualitzat correctament", + "failedToUpdateFolderAppearance": "No s'ha pogut actualitzar l'aspecte de la carpeta", + "deleteAllHostsInFolder": "Suprimeix tots els hosts de la carpeta", + "confirmDeleteAllHostsInFolder": "Esteu segur que voleu suprimir tots els hosts {{count}} de la carpeta \"{{folder}}\"? Aquesta acció no es pot desfer.", + "allHostsInFolderDeleted": "S'han suprimit correctament els hosts {{count}} de la carpeta \"{{folder}}\".", + "failedToDeleteHostsInFolder": "No s'han pogut suprimir els hosts de la carpeta", + "movedToFolder": "L'amfitrió \"{{name}}\" s'ha mogut correctament a \"{{folder}}\"", + "failedToMoveToFolder": "No s'ha pogut moure l'amfitrió a la carpeta", + "clickToRenameFolder": "Feu clic per canviar el nom de la carpeta", + "renameFolder": "Canvia el nom de la carpeta", + "removeFromFolder": "Elimina de la carpeta \"{{folder}}\"", + "editHostTooltip": "Edita l'amfitrió", + "deleteHostTooltip": "Suprimeix l'amfitrió", + "exportHostTooltip": "Exporta l'amfitrió", + "cloneHostTooltip": "Hoste clonat", + "clickToEditHost": "Feu clic per editar l'amfitrió", + "dragToMoveBetweenFolders": "Arrossega per moure't entre carpetes", + "exportedHostConfig": "Configuració d'amfitrió exportada per a {{name}}", + "openTerminal": "Obre el terminal", + "openFileManager": "Obre el gestor de fitxers", + "openTunnels": "Túnels oberts", + "openServerDetails": "Obre els detalls del servidor", + "statistics": "Estadístiques", + "enabledWidgets": "Widgets activats", + "openServerStats": "Estadístiques del servidor obert", + "enabledWidgetsDesc": "Seleccioneu els widgets d'estadístiques que voleu mostrar per a aquest amfitrió", + "monitoringConfiguration": "Configuració de monitorització", + "monitoringConfigurationDesc": "Configura la freqüència amb què es comproven les estadístiques i l'estat del servidor", + "statusCheckEnabled": "Activa la supervisió d'estat", + "statusCheckEnabledDesc": "Comprova si el servidor està en línia o fora de línia", + "statusCheckInterval": "Interval de comprovació d'estat", + "statusCheckIntervalDesc": "Amb quina freqüència cal comprovar si l'amfitrió està en línia (5 segons - 1 hora)", + "metricsEnabled": "Activa la supervisió de mètriques", + "metricsEnabledDesc": "Recopila estadístiques de CPU, RAM, disc i altres estadístiques del sistema", + "metricsInterval": "Interval de recopilació de mètriques", + "metricsIntervalDesc": "Amb quina freqüència s'han de recopilar estadístiques del servidor (5 segons - 1 hora)", + "intervalSeconds": "segons", + "intervalMinutes": "minuts", + "intervalValidation": "Els intervals de monitorització han d'estar entre 5 segons i 1 hora (3600 segons)", + "monitoringDisabled": "La supervisió del servidor està desactivada per a aquest amfitrió.", + "enableMonitoring": "Activa la supervisió a la pestanya Gestor d'amfitrions → Estadístiques", + "monitoringDisabledBadge": "Monitorització desactivada", + "statusMonitoring": "Estat", + "metricsMonitoring": "Mètriques", + "terminalCustomization": "Personalització del terminal", + "appearance": "Aspecte", + "behavior": "Comportament", + "advanced": "Avançat", + "themePreview": "Vista prèvia del tema", + "theme": "Tema", + "selectTheme": "Selecciona un tema", + "chooseColorTheme": "Trieu un tema de color per al terminal", + "fontFamily": "Família tipogràfica", + "selectFont": "Selecciona la font", + "selectFontDesc": "Seleccioneu la font que voleu utilitzar al terminal", + "fontSize": "Mida de la lletra", + "fontSizeValue": "Mida de la lletra: {{value}}px", + "adjustFontSize": "Ajusta la mida de la lletra del terminal", + "letterSpacing": "Espaiat entre lletres", + "letterSpacingValue": "Espaiat entre lletres: {{value}}px", + "adjustLetterSpacing": "Ajusta l'espai entre caràcters", + "lineHeight": "Alçada de la línia", + "lineHeightValue": "Alçada de la línia: {{value}}", + "adjustLineHeight": "Ajusta l'espaiat entre línies", + "cursorStyle": "Estil del cursor", + "selectCursorStyle": "Selecciona l'estil del cursor", + "cursorStyleBlock": "Bloc", + "cursorStyleUnderline": "Subratllat", "cursorStyleBar": "Bar", - "chooseCursorAppearance": "Choose the cursor appearance", - "cursorBlink": "Cursor Blink", - "enableCursorBlink": "Enable cursor blinking animation", - "scrollbackBuffer": "Scrollback Buffer", - "scrollbackBufferValue": "Scrollback Buffer: {{value}} lines", - "scrollbackBufferDesc": "Number of lines to keep in scrollback history", - "bellStyle": "Bell Style", - "selectBellStyle": "Select bell style", - "bellStyleNone": "None", - "bellStyleSound": "Sound", + "chooseCursorAppearance": "Trieu l'aspecte del cursor", + "cursorBlink": "Parpelleig del cursor", + "enableCursorBlink": "Activa l'animació de parpelleig del cursor", + "scrollbackBuffer": "Buffer de desplaçament enrere", + "scrollbackBufferValue": "Buffer de desplaçament enrere: {{value}} línies", + "scrollbackBufferDesc": "Nombre de línies que es mantindran a l'historial de desplaçament enrere", + "bellStyle": "Estil de campana", + "selectBellStyle": "Selecciona l'estil de la campana", + "bellStyleNone": "Cap", + "bellStyleSound": "So", "bellStyleVisual": "Visual", - "bellStyleBoth": "Both", - "bellStyleDesc": "How to handle terminal bell (BEL character, \\x07). Programs trigger this when completing tasks, encountering errors, or for notifications. \"Sound\" plays an audio beep, \"Visual\" flashes the screen briefly, \"Both\" does both, \"None\" disables bell alerts.", - "rightClickSelectsWord": "Right Click Selects Word", - "rightClickSelectsWordDesc": "Right-clicking selects the word under cursor", - "fastScrollModifier": "Fast Scroll Modifier", - "selectModifier": "Select modifier", + "bellStyleBoth": "Tots dos", + "bellStyleDesc": "Com gestionar el timbre del terminal (caràcter BEL, \\x07). Els programes activen això en completar tasques, trobar errors o per a notificacions. \"So\" reprodueix un bip d'àudio, \"Visual\" fa parpellejar la pantalla breument, \"Tots dos\" fa ambdues coses, \"Cap\" desactiva les alertes de timbre.", + "rightClickSelectsWord": "Clic dret Selecciona Word", + "rightClickSelectsWordDesc": "Si feu clic amb el botó dret, seleccioneu la paraula que hi ha sota el cursor.", + "fastScrollModifier": "Modificador de desplaçament ràpid", + "selectModifier": "Selecciona el modificador", "modifierAlt": "Alt", "modifierCtrl": "Ctrl", - "modifierShift": "Shift", - "fastScrollModifierDesc": "Modifier key for fast scrolling", - "fastScrollSensitivity": "Fast Scroll Sensitivity", - "fastScrollSensitivityValue": "Fast Scroll Sensitivity: {{value}}", - "fastScrollSensitivityDesc": "Scroll speed multiplier when modifier is held", - "minimumContrastRatio": "Minimum Contrast Ratio", - "minimumContrastRatioValue": "Minimum Contrast Ratio: {{value}}", - "minimumContrastRatioDesc": "Automatically adjust colors for better readability", - "sshAgentForwarding": "SSH Agent Forwarding", - "sshAgentForwardingDesc": "Forward SSH authentication agent to remote host", - "backspaceMode": "Backspace Mode", - "selectBackspaceMode": "Select backspace mode", - "backspaceModeNormal": "Normal (DEL)", + "modifierShift": "Majúscules", + "fastScrollModifierDesc": "Tecla modificadora per a desplaçament ràpid", + "fastScrollSensitivity": "Sensibilitat de desplaçament ràpid", + "fastScrollSensitivityValue": "Sensibilitat de desplaçament ràpid: {{value}}", + "fastScrollSensitivityDesc": "Multiplicador de velocitat de desplaçament quan es manté premut el modificador", + "minimumContrastRatio": "Relació de contrast mínima", + "minimumContrastRatioValue": "Relació de contrast mínima: {{value}}", + "minimumContrastRatioDesc": "Ajusta automàticament els colors per a una millor llegibilitat", + "sshAgentForwarding": "Reenviament d'agents SSH", + "sshAgentForwardingDesc": "Reenvia l'agent d'autenticació SSH a l'amfitrió remot", + "backspaceMode": "Mode de retrocés", + "selectBackspaceMode": "Selecciona el mode de retrocés", + "backspaceModeNormal": "Normal (SUP)", "backspaceModeControlH": "Control-H (^H)", - "backspaceModeDesc": "Backspace key behavior for compatibility", - "startupSnippet": "Startup Snippet", - "selectSnippet": "Select snippet", - "searchSnippets": "Search snippets...", - "snippetNone": "None", - "noneAuthTitle": "Keyboard-Interactive Authentication", - "noneAuthDescription": "This authentication method will use keyboard-interactive authentication when connecting to the SSH server.", - "noneAuthDetails": "Keyboard-interactive authentication allows the server to prompt you for credentials during connection. This is useful for servers that require multi-factor authentication or if you do not want to save credentials locally.", - "forceKeyboardInteractive": "Force Keyboard-Interactive", - "forceKeyboardInteractiveDesc": "Forces the use of keyboard-interactive authentication. This is sometimes required for servers that use Two-Factor Authentication (TOTP/2FA).", - "overrideCredentialUsername": "Override Credential Username", - "overrideCredentialUsernameDesc": "Use a different username than the one stored in the credential. This allows you to use the same credential with different usernames.", - "jumpHosts": "Jump Hosts", - "jumpHostsDescription": "Jump hosts (also known as bastion hosts) allow you to connect to a target server through one or more intermediate servers. This is useful for accessing servers behind firewalls or in private networks.", - "jumpHostChain": "Jump Host Chain", - "addJumpHost": "Add Jump Host", - "selectServer": "Select Server", - "searchServers": "Search servers...", - "noServerFound": "No server found", - "jumpHostsOrder": "Connections will be made in order: Jump Host 1 → Jump Host 2 → ... → Target Server", - "socks5Proxy": "SOCKS5 Proxy", - "socks5Description": "Configure SOCKS5 proxy for SSH connection. All traffic will be routed through the specified proxy server.", - "enableSocks5": "Enable SOCKS5 Proxy", - "enableSocks5Description": "Use SOCKS5 proxy for this SSH connection", - "socks5Host": "Proxy Host", - "socks5Port": "Proxy Port", - "socks5Username": "Proxy Username", - "socks5Password": "Proxy Password", - "socks5UsernameOptional": "Optional: leave empty if proxy doesn't require authentication", - "socks5PasswordOptional": "Optional: leave empty if proxy doesn't require authentication", - "socks5ProxyChain": "Proxy Chain", - "socks5ProxyChainDescription": "Configure a chain of SOCKS proxies. Each proxy in the chain will connect through the previous one.", - "socks5ProxyMode": "Proxy Mode", - "socks5UseSingleProxy": "Use Single Proxy", - "socks5UseProxyChain": "Use Proxy Chain", - "socks5UsePreset": "Use Saved Preset", - "socks5SelectPreset": "Select Preset", - "socks5ManagePresets": "Manage Presets", + "backspaceModeDesc": "Comportament de la tecla Retrocés per a la compatibilitat", + "startupSnippet": "Fragment d'inici", + "selectSnippet": "Selecciona un fragment", + "searchSnippets": "Fragments de cerca...", + "snippetNone": "Cap", + "noneAuthTitle": "Autenticació interactiva amb teclat", + "noneAuthDescription": "Aquest mètode d'autenticació utilitzarà l'autenticació interactiva del teclat quan es connecti al servidor SSH.", + "noneAuthDetails": "L'autenticació interactiva amb teclat permet que el servidor us demani credencials durant la connexió. Això és útil per a servidors que requereixen autenticació multifactor o si no voleu desar les credencials localment.", + "forceKeyboardInteractive": "Forçar la interacció del teclat", + "forceKeyboardInteractiveDesc": "Força l'ús de l'autenticació interactiva amb teclat. De vegades, això és necessari per a servidors que utilitzen l'autenticació de dos factors (TOTP/2FA).", + "overrideCredentialUsername": "Substitueix les credencials i el nom d'usuari", + "overrideCredentialUsernameDesc": "Feu servir un nom d'usuari diferent del que està emmagatzemat a la credencial. Això us permet utilitzar la mateixa credencial amb noms d'usuari diferents.", + "jumpHosts": "Amfitrions de salt", + "jumpHostsDescription": "Els hosts de salt (també coneguts com a hosts bastion) permeten connectar-se a un servidor de destinació a través d'un o més servidors intermedis. Això és útil per accedir a servidors darrere de tallafocs o en xarxes privades.", + "jumpHostChain": "Cadena d'amfitrió de salt", + "addJumpHost": "Afegeix l'amfitrió de salt", + "selectServer": "Selecciona el servidor", + "searchServers": "Cerca servidors...", + "noServerFound": "No s'ha trobat cap servidor", + "jumpHostsOrder": "Les connexions es faran en aquest ordre: Jump Host 1 → Jump Host 2 → ... → Servidor de destinació", + "socks5Proxy": "Proxy SOCKS5", + "socks5Description": "Configura el servidor intermediari SOCKS5 per a la connexió SSH. Tot el trànsit es dirigirà a través del servidor intermediari especificat.", + "enableSocks5": "Habilita el servidor intermediari SOCKS5", + "enableSocks5Description": "Utilitza el proxy SOCKS5 per a aquesta connexió SSH", + "socks5Host": "Amfitrió intermediari", + "socks5Port": "Port de proxy", + "socks5Username": "Nom d'usuari del proxy", + "socks5Password": "Contrasenya del servidor intermediari", + "socks5UsernameOptional": "Opcional: deixeu-ho en blanc si el proxy no requereix autenticació.", + "socks5PasswordOptional": "Opcional: deixeu-ho en blanc si el proxy no requereix autenticació.", + "socks5ProxyChain": "Cadena de proxy", + "socks5ProxyChainDescription": "Configura una cadena de proxies SOCKS. Cada proxi de la cadena es connectarà a través de l'anterior.", + "socks5ProxyMode": "Mode proxy", + "socks5UseSingleProxy": "Utilitza un únic proxy", + "socks5UseProxyChain": "Utilitza la cadena de proxy", + "socks5UsePreset": "Utilitza la configuració predefinida desada", + "socks5SelectPreset": "Selecciona la configuració predefinida", + "socks5ManagePresets": "Gestiona els preajustos", "socks5ProxyNode": "Proxy {{number}}", - "socks5AddProxy": "Add Proxy to Chain", - "socks5RemoveProxy": "Remove Proxy", - "socks5ProxyType": "Proxy Type", - "socks5SaveAsPreset": "Save as Preset", - "socks5SavePresetTitle": "Save Proxy Chain as Preset", - "socks5SavePresetDescription": "Save the current proxy chain configuration as a reusable preset", - "socks5PresetName": "Preset Name", - "socks5PresetDescription": "Description (optional)", - "socks5PresetCreated": "Proxy chain preset created", - "socks5PresetUpdated": "Proxy chain preset updated", - "socks5PresetDeleted": "Proxy chain preset deleted", - "socks5PresetSaved": "Preset \"{{name}}\" saved successfully", - "socks5PresetSaveError": "Failed to save preset", - "socks5PresetNameRequired": "Preset name is required", - "socks5EmptyChainError": "Cannot save an empty proxy chain", - "socks5ProxyChainEmpty": "Add at least one proxy to the chain", - "socks5HostDescription": "Hostname or IP address of the SOCKS proxy server", - "socks5PortDescription": "Port number of the SOCKS proxy server (default: 1080)", - "addProxyNode": "Add Proxy Node", - "noProxyNodes": "No proxy nodes configured. Click 'Add Proxy Node' to add one.", - "proxyNode": "Proxy Node", - "proxyType": "Proxy Type", - "quickActions": "Quick Actions", - "quickActionsDescription": "Quick actions allow you to create custom buttons that execute SSH snippets on this server. These buttons will appear at the top of the Server Stats page for quick access.", - "quickActionsList": "Quick Actions List", - "addQuickAction": "Add Quick Action", - "quickActionName": "Action name", - "noSnippetFound": "No snippet found", - "quickActionsOrder": "Quick action buttons will appear in the order listed above on the Server Stats page", - "advancedAuthSettings": "Advanced Authentication Settings", - "sudoPasswordAutoFill": "Sudo Password Auto-Fill", - "sudoPasswordAutoFillDesc": "Automatically offer to insert SSH password when sudo prompts for password", - "sudoPassword": "Sudo Password", - "sudoPasswordDesc": "Optional password for sudo commands (useful with key authentication)", - "socks4": "SOCKS4", - "socks5": "SOCKS5", - "executeSnippetOnConnect": "Execute a snippet when the terminal connects", + "socks5AddProxy": "Afegeix un proxy a la cadena", + "socks5RemoveProxy": "Elimina el proxy", + "socks5ProxyType": "Tipus de proxy", + "socks5SaveAsPreset": "Desa com a predefinició", + "socks5SavePresetTitle": "Desa la cadena de proxy com a predefinida", + "socks5SavePresetDescription": "Desa la configuració actual de la cadena de proxy com a predefinició reutilitzable", + "socks5PresetName": "Nom predefinit", + "socks5PresetDescription": "Descripció (opcional)", + "socks5PresetCreated": "S'ha creat un valor predefinit de la cadena de proxy", + "socks5PresetUpdated": "Predefinició de la cadena de proxy actualitzada", + "socks5PresetDeleted": "S'ha suprimit el valor predefinit de la cadena de proxy", + "socks5PresetSaved": "El preajust \"{{name}}\" s'ha desat correctament", + "socks5PresetSaveError": "No s'ha pogut desar la configuració predefinida", + "socks5PresetNameRequired": "Cal un nom predefinit", + "socks5EmptyChainError": "No es pot desar una cadena de proxy buida", + "socks5ProxyChainEmpty": "Afegeix com a mínim un proxy a la cadena", + "socks5HostDescription": "Nom d'amfitrió o adreça IP del servidor intermediari SOCKS", + "socks5PortDescription": "Número de port del servidor intermediari SOCKS (per defecte: 1080)", + "addProxyNode": "Afegeix un node proxy", + "noProxyNodes": "No hi ha cap node proxy configurat. Feu clic a \"Afegeix un node proxy\" per afegir-ne un.", + "proxyNode": "Node intermediari", + "proxyType": "Tipus de proxy", + "quickActions": "Accions ràpides", + "quickActionsDescription": "Les accions ràpides us permeten crear botons personalitzats que executen fragments SSH en aquest servidor. Aquests botons apareixeran a la part superior de la pàgina Estadístiques del servidor per a un accés ràpid.", + "quickActionsList": "Llista d'accions ràpides", + "addQuickAction": "Afegeix una acció ràpida", + "quickActionName": "Nom de l'acció", + "noSnippetFound": "No s'ha trobat cap fragment", + "quickActionsOrder": "Els botons d'acció ràpida apareixeran en l'ordre indicat anteriorment a la pàgina d'estadístiques del servidor.", + "advancedAuthSettings": "Configuració d'autenticació avançada", + "sudoPasswordAutoFill": "Emplenament automàtic de contrasenya de Sudo", + "sudoPasswordAutoFillDesc": "Ofereix automàticament la inserció d'una contrasenya SSH quan sudo demani la contrasenya", + "sudoPassword": "Contrasenya de Sudo", + "sudoPasswordDesc": "Contrasenya opcional per a les ordres sudo (útil amb l'autenticació de clau)", + "socks4": "MITJONS4", + "socks5": "MITJONS5", + "executeSnippetOnConnect": "Executa un fragment quan el terminal es connecti", "autoMosh": "Auto-MOSH", - "autoMoshDesc": "Automatically run MOSH command on connect", - "moshCommand": "MOSH Command", - "moshCommandDesc": "The MOSH command to execute", - "environmentVariables": "Environment Variables", - "environmentVariablesDesc": "Set custom environment variables for the terminal session", - "variableName": "Variable name", - "variableValue": "Value", - "addVariable": "Add Variable", + "autoMoshDesc": "Executa automàticament l'ordre MOSH en connectar-se", + "moshCommand": "Comandament MOSH", + "moshCommandDesc": "L'ordre MOSH a executar", + "environmentVariables": "Variables d'entorn", + "environmentVariablesDesc": "Estableix variables d'entorn personalitzades per a la sessió de terminal", + "variableName": "Nom de la variable", + "variableValue": "Valor", + "addVariable": "Afegeix una variable", "docker": "Docker", - "openDocker": "Open Docker", - "notEnabled": "Docker is not enabled for this host. Enable it in Host Settings to use Docker features.", - "validating": "Validating Docker...", + "openDocker": "Obre Docker", + "notEnabled": "Docker no està habilitat per a aquest amfitrió. Activeu-lo a la configuració de l'amfitrió per utilitzar les funcions de Docker.", + "validating": "Validant Docker...", "error": "Error", - "errorCode": "Error code: {{code}}", + "errorCode": "Codi d'error: {{code}}", "version": "Docker v{{version}}", - "current": "Current", - "used_limit": "Used / Limit", - "percentage": "Percentage", - "input": "Input", - "output": "Output", - "read": "Read", - "write": "Write", + "current": "Actual", + "used_limit": "Utilitzat / Límit", + "percentage": "Percentatge", + "input": "Entrada", + "output": "Sortida", + "read": "Llegir", + "write": "Escriure", "pids": "PIDs", "id": "ID", - "state": "State", - "console": "Console", - "containerMustBeRunning": "Container must be running to connect to console", - "authenticationRequired": "Authentication required", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", + "state": "Estat", + "console": "Consola", + "containerMustBeRunning": "El contenidor ha d'estar en execució per connectar-se a la consola.", + "authenticationRequired": "Cal autenticació", + "connectedTo": "Connectat a {{containerName}}", + "disconnected": "Desconnectat", + "consoleError": "Error de consola", "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to console", - "disconnectedFromContainer": "Disconnected from container console.", - "containerNotRunning": "Container is not running", - "startContainerToAccess": "Start the container to access the console", - "selectShell": "Select shell", + "failedToConnect": "No s'ha pogut connectar a la consola", + "disconnectedFromContainer": "Desconnectat de la consola del contenidor.", + "containerNotRunning": "El contenidor no està en funcionament", + "startContainerToAccess": "Inicieu el contenidor per accedir a la consola", + "selectShell": "Selecciona l'intèrpret d'ordres", "bash": "Bash", "sh": "Sh", - "ash": "Ash", - "connecting": "Connecting...", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click Connect to start an interactive shell", - "connectingTo": "Connecting to {{containerName}}...", - "containerMustBeRunningToViewStats": "Container must be running to view stats", - "failedToFetchStats": "Failed to fetch stats", - "noContainersFound": "No containers found", - "noContainersFoundHint": "Start by creating containers on your server", - "searchPlaceholder": "Search by name, image, or ID...", - "filterByStatusPlaceholder": "Filter by status", - "allContainersCount": "All ({{count}})", + "ash": "Cendra", + "connecting": "Connectant...", + "connect": "Connecta", + "disconnect": "Desconnecta", + "notConnected": "No connectat", + "clickToConnect": "Feu clic a Connecta per iniciar una shell interactiva", + "connectingTo": "Connectant a {{containerName}}...", + "containerMustBeRunningToViewStats": "El contenidor ha d'estar en execució per veure les estadístiques", + "failedToFetchStats": "No s'han pogut obtenir les estadístiques", + "noContainersFound": "No s'han trobat contenidors", + "noContainersFoundHint": "Comença creant contenidors al teu servidor", + "searchPlaceholder": "Cerca per nom, imatge o identificador...", + "filterByStatusPlaceholder": "Filtra per estat", + "allContainersCount": "Tot ({{count}})", "statusCount": "{{status}} ({{count}})", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container: {{error}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container: {{error}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container: {{error}}", - "containerUnpaused": "Container {{name}} unpaused", - "containerPaused": "Container {{name}} paused", - "failedToTogglePauseContainer": "Failed to {{action}} container: {{error}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container: {{error}}", - "image": "Image:", + "noContainersMatchFilters": "No hi ha contenidors que coincideixin amb els vostres filtres", + "noContainersMatchFiltersHint": "Prova d'ajustar la cerca o el filtre", + "containerStarted": "Contenidor {{name}} iniciat", + "failedToStartContainer": "No s'ha pogut iniciar el contenidor: {{error}}", + "containerStopped": "El contenidor {{name}} s'ha aturat", + "failedToStopContainer": "No s'ha pogut aturar el contenidor: {{error}}", + "containerRestarted": "El contenidor {{name}} s'ha reiniciat", + "failedToRestartContainer": "No s'ha pogut reiniciar el contenidor: {{error}}", + "containerUnpaused": "Contenidor {{name}} reactivat", + "containerPaused": "Contenidor {{name}} en pausa", + "failedToTogglePauseContainer": "No s'ha pogut {{action}} contenidor: {{error}}", + "containerRemoved": "Contenidor {{name}} eliminat", + "failedToRemoveContainer": "No s'ha pogut eliminar el contenidor: {{error}}", + "image": "Imatge:", "idLabel": "ID:", "ports": "Ports:", - "noPorts": "None", - "created": "Created:", - "start": "Start", - "stop": "Stop", - "unpause": "Unpause", - "pause": "Pause", - "restart": "Restart", - "removeContainer": "Remove Container", - "confirmRemoveContainer": "Are you sure you want to remove container \"{{name}}\"?", - "runningContainerWarning": "Warning: This container is currently running and will be force-removed.", - "removing": "Removing:", - "containerNotFound": "Container not found", - "backToList": "Back to list", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "failedToFetchLogs": "Failed to fetch logs: {{error}}", - "failedToDownloadLogs": "Failed to download logs: {{error}}", - "linesToShow": "Lines to show", - "last50Lines": "Last 50 lines", - "last100Lines": "Last 100 lines", - "last500Lines": "Last 500 lines", - "last1000Lines": "Last 1000 lines", - "allLogs": "All logs", - "showTimestamps": "Show Timestamps", - "autoRefresh": "Auto Refresh", - "filterLogsPlaceholder": "Filter logs...", - "noLogsAvailable": "No logs available" + "noPorts": "Cap", + "created": "Creat:", + "start": "Inici", + "stop": "Atura", + "unpause": "Reprendre la pausa", + "pause": "Pausa", + "restart": "Reinicia", + "removeContainer": "Elimina el contenidor", + "confirmRemoveContainer": "Esteu segur que voleu eliminar el contenidor \"{{name}}\"?", + "runningContainerWarning": "Avís: Aquest contenidor està en execució i s'eliminarà de manera forçada.", + "removing": "Eliminació de:", + "containerNotFound": "No s'ha trobat el contenidor", + "backToList": "Torna a la llista", + "logs": "Registres", + "stats": "Estadístiques", + "consoleTab": "Consola", + "failedToFetchLogs": "No s'han pogut obtenir els registres: {{error}}", + "failedToDownloadLogs": "No s'han pogut descarregar els registres: {{error}}", + "linesToShow": "Línies per mostrar", + "last50Lines": "Últimes 50 línies", + "last100Lines": "Últimes 100 línies", + "last500Lines": "Últimes 500 línies", + "last1000Lines": "Últimes 1000 línies", + "allLogs": "Tots els registres", + "showTimestamps": "Mostra les marques de temps", + "autoRefresh": "Actualització automàtica", + "filterLogsPlaceholder": "Filtra els registres...", + "noLogsAvailable": "No hi ha registres disponibles" }, "terminal": { "title": "Terminal", - "connect": "Connect to Host", - "disconnect": "Disconnect", - "clear": "Clear", - "copy": "Copy", - "paste": "Paste", - "find": "Find", - "fullscreen": "Fullscreen", - "splitHorizontal": "Split Horizontal", - "splitVertical": "Split Vertical", - "closePanel": "Close Panel", - "reconnect": "Reconnect", - "sessionEnded": "Session Ended", - "connectionLost": "Connection Lost", + "connect": "Connecta't a l'amfitrió", + "disconnect": "Desconnecta", + "clear": "Clar", + "copy": "Còpia", + "paste": "Enganxa", + "find": "Troba", + "fullscreen": "Pantalla completa", + "splitHorizontal": "Dividir horitzontalment", + "splitVertical": "Dividir verticalment", + "closePanel": "Tanca el panell", + "reconnect": "Reconnecta", + "sessionEnded": "Sessió finalitzada", + "connectionLost": "Connexió perduda", "error": "ERROR: {{message}}", - "disconnected": "Disconnected", - "connectionClosed": "Connection closed", - "connectionError": "Connection error: {{message}}", - "connected": "Connected", - "sshConnected": "SSH connection established", - "authError": "Authentication failed: {{message}}", - "unknownError": "Unknown error occurred", - "messageParseError": "Failed to parse server message", - "websocketError": "WebSocket connection error", - "connecting": "Connecting...", - "reconnecting": "Reconnecting... ({{attempt}}/{{max}})", - "reconnected": "Reconnected successfully", - "maxReconnectAttemptsReached": "Maximum reconnection attempts reached", - "connectionTimeout": "Connection timeout", + "disconnected": "Desconnectat", + "connectionClosed": "Connexió tancada", + "connectionError": "Error de connexió: {{message}}", + "connected": "Connectat", + "sshConnected": "Connexió SSH establerta", + "authError": "L'autenticació ha fallat: {{message}}", + "unknownError": "S'ha produït un error desconegut", + "messageParseError": "No s'ha pogut analitzar el missatge del servidor", + "websocketError": "Error de connexió de WebSocket", + "connecting": "Connectant...", + "reconnecting": "Reconnectant... ({{attempt}}/{{max}})", + "reconnected": "S'ha reconnectat correctament", + "maxReconnectAttemptsReached": "S'ha arribat al màxim d'intents de reconnexió", + "connectionTimeout": "Temps d'espera de connexió", "terminalTitle": "Terminal - {{host}}", "terminalWithPath": "Terminal - {{host}}:{{path}}", - "runTitle": "Running {{command}} - {{host}}", - "totpRequired": "Two-Factor Authentication Required", - "totpCodeLabel": "Verification Code", + "runTitle": "Executant {{command}} - {{host}}", + "totpRequired": "Cal autenticació de dos factors", + "totpCodeLabel": "Codi de verificació", "totpPlaceholder": "000000", - "totpVerify": "Verify", - "sudoPasswordPopupTitle": "Insert Password?", - "sudoPasswordPopupHint": "Press Enter to insert, Esc to dismiss", - "sudoPasswordPopupConfirm": "Insert", - "sudoPasswordPopupDismiss": "Dismiss" + "totpVerify": "Verifica", + "sudoPasswordPopupTitle": "Voleu inserir la contrasenya?", + "sudoPasswordPopupHint": "Premeu Intro per inserir, Esc per tancar", + "sudoPasswordPopupConfirm": "Insereix", + "sudoPasswordPopupDismiss": "Ignora" }, "fileManager": { - "title": "File Manager", - "file": "File", - "folder": "Folder", - "connectToSsh": "Connect to SSH to use file operations", - "uploadFile": "Upload File", - "downloadFile": "Download", - "extractArchive": "Extract Archive", - "extractingArchive": "Extracting {{name}}...", - "archiveExtractedSuccessfully": "{{name}} extracted successfully", - "extractFailed": "Extract failed", - "compressFile": "Compress File", - "compressFiles": "Compress Files", - "compressFilesDesc": "Compress {{count}} items into an archive", - "archiveName": "Archive Name", - "enterArchiveName": "Enter archive name...", - "compressionFormat": "Compression Format", - "selectedFiles": "Selected files", - "andMoreFiles": "and {{count}} more...", - "compress": "Compress", - "compressingFiles": "Compressing {{count}} items into {{name}}...", - "filesCompressedSuccessfully": "{{name}} created successfully", - "compressFailed": "Compression failed", - "edit": "Edit", - "preview": "Preview", - "previous": "Previous", - "next": "Next", - "pageXOfY": "Page {{current}} of {{total}}", - "zoomOut": "Zoom Out", - "zoomIn": "Zoom In", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "renameItem": "Rename Item", - "deleteItem": "Delete Item", - "currentPath": "Current Path", - "uploadFileTitle": "Upload File", - "maxFileSize": "Max: 1GB (JSON) / 5GB (Binary) - Large files supported", - "removeFile": "Remove File", - "clickToSelectFile": "Click to select a file", - "chooseFile": "Choose File", - "uploading": "Uploading...", - "downloading": "Downloading...", - "uploadingFile": "Uploading {{name}}...", - "uploadingLargeFile": "Uploading large file {{name}} ({{size}})...", - "downloadingFile": "Downloading {{name}}...", - "creatingFile": "Creating {{name}}...", - "creatingFolder": "Creating {{name}}...", - "deletingItem": "Deleting {{type}} {{name}}...", - "renamingItem": "Renaming {{type}} {{oldName}} to {{newName}}...", - "createNewFile": "Create New File", - "fileName": "File Name", - "creating": "Creating...", - "createFile": "Create File", - "createNewFolder": "Create New Folder", - "folderName": "Folder Name", - "createFolder": "Create Folder", - "warningCannotUndo": "Warning: This action cannot be undone", - "itemPath": "Item Path", - "thisIsDirectory": "This is a directory (will delete recursively)", - "deleting": "Deleting...", - "currentPathLabel": "Current Path", - "newName": "New Name", - "thisIsDirectoryRename": "This is a directory", - "renaming": "Renaming...", - "fileUploadedSuccessfully": "File \"{{name}}\" uploaded successfully", - "failedToUploadFile": "Failed to upload file", - "fileDownloadedSuccessfully": "File \"{{name}}\" downloaded successfully", - "failedToDownloadFile": "Failed to download file", - "noFileContent": "No file content received", - "filePath": "File Path", - "fileCreatedSuccessfully": "File \"{{name}}\" created successfully", - "failedToCreateFile": "Failed to create file", - "folderCreatedSuccessfully": "Folder \"{{name}}\" created successfully", - "failedToCreateFolder": "Failed to create folder", - "failedToCreateItem": "Failed to create item", - "operationFailed": "{{operation}} operation failed for {{name}}: {{error}}", - "failedToResolveSymlink": "Failed to resolve symlink", - "itemDeletedSuccessfully": "{{type}} deleted successfully", - "itemsDeletedSuccessfully": "{{count}} items deleted successfully", - "failedToDeleteItems": "Failed to delete items", - "dragFilesToUpload": "Drop files here to upload", - "emptyFolder": "This folder is empty", - "itemCount": "{{count}} items", - "selectedCount": "{{count}} selected", - "searchFiles": "Search files...", - "upload": "Upload", - "selectHostToStart": "Select a host to start file management", - "failedToConnect": "Failed to connect to SSH", - "failedToLoadDirectory": "Failed to load directory", - "noSSHConnection": "No SSH connection available", - "enterFolderName": "Enter folder name:", - "enterFileName": "Enter file name:", - "copy": "Copy", - "cut": "Cut", - "paste": "Paste", - "copyPath": "Copy Path", - "copyPaths": "Copy Paths", - "delete": "Delete", - "properties": "Properties", - "refresh": "Refresh", - "downloadFiles": "Download {{count}} files to Browser", - "copyFiles": "Copy {{count}} items", - "cutFiles": "Cut {{count}} items", - "deleteFiles": "Delete {{count}} items", - "filesCopiedToClipboard": "{{count}} items copied to clipboard", - "filesCutToClipboard": "{{count}} items cut to clipboard", - "pathCopiedToClipboard": "Path copied to clipboard", - "pathsCopiedToClipboard": "{{count}} paths copied to clipboard", - "failedToCopyPath": "Failed to copy path to clipboard", - "movedItems": "Moved {{count}} items", - "failedToDeleteItem": "Failed to delete item", - "itemRenamedSuccessfully": "{{type}} renamed successfully", - "failedToRenameItem": "Failed to rename item", - "download": "Download", - "permissions": "Permissions", - "size": "Size", - "modified": "Modified", - "path": "Path", - "confirmDelete": "Are you sure you want to delete {{name}}?", - "uploadSuccess": "File uploaded successfully", - "uploadFailed": "File upload failed", - "downloadSuccess": "File downloaded successfully", - "downloadFailed": "File download failed", - "permissionDenied": "Permission denied", - "checkDockerLogs": "Check the Docker logs for detailed error information", - "internalServerError": "Internal server error occurred", - "serverError": "Server Error", + "title": "Gestor de fitxers", + "file": "Fitxer", + "folder": "Carpeta", + "connectToSsh": "Connecta't a SSH per utilitzar operacions amb fitxers", + "uploadFile": "Puja el fitxer", + "downloadFile": "Descarrega", + "extractArchive": "Extreure l'arxiu", + "extractingArchive": "Extraient {{name}}...", + "archiveExtractedSuccessfully": "{{name}} s'ha extret correctament", + "extractFailed": "L'extracció ha fallat", + "compressFile": "Comprimir fitxer", + "compressFiles": "Comprimir fitxers", + "compressFilesDesc": "Comprimir elements {{count}} en un arxiu", + "archiveName": "Nom de l'arxiu", + "enterArchiveName": "Introduïu el nom de l'arxiu...", + "compressionFormat": "Format de compressió", + "selectedFiles": "Fitxers seleccionats", + "andMoreFiles": "i {{count}} més...", + "compress": "Comprimir", + "compressingFiles": "Comprimint elements {{count}} en {{name}}...", + "filesCompressedSuccessfully": "{{name}} creat correctament", + "compressFailed": "La compressió ha fallat", + "edit": "Edita", + "preview": "Vista prèvia", + "previous": "Anterior", + "next": "Següent", + "pageXOfY": "Pàgina {{current}} de {{total}}", + "zoomOut": "Allunyar", + "zoomIn": "Ampliar zoom", + "newFile": "Fitxer nou", + "newFolder": "Nova carpeta", + "rename": "Canvia el nom", + "renameItem": "Canvia el nom de l'element", + "deleteItem": "Suprimeix l'element", + "currentPath": "Camí actual", + "uploadFileTitle": "Puja el fitxer", + "maxFileSize": "Màx.: 1 GB (JSON) / 5 GB (binari) - Fitxers grans compatibles", + "removeFile": "Elimina el fitxer", + "clickToSelectFile": "Feu clic per seleccionar un fitxer", + "chooseFile": "Trieu un fitxer", + "uploading": "S'està carregant...", + "downloading": "Descarregant...", + "uploadingFile": "S'està carregant {{name}}...", + "uploadingLargeFile": "S'està carregant un fitxer gran {{name}} ({{size}})...", + "downloadingFile": "Descarregant {{name}}...", + "creatingFile": "Creant {{name}}...", + "creatingFolder": "Creant {{name}}...", + "deletingItem": "Suprimint {{type}} {{name}}...", + "renamingItem": "Canviant el nom de {{type}} {{oldName}} a {{newName}}...", + "createNewFile": "Crea un fitxer nou", + "fileName": "Nom del fitxer", + "creating": "Creant...", + "createFile": "Crea un fitxer", + "createNewFolder": "Crea una carpeta nova", + "folderName": "Nom de la carpeta", + "createFolder": "Crea una carpeta", + "warningCannotUndo": "Avís: Aquesta acció no es pot desfer", + "itemPath": "Camí de l'element", + "thisIsDirectory": "Això és un directori (s'eliminarà recursivament)", + "deleting": "S'està suprimint...", + "currentPathLabel": "Camí actual", + "newName": "Nom nou", + "thisIsDirectoryRename": "Aquest és un directori", + "renaming": "Canviant el nom...", + "fileUploadedSuccessfully": "El fitxer \"{{name}}\" s'ha carregat correctament", + "failedToUploadFile": "No s'ha pogut carregar el fitxer", + "fileDownloadedSuccessfully": "Fitxer \"{{name}}\" descarregat correctament", + "failedToDownloadFile": "No s'ha pogut descarregar el fitxer", + "noFileContent": "No s'ha rebut cap contingut de fitxer", + "filePath": "Camí del fitxer", + "fileCreatedSuccessfully": "Fitxer \"{{name}}\" creat correctament", + "failedToCreateFile": "No s'ha pogut crear el fitxer", + "folderCreatedSuccessfully": "La carpeta \"{{name}}\" s'ha creat correctament", + "failedToCreateFolder": "No s'ha pogut crear la carpeta", + "failedToCreateItem": "No s'ha pogut crear l'element", + "operationFailed": "L'operació {{operation}} ha fallat per a {{name}}: {{error}}", + "failedToResolveSymlink": "No s'ha pogut resoldre l'enllaç simbòlic", + "itemDeletedSuccessfully": "{{type}} s'ha suprimit correctament", + "itemsDeletedSuccessfully": "{{count}} elements suprimits correctament", + "failedToDeleteItems": "No s'han pogut suprimir els elements", + "dragFilesToUpload": "Deixa anar els fitxers aquí per pujar-los", + "emptyFolder": "Aquesta carpeta està buida", + "itemCount": "{{count}} elements", + "selectedCount": "{{count}} seleccionat", + "searchFiles": "Cerca fitxers...", + "upload": "Pujada", + "selectHostToStart": "Seleccioneu un amfitrió per iniciar la gestió de fitxers", + "failedToConnect": "No s'ha pogut connectar a SSH", + "failedToLoadDirectory": "No s'ha pogut carregar el directori", + "noSSHConnection": "No hi ha connexió SSH disponible", + "enterFolderName": "Introduïu el nom de la carpeta:", + "enterFileName": "Introduïu el nom del fitxer:", + "copy": "Còpia", + "cut": "Tallar", + "paste": "Enganxa", + "copyPath": "Copia la ruta", + "copyPaths": "Copiar camins", + "delete": "Suprimeix", + "properties": "Propietats", + "refresh": "Actualitza", + "downloadFiles": "Baixa els fitxers {{count}} al navegador", + "copyFiles": "Copia {{count}} elements", + "cutFiles": "Retalla {{count}} elements", + "deleteFiles": "Suprimeix elements {{count}}", + "filesCopiedToClipboard": "{{count}} elements copiats al porta-retalls", + "filesCutToClipboard": "{{count}} elements retallats al porta-retalls", + "pathCopiedToClipboard": "La ruta s'ha copiat al porta-retalls", + "pathsCopiedToClipboard": "{{count}} camins copiats al porta-retalls", + "failedToCopyPath": "No s'ha pogut copiar la ruta al porta-retalls", + "movedItems": "Elements moguts {{count}}", + "failedToDeleteItem": "No s'ha pogut suprimir l'element", + "itemRenamedSuccessfully": "{{type}} canviat de nom correctament", + "failedToRenameItem": "No s'ha pogut canviar el nom de l'element", + "download": "Descarrega", + "permissions": "Permisos", + "size": "Mida", + "modified": "Modificat", + "path": "Camí", + "confirmDelete": "Esteu segur que voleu suprimir {{name}}?", + "uploadSuccess": "Fitxer carregat correctament", + "uploadFailed": "Ha fallat la càrrega del fitxer", + "downloadSuccess": "Fitxer descarregat correctament", + "downloadFailed": "Ha fallat la descàrrega del fitxer", + "permissionDenied": "Permís denegat", + "checkDockerLogs": "Consulteu els registres de Docker per obtenir informació detallada sobre els errors.", + "internalServerError": "S'ha produït un error intern del servidor", + "serverError": "Error del servidor", "error": "Error", - "requestFailed": "Request failed with status code", - "unknownFileError": "unknown", - "cannotReadFile": "Cannot read file", - "noSshSessionId": "No SSH session ID available", - "noFilePath": "No file path available", - "noCurrentHost": "No current host available", - "fileSavedSuccessfully": "File saved successfully", - "saveTimeout": "Save operation timed out. The file may have been saved successfully, but the operation took too long to complete. Check the Docker logs for confirmation.", - "failedToSaveFile": "Failed to save file", - "deletedSuccessfully": "deleted successfully", - "connectToServer": "Connect to a Server", - "selectServerToEdit": "Select a server from the sidebar to start editing files", - "fileOperations": "File Operations", - "confirmDeleteMessage": "Are you sure you want to delete {{name}}?", - "confirmDeleteSingleItem": "Are you sure you want to permanently delete \"{{name}}\"?", - "confirmDeleteMultipleItems": "Are you sure you want to permanently delete {{count}} items?", - "confirmDeleteMultipleItemsWithFolders": "Are you sure you want to permanently delete {{count}} items? This includes folders and their contents.", - "confirmDeleteFolder": "Are you sure you want to permanently delete the folder \"{{name}}\" and all its contents?", - "deleteDirectoryWarning": "This will delete the folder and all its contents.", - "actionCannotBeUndone": "This action cannot be undone.", - "permanentDeleteWarning": "This action cannot be undone. The item(s) will be permanently deleted from the server.", + "requestFailed": "La sol·licitud ha fallat amb el codi d'estat", + "unknownFileError": "desconegut", + "cannotReadFile": "No es pot llegir el fitxer", + "noSshSessionId": "No hi ha cap ID de sessió SSH disponible", + "noFilePath": "No hi ha cap ruta de fitxer disponible", + "noCurrentHost": "No hi ha cap amfitrió disponible actualment", + "fileSavedSuccessfully": "Fitxer desat correctament", + "saveTimeout": "S'ha esgotat el temps d'espera de l'operació de desar. Pot ser que el fitxer s'hagi desat correctament, però l'operació ha trigat massa a completar-se. Consulteu els registres de Docker per obtenir confirmació.", + "failedToSaveFile": "No s'ha pogut desar el fitxer", + "deletedSuccessfully": "suprimit correctament", + "connectToServer": "Connectar-se a un servidor", + "selectServerToEdit": "Seleccioneu un servidor de la barra lateral per començar a editar fitxers", + "fileOperations": "Operacions amb fitxers", + "confirmDeleteMessage": "Esteu segur que voleu suprimir {{name}}?", + "confirmDeleteSingleItem": "Esteu segur que voleu suprimir permanentment \"{{name}}\"?", + "confirmDeleteMultipleItems": "Esteu segur que voleu suprimir permanentment els elements {{count}} ?", + "confirmDeleteMultipleItemsWithFolders": "Esteu segur que voleu suprimir permanentment els elements {{count}} ? Això inclou les carpetes i el seu contingut.", + "confirmDeleteFolder": "Esteu segur que voleu suprimir permanentment la carpeta \"{{name}}\" i tot el seu contingut?", + "deleteDirectoryWarning": "Això eliminarà la carpeta i tot el seu contingut.", + "actionCannotBeUndone": "Aquesta acció no es pot desfer.", + "permanentDeleteWarning": "Aquesta acció no es pot desfer. Els elements s'eliminaran permanentment del servidor.", "recent": "Recent", - "pinned": "Pinned", - "folderShortcuts": "Folder Shortcuts", - "noRecentFiles": "No recent files.", - "noPinnedFiles": "No pinned files.", - "enterFolderPath": "Enter folder path", - "noShortcuts": "No shortcuts.", - "searchFilesAndFolders": "Search files and folders...", - "noFilesOrFoldersFound": "No files or folders found.", - "failedToConnectSSH": "Failed to connect to SSH", - "failedToReconnectSSH": "Failed to reconnect SSH session", - "failedToListFiles": "Failed to list files", - "fetchHomeDataTimeout": "Fetch home data timed out", - "sshStatusCheckTimeout": "SSH status check timed out", - "sshReconnectionTimeout": "SSH reconnection timed out", - "saveOperationTimeout": "Save operation timed out", - "cannotSaveFile": "Cannot save file", - "dragSystemFilesToUpload": "Drag system files here to upload", - "dragFilesToWindowToDownload": "Drag files outside window to download", - "openTerminalHere": "Open Terminal Here", - "run": "Run", - "saveToSystem": "Save as...", - "selectLocationToSave": "Select Location to Save", - "openTerminalInFolder": "Open Terminal in This Folder", - "openTerminalInFileLocation": "Open Terminal at File Location", + "pinned": "Fixat", + "folderShortcuts": "Dreceres de carpeta", + "noRecentFiles": "No hi ha fitxers recents.", + "noPinnedFiles": "No hi ha fitxers fixats.", + "enterFolderPath": "Introduïu la ruta de la carpeta", + "noShortcuts": "Sense dreceres.", + "searchFilesAndFolders": "Cerca fitxers i carpetes...", + "noFilesOrFoldersFound": "No s'han trobat fitxers ni carpetes.", + "failedToConnectSSH": "No s'ha pogut connectar a SSH", + "failedToReconnectSSH": "No s'ha pogut reconnectar la sessió SSH", + "failedToListFiles": "No s'han pogut llistar els fitxers", + "fetchHomeDataTimeout": "S'ha esgotat el temps d'espera per obtenir les dades de casa", + "sshStatusCheckTimeout": "S'ha esgotat el temps d'espera de la comprovació d'estat de SSH", + "sshReconnectionTimeout": "S'ha esgotat el temps d'espera de la reconnexió SSH", + "saveOperationTimeout": "S'ha esgotat el temps d'espera de l'operació de desar", + "cannotSaveFile": "No es pot desar el fitxer", + "dragSystemFilesToUpload": "Arrossega els fitxers del sistema aquí per carregar-los", + "dragFilesToWindowToDownload": "Arrossega els fitxers fora de la finestra per descarregar-los", + "openTerminalHere": "Obre el terminal aquí", + "run": "Corre", + "saveToSystem": "Desa com a...", + "selectLocationToSave": "Selecciona la ubicació per desar", + "openTerminalInFolder": "Obre el terminal en aquesta carpeta", + "openTerminalInFileLocation": "Obre el terminal a la ubicació del fitxer", "terminalWithPath": "Terminal - {{host}}:{{path}}", - "runningFile": "Running - {{file}}", - "onlyRunExecutableFiles": "Can only run executable files", - "noHostSelected": "No host selected", - "starred": "Starred", - "shortcuts": "Shortcuts", - "directories": "Directories", - "removedFromRecentFiles": "Removed \"{{name}}\" from recent files", - "removeFailed": "Remove failed", - "unpinnedSuccessfully": "Unpinned \"{{name}}\" successfully", - "unpinFailed": "Unpin failed", - "removedShortcut": "Removed shortcut \"{{name}}\"", - "removeShortcutFailed": "Remove shortcut failed", - "clearedAllRecentFiles": "Cleared all recent files", - "clearFailed": "Clear failed", - "removeFromRecentFiles": "Remove from recent files", - "clearAllRecentFiles": "Clear all recent files", - "unpinFile": "Unpin file", - "removeShortcut": "Remove shortcut", - "saveFilesToSystem": "Save {{count}} files as...", - "pinFile": "Pin file", - "addToShortcuts": "Add to shortcuts", - "downloadToDefaultLocation": "Download to default location", - "pasteFailed": "Paste failed", - "noUndoableActions": "No undoable actions", - "undoCopySuccess": "Undid copy operation: Deleted {{count}} copied files", - "undoCopyFailedDelete": "Undo failed: Could not delete any copied files", - "undoCopyFailedNoInfo": "Undo failed: Could not find copied file information", - "undoMoveSuccess": "Undid move operation: Moved {{count}} files back to original location", - "undoMoveFailedMove": "Undo failed: Could not move any files back", - "undoMoveFailedNoInfo": "Undo failed: Could not find moved file information", - "undoDeleteNotSupported": "Delete operation cannot be undone: Files have been permanently deleted from server", - "undoTypeNotSupported": "Unsupported undo operation type", - "undoOperationFailed": "Undo operation failed", - "unknownError": "Unknown error", - "enterPath": "Enter path...", - "editPath": "Edit path", - "confirm": "Confirm", - "cancel": "Cancel", - "find": "Find...", - "replaceWith": "Replace with...", - "replace": "Replace", - "replaceAll": "Replace All", - "downloadInstead": "Download Instead", - "keyboardShortcuts": "Keyboard Shortcuts", - "searchAndReplace": "Search & Replace", - "editing": "Editing", - "navigation": "Navigation", - "code": "Code", - "search": "Search", - "findNext": "Find Next", - "findPrevious": "Find Previous", - "save": "Save", - "selectAll": "Select All", - "undo": "Undo", - "redo": "Redo", - "goToLine": "Go to Line", - "moveLineUp": "Move Line Up", - "moveLineDown": "Move Line Down", - "toggleComment": "Toggle Comment", - "indent": "Indent", - "outdent": "Outdent", - "autoComplete": "Auto Complete", - "imageLoadError": "Failed to load image", - "rotate": "Rotate", - "originalSize": "Original Size", - "startTyping": "Start typing...", - "unknownSize": "Unknown size", - "fileIsEmpty": "File is empty", - "largeFileWarning": "Large File Warning", - "largeFileWarningDesc": "This file is {{size}} in size, which may cause performance issues when opened as text.", - "fileNotFoundAndRemoved": "File \"{{name}}\" not found and has been removed from recent/pinned files", - "failedToLoadFile": "Failed to load file: {{error}}", - "serverErrorOccurred": "Server error occurred. Please try again later.", - "autoSaveFailed": "Auto-save failed", - "fileAutoSaved": "File auto-saved", - "moveFileFailed": "Failed to move {{name}}", - "moveOperationFailed": "Move operation failed", - "canOnlyCompareFiles": "Can only compare two files", - "comparingFiles": "Comparing files: {{file1}} and {{file2}}", - "dragFailed": "Drag operation failed", - "filePinnedSuccessfully": "File \"{{name}}\" pinned successfully", - "pinFileFailed": "Failed to pin file", - "fileUnpinnedSuccessfully": "File \"{{name}}\" unpinned successfully", - "unpinFileFailed": "Failed to unpin file", - "shortcutAddedSuccessfully": "Folder shortcut \"{{name}}\" added successfully", - "addShortcutFailed": "Failed to add shortcut", - "operationCompletedSuccessfully": "{{operation}} {{count}} items successfully", - "operationCompleted": "{{operation}} {{count}} items", - "downloadFileSuccess": "File {{name}} downloaded successfully", - "downloadFileFailed": "Download failed", - "moveTo": "Move to {{name}}", - "diffCompareWith": "Diff compare with {{name}}", - "dragOutsideToDownload": "Drag outside window to download ({{count}} files)", - "newFolderDefault": "NewFolder", - "newFileDefault": "NewFile.txt", - "successfullyMovedItems": "Successfully moved {{count}} items to {{target}}", - "move": "Move", - "searchInFile": "Search in file (Ctrl+F)", - "showKeyboardShortcuts": "Show keyboard shortcuts", - "startWritingMarkdown": "Start writing your markdown content...", - "loadingFileComparison": "Loading file comparison...", - "reload": "Reload", - "compare": "Compare", - "sideBySide": "Side by Side", - "inline": "Inline", - "fileComparison": "File Comparison: {{file1}} vs {{file2}}", - "fileTooLarge": "File too large: {{error}}", - "sshConnectionFailed": "SSH connection failed. Please check your connection to {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Failed to load file: {{error}}", - "connectedSuccessfully": "Connected successfully", - "totpVerificationFailed": "TOTP verification failed", - "verificationCodePrompt": "Verification code:", - "changePermissions": "Change Permissions", - "changePermissionsDesc": "Modify file permissions for", - "currentPermissions": "Current Permissions", - "newPermissions": "New Permissions", - "owner": "Owner", - "group": "Group", - "others": "Others", - "read": "Read", - "write": "Write", - "execute": "Execute", - "permissionsChangedSuccessfully": "Permissions changed successfully", - "failedToChangePermissions": "Failed to change permissions" + "runningFile": "Execució - {{file}}", + "onlyRunExecutableFiles": "Només pot executar fitxers executables", + "noHostSelected": "No s'ha seleccionat cap amfitrió", + "starred": "Destacat", + "shortcuts": "Dreceres", + "directories": "Directoris", + "removedFromRecentFiles": "S'ha eliminat \"{{name}}\" dels fitxers recents", + "removeFailed": "No s'ha pogut eliminar l'opció.", + "unpinnedSuccessfully": "S'ha desfixat \"{{name}}\" correctament", + "unpinFailed": "No s'ha pogut desancorar la fixació.", + "removedShortcut": "S'ha eliminat la drecera \"{{name}}\"", + "removeShortcutFailed": "No s'ha pogut eliminar la drecera.", + "clearedAllRecentFiles": "S'han esborrat tots els fitxers recents", + "clearFailed": "Error en esborrar", + "removeFromRecentFiles": "Elimina dels fitxers recents", + "clearAllRecentFiles": "Esborra tots els fitxers recents", + "unpinFile": "Desfixar fitxer", + "removeShortcut": "Elimina la drecera", + "saveFilesToSystem": "Desa els fitxers {{count}} com a...", + "pinFile": "Fitxer fixat", + "addToShortcuts": "Afegeix a les dreceres", + "downloadToDefaultLocation": "Descarrega a la ubicació predeterminada", + "pasteFailed": "No s'ha pogut enganxar", + "noUndoableActions": "Sense accions desfaibles", + "undoCopySuccess": "Operació de còpia desfeta: S'han suprimit {{count}} fitxers copiats", + "undoCopyFailedDelete": "Error en desfer: no s'han pogut suprimir els fitxers copiats.", + "undoCopyFailedNoInfo": "Error en desfer: no s'ha pogut trobar la informació del fitxer copiat", + "undoMoveSuccess": "Operació de moviment desfeta: S'han tornat a moure els fitxers {{count}} a la ubicació original.", + "undoMoveFailedMove": "Desfer ha fallat: no s'han pogut moure cap fitxer enrere", + "undoMoveFailedNoInfo": "Desfer ha fallat: no s'ha pogut trobar la informació del fitxer mogut", + "undoDeleteNotSupported": "L'operació de supressió no es pot desfer: els fitxers s'han suprimit permanentment del servidor.", + "undoTypeNotSupported": "Tipus d'operació de desfer no compatible", + "undoOperationFailed": "L'operació de desfer ha fallat", + "unknownError": "Error desconegut", + "enterPath": "Introdueix el camí...", + "editPath": "Edita la ruta", + "confirm": "Confirma", + "cancel": "Cancel·la", + "find": "Troba...", + "replaceWith": "Substitueix per...", + "replace": "Substitueix", + "replaceAll": "Substitueix-ho tot", + "downloadInstead": "Descarrega en comptes d'això", + "keyboardShortcuts": "Dreceres de teclat", + "searchAndReplace": "Cerca i substitueix", + "editing": "Edició", + "navigation": "Navegació", + "code": "Codi", + "search": "Cerca", + "findNext": "Cerca el següent", + "findPrevious": "Cerca anterior", + "save": "Desa", + "selectAll": "Selecciona-ho tot", + "undo": "Desfer", + "redo": "Refer", + "goToLine": "Anar a la línia", + "moveLineUp": "Mou la línia cap amunt", + "moveLineDown": "Mou la línia cap avall", + "toggleComment": "Activa/desactiva el comentari", + "indent": "Sagnat", + "outdent": "Sortir sagnia", + "autoComplete": "Completar automàticament", + "imageLoadError": "No s'ha pogut carregar la imatge", + "rotate": "Girar", + "originalSize": "Mida original", + "startTyping": "Comença a escriure...", + "unknownSize": "Mida desconeguda", + "fileIsEmpty": "El fitxer està buit", + "largeFileWarning": "Avís de fitxer gran", + "largeFileWarningDesc": "Aquest fitxer té una mida de {{size}} , cosa que pot causar problemes de rendiment quan s'obre com a text.", + "fileNotFoundAndRemoved": "No s'ha trobat el fitxer \"{{name}}\" i s'ha eliminat dels fitxers recents/fixats.", + "failedToLoadFile": "No s'ha pogut carregar el fitxer: {{error}}", + "serverErrorOccurred": "S'ha produït un error del servidor. Torna-ho a provar més tard.", + "autoSaveFailed": "El desament automàtic ha fallat", + "fileAutoSaved": "Fitxer desat automàticament", + "moveFileFailed": "No s'ha pogut moure {{name}}", + "moveOperationFailed": "L'operació de moviment ha fallat", + "canOnlyCompareFiles": "Només es poden comparar dos fitxers", + "comparingFiles": "Comparació de fitxers: {{file1}} i {{file2}}", + "dragFailed": "L'operació d'arrossegament ha fallat", + "filePinnedSuccessfully": "Fitxer \"{{name}}\" fixat correctament", + "pinFileFailed": "No s'ha pogut fixar el fitxer", + "fileUnpinnedSuccessfully": "El fitxer \"{{name}}\" s'ha desanclat correctament", + "unpinFileFailed": "No s'ha pogut desancorar el fitxer", + "shortcutAddedSuccessfully": "Drecera de carpeta \"{{name}}\" afegida correctament", + "addShortcutFailed": "No s'ha pogut afegir la drecera", + "operationCompletedSuccessfully": "{{operation}} {{count}} elements correctament", + "operationCompleted": "{{operation}} {{count}} elements", + "downloadFileSuccess": "Fitxer {{name}} descarregat correctament", + "downloadFileFailed": "La descàrrega ha fallat", + "moveTo": "Moure a {{name}}", + "diffCompareWith": "Comparació de diferències amb {{name}}", + "dragOutsideToDownload": "Arrossega fora de la finestra per descarregar (fitxers{{count}} )", + "newFolderDefault": "NovaCarpeta", + "newFileDefault": "NouFitxer.txt", + "successfullyMovedItems": "S'han mogut correctament {{count}} elements a {{target}}", + "move": "Moure", + "searchInFile": "Cerca en un fitxer (Ctrl+F)", + "showKeyboardShortcuts": "Mostra les dreceres de teclat", + "startWritingMarkdown": "Comença a escriure el teu contingut de rebaixes...", + "loadingFileComparison": "S'està carregant la comparació de fitxers...", + "reload": "Torna a carregar", + "compare": "Comparar", + "sideBySide": "Costat al costat", + "inline": "En línia", + "fileComparison": "Comparació de fitxers: {{file1}} vs {{file2}}", + "fileTooLarge": "Fitxer massa gran: {{error}}", + "sshConnectionFailed": "La connexió SSH ha fallat. Si us plau, comproveu la connexió a {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "No s'ha pogut carregar el fitxer: {{error}}", + "connectedSuccessfully": "Connexió correcta", + "totpVerificationFailed": "La verificació TOTP ha fallat", + "verificationCodePrompt": "Codi de verificació:", + "changePermissions": "Canvia els permisos", + "changePermissionsDesc": "Modifica els permisos de fitxer per a", + "currentPermissions": "Permisos actuals", + "newPermissions": "Nous permisos", + "owner": "propietari", + "group": "Grup", + "others": "Altres", + "read": "Llegir", + "write": "Escriure", + "execute": "Executar", + "permissionsChangedSuccessfully": "Els permisos s'han canviat correctament", + "failedToChangePermissions": "No s'han pogut canviar els permisos" }, "tunnel": { - "noTunnelsConfigured": "No Tunnels Configured", - "configureTunnelsInHostSettings": "Configure tunnel connections in the Host Manager to get started" + "noTunnelsConfigured": "No hi ha túnels configurats", + "configureTunnelsInHostSettings": "Configureu les connexions de túnel al Gestor d'amfitrions per començar" }, "tunnels": { - "title": "SSH Tunnels", - "noSshTunnels": "No SSH Tunnels", - "createFirstTunnelMessage": "You haven't created any SSH tunnels yet. Configure tunnel connections in the Host Manager to get started.", - "connected": "Connected", - "disconnected": "Disconnected", - "connecting": "Connecting...", - "disconnecting": "Disconnecting...", - "unknownTunnelStatus": "Unknown", - "statusUnknown": "Unknown", - "unknown": "Unknown", + "title": "Túnels SSH", + "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...", + "disconnecting": "Desconnectant...", + "unknownTunnelStatus": "Desconegut", + "statusUnknown": "Desconegut", + "unknown": "Desconegut", "error": "Error", - "failed": "Failed", - "retrying": "Retrying", - "waiting": "Waiting", - "waitingForRetry": "Waiting for retry", - "retryingConnection": "Retrying connection", - "canceling": "Canceling...", - "connect": "Connect", - "disconnect": "Disconnect", - "cancel": "Cancel", + "failed": "Fallat", + "retrying": "Tornant a intentar", + "waiting": "Esperant", + "waitingForRetry": "Esperant un nou intent", + "retryingConnection": "Tornant a intentar la connexió", + "canceling": "Cancel·lant...", + "connect": "Connecta", + "disconnect": "Desconnecta", + "cancel": "Cancel·la", "port": "Port", - "attempt": "Attempt {{current}} of {{max}}", - "nextRetryIn": "Next retry in {{seconds}} seconds", - "checkDockerLogs": "Check your Docker logs for the error reason, join the", - "orCreate": "or create a ", - "noTunnelConnections": "No tunnel connections configured", - "tunnelConnections": "Tunnel Connections", - "addTunnel": "Add Tunnel", - "editTunnel": "Edit Tunnel", - "deleteTunnel": "Delete Tunnel", - "tunnelName": "Tunnel Name", - "localPort": "Local Port", - "remoteHost": "Remote Host", - "remotePort": "Remote Port", - "autoStart": "Auto Start", - "status": "Status", - "active": "Active", - "inactive": "Inactive", - "start": "Start", - "stop": "Stop", - "restart": "Restart", - "connectionType": "Connection Type", + "attempt": "Intent {{current}} de {{max}}", + "nextRetryIn": "Proper intent en {{seconds}} segons", + "checkDockerLogs": "Reviseu els registres de Docker per saber el motiu de l'error i uniu-vos al", + "orCreate": "o crear un ", + "noTunnelConnections": "No hi ha connexions de túnel configurades", + "tunnelConnections": "Connexions de túnels", + "addTunnel": "Afegeix un túnel", + "editTunnel": "Edita el túnel", + "deleteTunnel": "Suprimeix el túnel", + "tunnelName": "Nom del túnel", + "localPort": "Port local", + "remoteHost": "Amfitrió remot", + "remotePort": "Port remot", + "autoStart": "Inici automàtic", + "status": "Estat", + "active": "Actiu", + "inactive": "Inactiu", + "start": "Inici", + "stop": "Atura", + "restart": "Reinicia", + "connectionType": "Tipus de connexió", "local": "Local", - "remote": "Remote", - "dynamic": "Dynamic", - "unknownConnectionStatus": "Unknown", + "remote": "Remot", + "dynamic": "Dinàmic", + "unknownConnectionStatus": "Desconegut", "portMapping": "Port {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", - "endpointHostNotFound": "Endpoint host not found", - "discord": "Discord", - "githubIssue": "GitHub issue", - "forHelp": "for help" + "endpointHostNotFound": "No s'ha trobat l'amfitrió del punt final", + "discord": "Discòrdia", + "githubIssue": "Problema de GitHub", + "forHelp": "per a ajuda" }, "serverStats": { - "title": "Server Statistics", + "title": "Estadístiques del servidor", "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "loadAverage": "Avg: {{avg1}}, {{avg5}}, {{avg15}}", - "processes": "Processes", - "connections": "Connections", - "usage": "Usage", - "available": "Available", + "memory": "Memòria", + "disk": "Disc", + "network": "Xarxa", + "uptime": "Temps de funcionament", + "loadAverage": "Mitjana: {{avg1}}, {{avg5}}, {{avg15}}", + "processes": "Processos", + "connections": "Connexions", + "usage": "Ús", + "available": "Disponible", "total": "Total", - "free": "Free", - "used": "Used", - "percentage": "Percentage", - "refreshStatusAndMetrics": "Refresh status and metrics", - "refreshStatus": "Refresh Status", - "fileManagerAlreadyOpen": "File Manager already open for this host", - "openFileManager": "Open File Manager", + "free": "Gratuït", + "used": "Usat", + "percentage": "Percentatge", + "refreshStatusAndMetrics": "Actualitza l'estat i les mètriques", + "refreshStatus": "Estat d'actualització", + "fileManagerAlreadyOpen": "El gestor de fitxers ja està obert per a aquest amfitrió", + "openFileManager": "Obre el gestor de fitxers", "cpuCores_one": "{{count}} CPU", - "cpuCores_other": "{{count}} CPUs", - "naCpus": "N/A CPU(s)", - "loadAverageNA": "Avg: N/A", - "cpuUsage": "CPU Usage", - "memoryUsage": "Memory Usage", - "diskUsage": "Disk Usage", - "rootStorageSpace": "Root Storage Space", - "of": "of", - "feedbackMessage": "Have ideas for what should come next for server management? Share them on", - "failedToFetchHostConfig": "Failed to fetch host configuration", - "failedToFetchStatus": "Failed to fetch server status", - "failedToFetchMetrics": "Failed to fetch server metrics", - "failedToFetchHomeData": "Failed to fetch home data", - "loadingMetrics": "Loading metrics...", - "connecting": "Connecting...", - "refreshing": "Refreshing...", - "serverOffline": "Server Offline", - "cannotFetchMetrics": "Cannot fetch metrics from offline server", - "totpRequired": "TOTP Authentication Required", - "totpUnavailable": "Server Stats unavailable for TOTP-enabled servers", - "totpVerified": "TOTP verified, metrics collection started", - "totpFailed": "TOTP verification failed", - "totpInvalidCode": "Invalid verification code", - "totpCancelled": "Metrics collection cancelled", - "authenticationFailed": "Authentication failed", - "noneAuthNotSupported": "Server Stats does not support 'none' authentication type.", - "load": "Load", - "editLayout": "Edit Layout", - "cancelEdit": "Cancel", - "addWidget": "Add Widget", - "saveLayout": "Save Layout", - "unsavedChanges": "Unsaved changes", - "layoutSaved": "Layout saved successfully", - "failedToSaveLayout": "Failed to save layout", - "systemInfo": "System Information", - "hostname": "Hostname", - "operatingSystem": "Operating System", - "kernel": "Kernel", - "totalUptime": "Total Uptime", - "seconds": "seconds", - "networkInterfaces": "Network Interfaces", - "noInterfacesFound": "No network interfaces found", - "totalProcesses": "Total Processes", - "running": "Running", - "noProcessesFound": "No processes found", - "loginStats": "SSH Login Statistics", - "totalLogins": "Total Logins", - "uniqueIPs": "Unique IPs", - "recentSuccessfulLogins": "Recent Successful Logins", - "recentFailedAttempts": "Recent Failed Attempts", - "noRecentLoginData": "No recent login data", - "from": "from", - "quickActions": "Quick Actions", - "executeQuickAction": "Execute {{name}}", - "executingQuickAction": "Executing {{name}}...", - "quickActionSuccess": "{{name}} completed successfully", - "quickActionFailed": "{{name}} failed", - "quickActionError": "Failed to execute {{name}}" + "cpuCores_other": "{{count}} CPU", + "naCpus": "CPU(s) N/A", + "loadAverageNA": "Mitjana: N/A", + "cpuUsage": "Ús de la CPU", + "memoryUsage": "Ús de memòria", + "diskUsage": "Ús del disc", + "rootStorageSpace": "Espai d'emmagatzematge arrel", + "of": "de", + "feedbackMessage": "Tens idees sobre què hauria de venir després per a la gestió de servidors? Comparteix-les a", + "failedToFetchHostConfig": "No s'ha pogut obtenir la configuració de l'amfitrió", + "failedToFetchStatus": "No s'ha pogut obtenir l'estat del servidor", + "failedToFetchMetrics": "No s'han pogut obtenir les mètriques del servidor", + "failedToFetchHomeData": "No s'han pogut obtenir les dades de casa", + "loadingMetrics": "S'estan carregant les mètriques...", + "connecting": "Connectant...", + "refreshing": "Refrescant...", + "serverOffline": "Servidor fora de línia", + "cannotFetchMetrics": "No es poden obtenir mètriques del servidor fora de línia", + "totpRequired": "Cal autenticació TOTP", + "totpUnavailable": "Estadístiques del servidor no disponibles per a servidors compatibles amb TOTP", + "totpVerified": "TOTP verificat, recopilació de mètriques iniciada", + "totpFailed": "La verificació TOTP ha fallat", + "totpInvalidCode": "Codi de verificació no vàlid", + "totpCancelled": "Recopilació de mètriques cancel·lada", + "authenticationFailed": "L'autenticació ha fallat", + "noneAuthNotSupported": "Les estadístiques del servidor no admeten el tipus d'autenticació \"cap\".", + "load": "Carrega", + "editLayout": "Edita el disseny", + "cancelEdit": "Cancel·la", + "addWidget": "Afegeix un widget", + "saveLayout": "Desa el disseny", + "unsavedChanges": "Canvis no desats", + "layoutSaved": "El disseny s'ha desat correctament", + "failedToSaveLayout": "No s'ha pogut desar el disseny", + "systemInfo": "Informació del sistema", + "hostname": "Nom d'amfitrió", + "operatingSystem": "Sistema operatiu", + "kernel": "Nucli", + "totalUptime": "Temps de funcionament total", + "seconds": "segons", + "networkInterfaces": "Interfícies de xarxa", + "noInterfacesFound": "No s'han trobat interfícies de xarxa", + "totalProcesses": "Processos totals", + "running": "Córrer", + "noProcessesFound": "No s'han trobat processos", + "loginStats": "Estadístiques d'inici de sessió SSH", + "totalLogins": "Total d'inicis de sessió", + "uniqueIPs": "IP úniques", + "recentSuccessfulLogins": "Inicis de sessió recents correctament", + "recentFailedAttempts": "Intents fallits recents", + "noRecentLoginData": "No hi ha dades d'inici de sessió recents", + "from": "de", + "quickActions": "Accions ràpides", + "executeQuickAction": "Executa {{name}}", + "executingQuickAction": "Executant {{name}}...", + "quickActionSuccess": "{{name}} s'ha completat correctament", + "quickActionFailed": "{{name}} ha fallat", + "quickActionError": "No s'ha pogut executar {{name}}" }, "auth": { - "tagline": "SSH SERVER MANAGER", - "description": "Secure, powerful, and intuitive SSH connection management", - "welcomeBack": "Welcome back to TERMIX", - "createAccount": "Create your TERMIX account", - "continueExternal": "Continue with external provider", - "loginTitle": "Login to Termix", - "registerTitle": "Create Account", - "loginButton": "Login", - "registerButton": "Register", - "forgotPassword": "Forgot Password?", - "rememberMe": "Remember Me", - "noAccount": "Don't have an account?", - "hasAccount": "Already have an account?", - "loginSuccess": "Login successful", - "loginFailed": "Login failed", - "registerSuccess": "Registration successful", - "registerFailed": "Registration failed", - "logoutSuccess": "Logged out successfully", - "invalidCredentials": "Invalid username or password", - "accountCreated": "Account created successfully", - "passwordReset": "Password reset link sent", - "twoFactorAuth": "Two-Factor Authentication", - "enterCode": "Enter verification code", - "backupCode": "Or use backup code", - "verifyCode": "Verify Code", - "redirectingToApp": "Redirecting to app...", - "enableTwoFactor": "Enable Two-Factor Authentication", - "disableTwoFactor": "Disable Two-Factor Authentication", - "scanQRCode": "Scan this QR code with your authenticator app", - "backupCodes": "Backup Codes", - "saveBackupCodes": "Save these backup codes in a safe place", - "twoFactorEnabledSuccess": "Two-factor authentication enabled successfully!", - "twoFactorDisabled": "Two-factor authentication disabled", - "newBackupCodesGenerated": "New backup codes generated", - "backupCodesDownloaded": "Backup codes downloaded", - "pleaseEnterSixDigitCode": "Please enter a 6-digit code", - "invalidVerificationCode": "Invalid verification code", - "failedToDisableTotp": "Failed to disable TOTP", - "failedToGenerateBackupCodes": "Failed to generate backup codes", - "enterPassword": "Enter your password", - "lockedOidcAuth": "Locked (OIDC Auth)", - "twoFactorTitle": "Two-Factor Authentication", - "twoFactorProtected": "Your account is protected with two-factor authentication", - "twoFactorActive": "Two-factor authentication is currently active on your account", - "disable2FA": "Disable 2FA", - "disableTwoFactorWarning": "Disabling two-factor authentication will make your account less secure", - "passwordOrTotpCode": "Password or TOTP Code", - "or": "Or", - "generateNewBackupCodesText": "Generate new backup codes if you've lost your existing ones", - "generateNewBackupCodes": "Generate New Backup Codes", - "yourBackupCodes": "Your Backup Codes", - "download": "Download", - "setupTwoFactorTitle": "Set Up Two-Factor Authentication", - "sshAuthenticationRequired": "SSH Authentication Required", - "sshNoKeyboardInteractive": "Keyboard-Interactive Authentication Unavailable", - "sshAuthenticationFailed": "Authentication Failed", - "sshAuthenticationTimeout": "Authentication Timeout", - "sshNoKeyboardInteractiveDescription": "The server does not support keyboard-interactive authentication. Please provide your password or SSH key.", - "sshAuthFailedDescription": "The provided credentials were incorrect. Please try again with valid credentials.", - "sshTimeoutDescription": "The authentication attempt timed out. Please try again.", - "sshProvideCredentialsDescription": "Please provide your SSH credentials to connect to this server.", - "sshPasswordDescription": "Enter the password for this SSH connection.", - "sshKeyPasswordDescription": "If your SSH key is encrypted, enter the passphrase here.", - "step1ScanQR": "Step 1: Scan the QR code with your authenticator app", - "manualEntryCode": "Manual Entry Code", - "cannotScanQRText": "If you can't scan the QR code, enter this code manually in your authenticator app", - "nextVerifyCode": "Next: Verify Code", - "verifyAuthenticator": "Verify Your Authenticator", - "step2EnterCode": "Step 2: Enter the 6-digit code from your authenticator app", - "verificationCode": "Verification Code", - "back": "Back", - "verifyAndEnable": "Verify and Enable", - "saveBackupCodesTitle": "Save Your Backup Codes", - "step3StoreCodesSecurely": "Step 3: Store these codes in a safe place", - "importantBackupCodesText": "Save these backup codes in a secure location. You can use them to access your account if you lose your authenticator device.", - "completeSetup": "Complete Setup", - "notEnabledText": "Two-factor authentication adds an extra layer of security by requiring a code from your authenticator app when signing in.", - "enableTwoFactorButton": "Enable Two-Factor Authentication", - "addExtraSecurityLayer": "Add an extra layer of security to your account", - "firstUser": "First User", - "firstUserMessage": "You are the first user and will be made an admin. You can view admin settings in the sidebar user dropdown. If you think this is a mistake, check the docker logs, or create a GitHub issue.", - "external": "External", - "loginWithExternal": "Login with External Provider", - "loginWithExternalDesc": "Login using your configured external identity provider", - "externalNotSupportedInElectron": "External authentication is not supported in the Electron app yet. Please use the web version for OIDC login.", - "resetPasswordButton": "Reset Password", - "sendResetCode": "Send Reset Code", - "resetCodeDesc": "Enter your username to receive a password reset code. The code will be logged in the docker container logs.", - "resetCode": "Reset Code", - "verifyCodeButton": "Verify Code", - "enterResetCode": "Enter the 6-digit code from the docker container logs for user:", - "goToLogin": "Go to Login", - "newPassword": "New Password", - "confirmNewPassword": "Confirm Password", - "enterNewPassword": "Enter your new password for user:", - "signUp": "Sign Up", - "mobileApp": "Mobile App", - "loggingInToMobileApp": "Logging in to the mobile app", - "desktopApp": "Desktop App", - "loggingInToDesktopApp": "Logging in to the desktop app", - "loggingInToDesktopAppViaWeb": "Logging in to the desktop app via web interface", - "loadingServer": "Loading server...", - "authenticating": "Authenticating...", - "dataLossWarning": "Resetting your password this way will delete all your saved SSH hosts, credentials, and other encrypted data. This action cannot be undone. Only use this if you have forgotten your password and are not logged in.", - "authenticationDisabled": "Authentication Disabled", - "authenticationDisabledDesc": "All authentication methods are currently disabled. Please contact your administrator.", - "passwordResetSuccess": "Password Reset Successful", - "passwordResetSuccessDesc": "Your password has been reset successfully. You can now log in with your new password." + "tagline": "ADMINISTRADOR DE SERVIDORS SSH", + "description": "Gestió de connexions SSH segura, potent i intuïtiva", + "welcomeBack": "Benvinguts de nou a TERMIX", + "createAccount": "Crea el teu compte TERMIX", + "continueExternal": "Continuar amb un proveïdor extern", + "loginTitle": "Inicia la sessió a Termix", + "registerTitle": "Crea un compte", + "loginButton": "Inicia la sessió", + "registerButton": "Registra't", + "forgotPassword": "Has oblidat la contrasenya?", + "rememberMe": "Recorda'm", + "noAccount": "No tens un compte?", + "hasAccount": "Ja tens un compte?", + "loginSuccess": "Inici de sessió correcte", + "loginFailed": "Error d'inici de sessió", + "registerSuccess": "Registre correcte", + "registerFailed": "El registre ha fallat", + "logoutSuccess": "S'ha tancat la sessió correctament", + "invalidCredentials": "Nom d'usuari o contrasenya no vàlids", + "accountCreated": "Compte creat correctament", + "passwordReset": "Enllaç de restabliment de contrasenya enviat", + "twoFactorAuth": "Autenticació de dos factors", + "enterCode": "Introduïu el codi de verificació", + "backupCode": "O bé feu servir un codi de còpia de seguretat", + "verifyCode": "Verifica el codi", + "redirectingToApp": "Redireccionant a l'aplicació...", + "enableTwoFactor": "Activa l'autenticació de dos factors", + "disableTwoFactor": "Desactiva l'autenticació de dos factors", + "scanQRCode": "Escaneja aquest codi QR amb la teva aplicació d'autenticació", + "backupCodes": "Codis de còpia de seguretat", + "saveBackupCodes": "Desa aquests codis de còpia de seguretat en un lloc segur", + "twoFactorEnabledSuccess": "L'autenticació de dos factors s'ha activat correctament!", + "twoFactorDisabled": "Autenticació de dos factors desactivada", + "newBackupCodesGenerated": "Nous codis de còpia de seguretat generats", + "backupCodesDownloaded": "Codis de còpia de seguretat descarregats", + "pleaseEnterSixDigitCode": "Si us plau, introdueix un codi de 6 dígits", + "invalidVerificationCode": "Codi de verificació no vàlid", + "failedToDisableTotp": "No s'ha pogut desactivar TOTP", + "failedToGenerateBackupCodes": "No s'han pogut generar els codis de còpia de seguretat", + "enterPassword": "Introdueix la teva contrasenya", + "lockedOidcAuth": "Bloquejat (autenticació OIDC)", + "twoFactorTitle": "Autenticació de dos factors", + "twoFactorProtected": "El vostre compte està protegit amb autenticació de dos factors", + "twoFactorActive": "L'autenticació de dos factors està actualment activa al vostre compte", + "disable2FA": "Desactiva la 2FA", + "disableTwoFactorWarning": "Desactivar l'autenticació de dos factors farà que el teu compte sigui menys segur", + "passwordOrTotpCode": "Contrasenya o codi TOTP", + "or": "O", + "generateNewBackupCodesText": "Genera nous codis de còpia de seguretat si has perdut els que ja tens", + "generateNewBackupCodes": "Genera nous codis de còpia de seguretat", + "yourBackupCodes": "Els vostres codis de còpia de seguretat", + "download": "Descarrega", + "setupTwoFactorTitle": "Configura l'autenticació de dos factors", + "sshAuthenticationRequired": "Autenticació SSH requerida", + "sshNoKeyboardInteractive": "Autenticació interactiva amb teclat no disponible", + "sshAuthenticationFailed": "Error d'autenticació", + "sshAuthenticationTimeout": "Temps d'espera d'autenticació", + "sshNoKeyboardInteractiveDescription": "El servidor no admet l'autenticació interactiva amb teclat. Si us plau, proporcioneu la vostra contrasenya o clau SSH.", + "sshAuthFailedDescription": "Les credencials proporcionades eren incorrectes. Torneu-ho a provar amb credencials vàlides.", + "sshTimeoutDescription": "S'ha esgotat el temps d'espera de l'intent d'autenticació. Torna-ho a intentar.", + "sshProvideCredentialsDescription": "Si us plau, proporcioneu les vostres credencials SSH per connectar-vos a aquest servidor.", + "sshPasswordDescription": "Introduïu la contrasenya per a aquesta connexió SSH.", + "sshKeyPasswordDescription": "Si la clau SSH està xifrada, introduïu la contrasenya aquí.", + "step1ScanQR": "Pas 1: escaneja el codi QR amb l'aplicació d'autenticació", + "manualEntryCode": "Codi d'entrada manual", + "cannotScanQRText": "Si no podeu escanejar el codi QR, introduïu-lo manualment a l'aplicació d'autenticació.", + "nextVerifyCode": "Següent: Verifica el codi", + "verifyAuthenticator": "Verifica el teu autenticador", + "step2EnterCode": "Pas 2: Introduïu el codi de 6 dígits de l'aplicació d'autenticació", + "verificationCode": "Codi de verificació", + "back": "Enrere", + "verifyAndEnable": "Verifica i activa", + "saveBackupCodesTitle": "Desa els teus codis de còpia de seguretat", + "step3StoreCodesSecurely": "Pas 3: guardeu aquests codis en un lloc segur", + "importantBackupCodesText": "Desa aquests codis de còpia de seguretat en un lloc segur. Pots utilitzar-los per accedir al teu compte si perds el dispositiu d'autenticació.", + "completeSetup": "Configuració completa", + "notEnabledText": "L'autenticació de dos factors afegeix una capa addicional de seguretat en sol·licitar un codi de l'aplicació d'autenticació en iniciar la sessió.", + "enableTwoFactorButton": "Activa l'autenticació de dos factors", + "addExtraSecurityLayer": "Afegeix una capa addicional de seguretat al teu compte", + "firstUser": "Primer usuari", + "firstUserMessage": "Ets el primer usuari i se't nomenarà administrador. Pots veure la configuració d'administrador al menú desplegable d'usuaris de la barra lateral. Si creus que es tracta d'un error, consulta els registres de Docker o crea una incidència de GitHub.", + "external": "Extern", + "loginWithExternal": "Inicia la sessió amb un proveïdor extern", + "loginWithExternalDesc": "Inicia la sessió amb el proveïdor d'identitat extern configurat", + "externalNotSupportedInElectron": "L'autenticació externa encara no és compatible amb l'aplicació Electron. Si us plau, utilitzeu la versió web per iniciar sessió a OIDC.", + "resetPasswordButton": "Restablir contrasenya", + "sendResetCode": "Enviar codi de restabliment", + "resetCodeDesc": "Introdueix el teu nom d'usuari per rebre un codi de restabliment de contrasenya. El codi es registrarà als registres del contenidor Docker.", + "resetCode": "Restableix el codi", + "verifyCodeButton": "Verifica el codi", + "enterResetCode": "Introduïu el codi de 6 dígits dels registres del contenidor Docker per a l'usuari:", + "goToLogin": "Ves a Inicia la sessió", + "newPassword": "Nova contrasenya", + "confirmNewPassword": "Confirma la contrasenya", + "enterNewPassword": "Introduïu la nova contrasenya per a l'usuari:", + "signUp": "Registra't", + "mobileApp": "Aplicació mòbil", + "loggingInToMobileApp": "Inici de sessió a l'aplicació mòbil", + "desktopApp": "Aplicació d'escriptori", + "loggingInToDesktopApp": "Inici de sessió a l'aplicació d'escriptori", + "loggingInToDesktopAppViaWeb": "Inici de sessió a l'aplicació d'escriptori a través de la interfície web", + "loadingServer": "S'està carregant el servidor...", + "authenticating": "Autenticació...", + "dataLossWarning": "Si restableixes la contrasenya d'aquesta manera, s'eliminaran tots els hosts SSH, les credencials i altres dades xifrades que hagis desat. Aquesta acció no es pot desfer. Només fes servir aquesta opció si has oblidat la contrasenya i no has iniciat la sessió.", + "authenticationDisabled": "Autenticació desactivada", + "authenticationDisabledDesc": "Tots els mètodes d'autenticació estan actualment desactivats. Poseu-vos en contacte amb el vostre administrador.", + "passwordResetSuccess": "Restabliment de la contrasenya correcte", + "passwordResetSuccessDesc": "La teva contrasenya s'ha restablert correctament. Ara pots iniciar la sessió amb la nova contrasenya." }, "errors": { - "notFound": "Page not found", - "unauthorized": "Unauthorized access", - "forbidden": "Access forbidden", - "serverError": "Server error", - "networkError": "Network error", - "databaseConnection": "Could not connect to the database", - "unknownError": "Unknown error", - "loginFailed": "Login failed", - "failedPasswordReset": "Failed to initiate password reset", - "failedVerifyCode": "Failed to verify reset code", - "failedCompleteReset": "Failed to complete password reset", - "invalidTotpCode": "Invalid TOTP code", - "failedOidcLogin": "Failed to start OIDC login", - "failedUserInfo": "Failed to get user info after OIDC login", - "oidcAuthFailed": "OIDC authentication failed", - "noTokenReceived": "No token received from login", - "invalidAuthUrl": "Invalid authorization URL received from backend", - "invalidInput": "Invalid input", - "requiredField": "This field is required", - "minLength": "Minimum length is {{min}}", - "maxLength": "Maximum length is {{max}}", - "invalidEmail": "Invalid email address", - "passwordMismatch": "Passwords do not match", - "passwordLoginDisabled": "Username/password login is currently disabled", - "weakPassword": "Password is too weak", - "usernameExists": "Username already exists", - "emailExists": "Email already exists", - "loadFailed": "Failed to load data", - "saveError": "Failed to save", - "sessionExpired": "Session expired - please log in again" + "notFound": "Pàgina no trobada", + "unauthorized": "Accés no autoritzat", + "forbidden": "Accés prohibit", + "serverError": "Error del servidor", + "networkError": "Error de xarxa", + "databaseConnection": "No s'ha pogut connectar a la base de dades", + "unknownError": "Error desconegut", + "loginFailed": "Error d'inici de sessió", + "failedPasswordReset": "No s'ha pogut iniciar el restabliment de la contrasenya", + "failedVerifyCode": "No s'ha pogut verificar el codi de restabliment", + "failedCompleteReset": "No s'ha pogut completar el restabliment de la contrasenya", + "invalidTotpCode": "Codi TOTP no vàlid", + "failedOidcLogin": "No s'ha pogut iniciar l'inici de sessió a l'OIDC.", + "failedUserInfo": "No s'ha pogut obtenir la informació de l'usuari després de l'inici de sessió a l'OIDC.", + "oidcAuthFailed": "L'autenticació OIDC ha fallat", + "noTokenReceived": "No s'ha rebut cap testimoni de l'inici de sessió", + "invalidAuthUrl": "URL d'autorització no vàlida rebuda del backend", + "invalidInput": "Entrada no vàlida", + "requiredField": "Aquest camp és obligatori", + "minLength": "La longitud mínima és {{min}}", + "maxLength": "La longitud màxima és {{max}}", + "invalidEmail": "Adreça electrònica no vàlida", + "passwordMismatch": "Les contrasenyes no coincideixen", + "passwordLoginDisabled": "L'inici de sessió amb nom d'usuari i contrasenya està actualment desactivat", + "weakPassword": "La contrasenya és massa feble", + "usernameExists": "El nom d'usuari ja existeix", + "emailExists": "El correu electrònic ja existeix", + "loadFailed": "No s'han pogut carregar les dades", + "saveError": "No s'ha pogut desar", + "sessionExpired": "La sessió ha caducat; si us plau, torneu a iniciar la sessió." }, "messages": { - "saveSuccess": "Saved successfully", - "saveError": "Failed to save", - "deleteSuccess": "Deleted successfully", - "deleteError": "Failed to delete", - "updateSuccess": "Updated successfully", - "updateError": "Failed to update", - "copySuccess": "Copied to clipboard", - "copyError": "Failed to copy", - "copiedToClipboard": "{{item}} copied to clipboard", - "connectionEstablished": "Connection established", - "connectionClosed": "Connection closed", - "reconnecting": "Reconnecting...", - "processing": "Processing...", - "pleaseWait": "Please wait...", - "registrationDisabled": "New account registration is currently disabled by an admin. Please log in or contact an administrator.", - "databaseConnected": "Database connected successfully", - "databaseConnectionFailed": "Failed to connect to the database server", - "checkServerConnection": "Please check your server connection and try again", - "resetCodeSent": "Reset code sent to Docker logs", - "codeVerified": "Code verified successfully", - "passwordResetSuccess": "Password reset successfully", - "loginSuccess": "Login successful", - "registrationSuccess": "Registration successful" + "saveSuccess": "S'ha desat correctament", + "saveError": "No s'ha pogut desar", + "deleteSuccess": "S'ha suprimit correctament", + "deleteError": "No s'ha pogut suprimir", + "updateSuccess": "S'ha actualitzat correctament", + "updateError": "No s'ha pogut actualitzar", + "copySuccess": "Copiat al porta-retalls", + "copyError": "No s'ha pogut copiar", + "copiedToClipboard": "{{item}} s'ha copiat al porta-retalls", + "connectionEstablished": "Connexió establerta", + "connectionClosed": "Connexió tancada", + "reconnecting": "Reconnectant...", + "processing": "Processant...", + "pleaseWait": "Si us plau, espereu...", + "registrationDisabled": "El registre de comptes nous està desactivat actualment per un administrador. Si us plau, inicia la sessió o contacta amb un administrador.", + "databaseConnected": "La base de dades s'ha connectat correctament", + "databaseConnectionFailed": "No s'ha pogut connectar al servidor de la base de dades", + "checkServerConnection": "Si us plau, comproveu la connexió del servidor i torneu-ho a intentar.", + "resetCodeSent": "Restableix el codi enviat als registres de Docker", + "codeVerified": "Codi verificat correctament", + "passwordResetSuccess": "La contrasenya s'ha restablert correctament", + "loginSuccess": "Inici de sessió correcte", + "registrationSuccess": "Registre correcte" }, "profile": { - "title": "User Profile", - "description": "Manage your account settings and security", - "security": "Security", - "changePassword": "Change Password", - "twoFactorAuth": "Two-Factor Authentication", - "accountInfo": "Account Information", - "role": "Role", - "admin": "Administrator", - "user": "User", - "authMethod": "Authentication Method", + "title": "Perfil d'usuari", + "description": "Gestiona la configuració i la seguretat del teu compte", + "security": "Seguretat", + "changePassword": "Canvia la contrasenya", + "twoFactorAuth": "Autenticació de dos factors", + "accountInfo": "Informació del compte", + "role": "Rol", + "admin": "Administrador/a", + "user": "Usuari", + "authMethod": "Mètode d'autenticació", "local": "Local", - "external": "External (OIDC)", - "externalAndLocal": "Dual Auth", - "selectPreferredLanguage": "Select your preferred language for the interface", - "fileColorCoding": "File Color Coding", - "fileColorCodingDesc": "Color-code files by type: folders (red), files (blue), symlinks (green)", - "commandAutocomplete": "Command Autocomplete", - "commandAutocompleteDesc": "Enable Tab key autocomplete suggestions for terminal commands based on your command history", - "defaultSnippetFoldersCollapsed": "Collapse Snippet Folders by Default", - "defaultSnippetFoldersCollapsedDesc": "When enabled, all snippet folders will be collapsed when you open the snippets tab", - "terminalSyntaxHighlighting": "Terminal Syntax Highlighting", - "showHostTags": "Show Host Tags", - "showHostTagsDesc": "Display tags under each host in the sidebar. Disable to hide all tags.", - "account": "Account", - "appearance": "Appearance", - "languageLocalization": "Language & Localization", - "fileManagerSettings": "File Manager", + "external": "Extern (OIDC)", + "externalAndLocal": "Doble autenticació", + "selectPreferredLanguage": "Seleccioneu l'idioma preferit per a la interfície", + "fileColorCoding": "Codificació de colors de fitxers", + "fileColorCodingDesc": "Codifica els fitxers per colors per tipus: carpetes (vermell), fitxers (blau), enllaços simbòlics (verd)", + "commandAutocomplete": "Autocompletar ordres", + "commandAutocompleteDesc": "Activa els suggeriments d'autocompleció de la tecla Tab per a les ordres del terminal basant-te en l'historial d'ordres", + "defaultSnippetFoldersCollapsed": "Replega les carpetes de fragments per defecte", + "defaultSnippetFoldersCollapsedDesc": "Quan està activat, totes les carpetes de fragments es reduiran quan obriu la pestanya de fragments.", + "terminalSyntaxHighlighting": "Ressaltat de la sintaxi del terminal", + "showHostTags": "Mostra les etiquetes de l'amfitrió", + "showHostTagsDesc": "Mostra les etiquetes sota cada amfitrió a la barra lateral. Desactiva-les per ocultar totes les etiquetes.", + "account": "Compte", + "appearance": "Aspecte", + "languageLocalization": "Idioma i localització", + "fileManagerSettings": "Gestor de fitxers", "terminalSettings": "Terminal", - "hostSidebarSettings": "Host & Sidebar", - "snippetsSettings": "Snippets", - "currentPassword": "Current Password", - "passwordChangedSuccess": "Password changed successfully! Please log in again.", - "failedToChangePassword": "Failed to change password. Please check your current password and try again.", - "theme": "Theme", - "themeLight": "Light", - "themeDark": "Dark", - "themeSystem": "System", - "appearanceDesc": "Select the color theme for the application", - "terminalSyntaxHighlightingDesc": "Automatically highlight commands, paths, IPs, and log levels in terminal output" + "hostSidebarSettings": "Amfitrió i barra lateral", + "snippetsSettings": "Fragments", + "currentPassword": "Contrasenya actual", + "passwordChangedSuccess": "La contrasenya s'ha canviat correctament! Si us plau, torneu a iniciar la sessió.", + "failedToChangePassword": "No s'ha pogut canviar la contrasenya. Si us plau, comproveu la vostra contrasenya actual i torneu-ho a intentar.", + "theme": "Tema", + "themeLight": "Llum", + "themeDark": "Fosc", + "themeSystem": "Sistema", + "appearanceDesc": "Seleccioneu el tema de color per a l'aplicació", + "terminalSyntaxHighlightingDesc": "Ressaltar automàticament les ordres, les rutes, les IP i els nivells de registre a la sortida del terminal" }, "user": { - "failedToLoadVersionInfo": "Failed to load version information" + "failedToLoadVersionInfo": "No s'ha pogut carregar la informació de la versió" }, "placeholders": { "enterCode": "000000", @@ -1901,502 +1901,502 @@ "port": "22", "maxRetries": "3", "retryInterval": "10", - "language": "Language", - "username": "username", - "hostname": "host name", - "folder": "folder", - "password": "password", - "keyPassword": "key password", - "sudoPassword": "sudo password (optional)", - "notes": "add notes about this host...", - "expirationDate": "Select expiration date", - "pastePrivateKey": "Paste your private key here...", - "pastePublicKey": "Paste your public key here...", - "credentialName": "My SSH Server", - "description": "SSH credential description", - "searchCredentials": "Search credentials by name, username, or tags...", - "sshConfig": "endpoint ssh configuration", - "homePath": "/home", - "clientId": "your-client-id", - "clientSecret": "your-client-secret", - "authUrl": "https://your-provider.com/application/o/authorize/", - "redirectUrl": "https://your-provider.com/application/o/termix/", - "tokenUrl": "https://your-provider.com/application/o/token/", + "language": "Llengua", + "username": "nom d'usuari", + "hostname": "nom d'amfitrió", + "folder": "carpeta", + "password": "contrasenya", + "keyPassword": "contrasenya clau", + "sudoPassword": "contrasenya sudo (opcional)", + "notes": "afegeix notes sobre aquest amfitrió...", + "expirationDate": "Selecciona la data de caducitat", + "pastePrivateKey": "Enganxa la teva clau privada aquí...", + "pastePublicKey": "Enganxa la teva clau pública aquí...", + "credentialName": "El meu servidor SSH", + "description": "Descripció de les credencials SSH", + "searchCredentials": "Cerca credencials per nom, nom d'usuari o etiquetes...", + "sshConfig": "configuració ssh del punt final", + "homePath": "/llar", + "clientId": "el-teu-ID-de-client", + "clientSecret": "el-secret-del-teu-client", + "authUrl": "https://el-teu-proveïdor.com/aplicació/o/autoritzar/", + "redirectUrl": "https://el-teu-proveïdor.com/aplicació/o/termix/", + "tokenUrl": "https://el-teu-proveïdor.com/aplicació/o/token/", "userIdField": "sub", - "usernameField": "name", - "scopes": "openid email profile", - "userinfoUrl": "https://your-provider.com/application/o/userinfo/", - "enterUsername": "Enter username to make admin", - "searchHosts": "Search hosts by name, username, IP, folder, tags...", - "enterPassword": "Enter your password", - "totpCode": "6-digit TOTP code", - "searchHostsAny": "Search hosts (try: tag:prod, user:root, ip:192.168)...", - "confirmPassword": "Enter your password to confirm", - "typeHere": "Type here", - "fileName": "Enter file name (e.g., example.txt)", - "folderName": "Enter folder name", - "fullPath": "Enter full path to item", - "currentPath": "Enter current path to item", - "newName": "Enter new name", + "usernameField": "nom", + "scopes": "perfil de correu electrònic d'OpenID", + "userinfoUrl": "https://el-teu-proveïdor.com/aplicació/o/info-usuari/", + "enterUsername": "Introdueix el nom d'usuari per fer-lo administrador", + "searchHosts": "Cerca hosts per nom, nom d'usuari, IP, carpeta, etiquetes...", + "enterPassword": "Introdueix la teva contrasenya", + "totpCode": "Codi TOTP de 6 dígits", + "searchHostsAny": "Cerca amfitrions (prova: tag:prod, user:root, ip:192.168)...", + "confirmPassword": "Introdueix la teva contrasenya per confirmar", + "typeHere": "Escriu aquí", + "fileName": "Introduïu el nom del fitxer (per exemple, exemple.txt)", + "folderName": "Introduïu el nom de la carpeta", + "fullPath": "Introduïu la ruta completa a l'element", + "currentPath": "Introdueix la ruta actual a l'element", + "newName": "Introdueix el nom nou", "socks5Host": "127.0.0.1", - "socks5Username": "proxy username", - "socks5Password": "proxy password", - "socks5PresetName": "e.g., Work VPN Chain", - "socks5PresetDescription": "e.g., Proxy chain for accessing work servers", - "moshCommand": "mosh user@server", + "socks5Username": "nom d'usuari del servidor intermediari", + "socks5Password": "contrasenya de proxy", + "socks5PresetName": "p. ex., cadena VPN de treball", + "socks5PresetDescription": "p. ex., cadena de proxy per accedir als servidors de treball", + "moshCommand": "mosh usuari@servidor", "defaultPort": "22", "defaultEndpointPort": "224", "defaultMaxRetries": "3", "defaultRetryInterval": "10" }, "leftSidebar": { - "failedToLoadHosts": "Failed to load hosts", - "noFolder": "No Folder", - "passwordRequired": "Password is required", - "failedToDeleteAccount": "Failed to delete account", - "failedToMakeUserAdmin": "Failed to make user admin", - "userIsNowAdmin": "User {{username}} is now an admin", - "removeAdminConfirm": "Are you sure you want to remove admin status from {{username}}?", - "deleteUserConfirm": "Are you sure you want to delete user {{username}}? This action cannot be undone.", - "deleteAccount": "Delete Account", - "closeDeleteAccount": "Close Delete Account", - "deleteAccountWarning": "This action cannot be undone. This will permanently delete your account and all associated data.", - "deleteAccountWarningDetails": "Deleting your account will remove all your data including SSH hosts, configurations, and settings. This action is irreversible.", - "deleteAccountWarningShort": "This action is not reversible and will permanently delete your account.", - "cannotDeleteAccount": "Cannot Delete Account", - "lastAdminWarning": "You are the last admin user. You cannot delete your account as this would leave the system without any administrators. Please make another user an admin first, or contact system support.", - "confirmPassword": "Confirm Password", - "deleting": "Deleting...", - "cancel": "Cancel" + "failedToLoadHosts": "No s'han pogut carregar els amfitrions", + "noFolder": "Sense carpeta", + "passwordRequired": "Cal una contrasenya", + "failedToDeleteAccount": "No s'ha pogut suprimir el compte", + "failedToMakeUserAdmin": "No s'ha pogut fer que l'usuari sigui administrador.", + "userIsNowAdmin": "L'usuari {{username}} ara és administrador", + "removeAdminConfirm": "Esteu segur que voleu eliminar l'estat d'administrador de {{username}}?", + "deleteUserConfirm": "Esteu segur que voleu suprimir l'usuari {{username}}? Aquesta acció no es pot desfer.", + "deleteAccount": "Suprimeix el compte", + "closeDeleteAccount": "Tanca Elimina el compte", + "deleteAccountWarning": "Aquesta acció no es pot desfer. Això eliminarà permanentment el vostre compte i totes les dades associades.", + "deleteAccountWarningDetails": "Si suprimiu el vostre compte, s'eliminaran totes les vostres dades, inclosos els amfitrions SSH, les configuracions i els paràmetres. Aquesta acció és irreversible.", + "deleteAccountWarningShort": "Aquesta acció no és reversible i eliminarà permanentment el vostre compte.", + "cannotDeleteAccount": "No es pot suprimir el compte", + "lastAdminWarning": "Ets l'últim usuari administrador. No pots eliminar el teu compte, ja que això deixaria el sistema sense administradors. Si us plau, fes que un altre usuari sigui administrador primer o contacta amb el suport del sistema.", + "confirmPassword": "Confirma la contrasenya", + "deleting": "S'està suprimint...", + "cancel": "Cancel·la" }, "interface": { - "sidebar": "Sidebar", - "toggleSidebar": "Toggle Sidebar", - "close": "Close", - "online": "Online", - "offline": "Offline", - "maintenance": "Maintenance", - "degraded": "Degraded", - "noTunnelConnections": "No tunnel connections configured", - "discord": "Discord", - "connectToSshForOperations": "Connect to SSH to use file operations", - "uploadFile": "Upload File", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "deleteItem": "Delete Item", - "createNewFile": "Create New File", - "createNewFolder": "Create New Folder", - "renameItem": "Rename Item", - "clickToSelectFile": "Click to select a file", - "noSshHosts": "No SSH Hosts", - "sshHosts": "SSH Hosts", - "importSshHosts": "Import SSH Hosts from JSON", - "clientId": "Client ID", - "clientSecret": "Client Secret", + "sidebar": "Barra lateral", + "toggleSidebar": "Obre/tanca la barra lateral", + "close": "Tanca", + "online": "En línia", + "offline": "Fora de línia", + "maintenance": "Manteniment", + "degraded": "Degradat", + "noTunnelConnections": "No hi ha connexions de túnel configurades", + "discord": "Discòrdia", + "connectToSshForOperations": "Connecta't a SSH per utilitzar operacions amb fitxers", + "uploadFile": "Puja el fitxer", + "newFile": "Fitxer nou", + "newFolder": "Nova carpeta", + "rename": "Canvia el nom", + "deleteItem": "Suprimeix l'element", + "createNewFile": "Crea un fitxer nou", + "createNewFolder": "Crea una carpeta nova", + "renameItem": "Canvia el nom de l'element", + "clickToSelectFile": "Feu clic per seleccionar un fitxer", + "noSshHosts": "Sense amfitrions SSH", + "sshHosts": "Amfitrions SSH", + "importSshHosts": "Importa hosts SSH des de JSON", + "clientId": "ID de client", + "clientSecret": "Secret del client", "error": "Error", - "warning": "Warning", - "deleteAccount": "Delete Account", - "closeDeleteAccount": "Close Delete Account", - "cannotDeleteAccount": "Cannot Delete Account", - "confirmPassword": "Confirm Password", - "deleting": "Deleting...", - "externalAuth": "External Authentication (OIDC)", - "configureExternalProvider": "Configure external identity provider for", - "waitingForRetry": "Waiting for retry", - "retryingConnection": "Retrying connection", - "resetSplitSizes": "Reset split sizes", - "sshManagerAlreadyOpen": "SSH Manager already open", - "disabledDuringSplitScreen": "Disabled during split screen", - "unknown": "Unknown", - "connected": "Connected", - "disconnected": "Disconnected", - "maxRetriesExhausted": "Max retries exhausted", - "endpointHostNotFound": "Endpoint host not found", - "administrator": "Administrator", - "user": "User", - "external": "External", + "warning": "Avís", + "deleteAccount": "Suprimeix el compte", + "closeDeleteAccount": "Tanca Elimina el compte", + "cannotDeleteAccount": "No es pot suprimir el compte", + "confirmPassword": "Confirma la contrasenya", + "deleting": "S'està suprimint...", + "externalAuth": "Autenticació externa (OIDC)", + "configureExternalProvider": "Configura el proveïdor d'identitat extern per a", + "waitingForRetry": "Esperant un nou intent", + "retryingConnection": "Tornant a intentar la connexió", + "resetSplitSizes": "Restableix les mides de divisió", + "sshManagerAlreadyOpen": "El gestor SSH ja està obert", + "disabledDuringSplitScreen": "Desactivat durant la pantalla dividida", + "unknown": "Desconegut", + "connected": "Connectat", + "disconnected": "Desconnectat", + "maxRetriesExhausted": "El màxim d'intents s'ha esgotat.", + "endpointHostNotFound": "No s'ha trobat l'amfitrió del punt final", + "administrator": "Administrador/a", + "user": "Usuari", + "external": "Extern", "local": "Local", - "saving": "Saving...", - "saveConfiguration": "Save Configuration", - "loading": "Loading...", - "refresh": "Refresh", - "adding": "Adding...", - "makeAdmin": "Make Admin", - "verifying": "Verifying...", - "verifyAndEnable": "Verify and Enable", - "secretKey": "Secret key", - "totpQrCode": "TOTP QR Code", - "passwordRequired": "Password is required when using password authentication", - "sshKeyRequired": "SSH Private Key is required when using key authentication", - "keyTypeRequired": "Key Type is required when using key authentication", - "validSshConfigRequired": "Must select a valid SSH configuration from the list", - "updateHost": "Update Host", - "addHost": "Add Host", - "editHost": "Edit Host", - "pinConnection": "Pin Connection", - "authentication": "Authentication", - "password": "Password", - "key": "Key", - "sshPrivateKey": "SSH Private Key", - "keyPassword": "Key Password", - "keyType": "Key Type", - "enableTerminal": "Enable Terminal", - "enableTunnel": "Enable Tunnel", - "enableFileManager": "Enable File Manager", - "defaultPath": "Default Path", - "tunnelConnections": "Tunnel Connections", - "maxRetries": "Max Retries", - "upload": "Upload", - "updateKey": "Update Key", - "productionFolder": "Production", - "databaseServer": "Database Server", - "developmentServer": "Development Server", - "developmentFolder": "Development", - "webServerProduction": "Web Server - Production", - "unknownError": "Unknown error", - "failedToInitiatePasswordReset": "Failed to initiate password reset", - "failedToVerifyResetCode": "Failed to verify reset code", - "failedToCompletePasswordReset": "Failed to complete password reset", - "invalidTotpCode": "Invalid TOTP code", - "failedToStartOidcLogin": "Failed to start OIDC login", - "failedToGetUserInfoAfterOidc": "Failed to get user info after OIDC login", - "loginWithExternalProvider": "Login with external provider", - "loginWithExternal": "Login with External Provider", - "sendResetCode": "Send Reset Code", - "verifyCode": "Verify Code", - "resetPassword": "Reset Password", - "login": "Login", - "signUp": "Sign Up", - "failedToUpdateOidcConfig": "Failed to update OIDC configuration", - "failedToMakeUserAdmin": "Failed to make user admin", - "failedToStartTotpSetup": "Failed to start TOTP setup", - "invalidVerificationCode": "Invalid verification code", - "failedToDisableTotp": "Failed to disable TOTP", - "failedToGenerateBackupCodes": "Failed to generate backup codes" + "saving": "Desant...", + "saveConfiguration": "Desa la configuració", + "loading": "S'està carregant...", + "refresh": "Actualitza", + "adding": "Afegint...", + "makeAdmin": "Fes-te administrador/a", + "verifying": "Verificant...", + "verifyAndEnable": "Verifica i activa", + "secretKey": "Clau secreta", + "totpQrCode": "Codi QR del TOTP", + "passwordRequired": "Cal una contrasenya quan s'utilitza l'autenticació amb contrasenya", + "sshKeyRequired": "Cal una clau privada SSH quan s'utilitza l'autenticació per clau", + "keyTypeRequired": "El tipus de clau és obligatori quan s'utilitza l'autenticació de clau", + "validSshConfigRequired": "Cal seleccionar una configuració SSH vàlida de la llista.", + "updateHost": "Actualitza l'amfitrió", + "addHost": "Afegeix amfitrió", + "editHost": "Edita l'amfitrió", + "pinConnection": "Connexió de pins", + "authentication": "Autenticació", + "password": "Contrasenya", + "key": "Clau", + "sshPrivateKey": "Clau privada SSH", + "keyPassword": "Contrasenya clau", + "keyType": "Tipus de clau", + "enableTerminal": "Habilita el terminal", + "enableTunnel": "Habilita el túnel", + "enableFileManager": "Habilita el gestor de fitxers", + "defaultPath": "Camí predeterminat", + "tunnelConnections": "Connexions de túnels", + "maxRetries": "Màxim d'intents", + "upload": "Pujada", + "updateKey": "Actualitza la clau", + "productionFolder": "Producció", + "databaseServer": "Servidor de bases de dades", + "developmentServer": "Servidor de desenvolupament", + "developmentFolder": "Desenvolupament", + "webServerProduction": "Servidor web - Producció", + "unknownError": "Error desconegut", + "failedToInitiatePasswordReset": "No s'ha pogut iniciar el restabliment de la contrasenya", + "failedToVerifyResetCode": "No s'ha pogut verificar el codi de restabliment", + "failedToCompletePasswordReset": "No s'ha pogut completar el restabliment de la contrasenya", + "invalidTotpCode": "Codi TOTP no vàlid", + "failedToStartOidcLogin": "No s'ha pogut iniciar l'inici de sessió a l'OIDC.", + "failedToGetUserInfoAfterOidc": "No s'ha pogut obtenir la informació de l'usuari després de l'inici de sessió a l'OIDC.", + "loginWithExternalProvider": "Inicia la sessió amb un proveïdor extern", + "loginWithExternal": "Inicia la sessió amb un proveïdor extern", + "sendResetCode": "Enviar codi de restabliment", + "verifyCode": "Verifica el codi", + "resetPassword": "Restablir contrasenya", + "login": "Inicia la sessió", + "signUp": "Registra't", + "failedToUpdateOidcConfig": "No s'ha pogut actualitzar la configuració de l'OIDC.", + "failedToMakeUserAdmin": "No s'ha pogut fer que l'usuari sigui administrador.", + "failedToStartTotpSetup": "No s'ha pogut iniciar la configuració del TOTP", + "invalidVerificationCode": "Codi de verificació no vàlid", + "failedToDisableTotp": "No s'ha pogut desactivar TOTP", + "failedToGenerateBackupCodes": "No s'han pogut generar els codis de còpia de seguretat" }, "mobile": { - "selectHostToStart": "Select a host to start your terminal session", - "limitedSupportMessage": "Website mobile support is still in progress. Use the mobile app for a better experience.", - "mobileAppInProgress": "Mobile app is in progress", - "mobileAppInProgressDesc": "We're working on a dedicated mobile app to provide a better experience on mobile devices.", - "viewMobileAppDocs": "Install Mobile App", - "mobileAppDocumentation": "Mobile App Documentation" + "selectHostToStart": "Seleccioneu un amfitrió per iniciar la sessió de terminal", + "limitedSupportMessage": "El suport per a mòbils del lloc web encara està en curs. Feu servir l'aplicació mòbil per a una millor experiència.", + "mobileAppInProgress": "L'aplicació mòbil està en curs", + "mobileAppInProgressDesc": "Estem treballant en una aplicació mòbil específica per oferir una millor experiència en dispositius mòbils.", + "viewMobileAppDocs": "Instal·la l'aplicació mòbil", + "mobileAppDocumentation": "Documentació d'aplicacions mòbils" }, "dashboard": { - "title": "Dashboard", + "title": "Tauler de control", "github": "GitHub", - "support": "Support", - "discord": "Discord", - "donate": "Donate", - "serverOverview": "Server Overview", - "version": "Version", - "upToDate": "Up to Date", - "updateAvailable": "Update Available", - "uptime": "Uptime", - "database": "Database", - "healthy": "Healthy", + "support": "Suport", + "discord": "Discòrdia", + "donate": "Donar", + "serverOverview": "Visió general del servidor", + "version": "Versió", + "upToDate": "Actualitzat", + "updateAvailable": "Actualització disponible", + "uptime": "Temps de funcionament", + "database": "Base de dades", + "healthy": "Saludable", "error": "Error", - "totalServers": "Total Servers", - "totalTunnels": "Total Tunnels", - "totalCredentials": "Total Credentials", - "recentActivity": "Recent Activity", - "reset": "Reset", - "loadingRecentActivity": "Loading recent activity...", - "noRecentActivity": "No recent activity", - "quickActions": "Quick Actions", - "addHost": "Add Host", - "addCredential": "Add Credential", - "adminSettings": "Admin Settings", - "userProfile": "User Profile", - "serverStats": "Server Stats", - "loadingServerStats": "Loading server stats...", - "noServerData": "No server data available", + "totalServers": "Servidors totals", + "totalTunnels": "Túnels totals", + "totalCredentials": "Credencials totals", + "recentActivity": "Activitat recent", + "reset": "Restablir", + "loadingRecentActivity": "S'està carregant l'activitat recent...", + "noRecentActivity": "Sense activitat recent", + "quickActions": "Accions ràpides", + "addHost": "Afegeix amfitrió", + "addCredential": "Afegeix credencials", + "adminSettings": "Configuració de l'administrador", + "userProfile": "Perfil d'usuari", + "serverStats": "Estadístiques del servidor", + "loadingServerStats": "S'estan carregant les estadístiques del servidor...", + "noServerData": "No hi ha dades del servidor disponibles", "cpu": "CPU", "ram": "RAM", "notAvailable": "N/A" }, "rbac": { - "shareHost": "Share Host", - "shareHostTitle": "Share Host Access", - "shareHostDescription": "Grant temporary or permanent access to this host", - "targetUser": "Target User", - "selectUser": "Select a user to share with", - "duration": "Duration", - "durationHours": "Duration (hours)", - "neverExpires": "Never expires", - "permissionLevel": "Permission Level", + "shareHost": "Comparteix l'amfitrió", + "shareHostTitle": "Comparteix l'accés de l'amfitrió", + "shareHostDescription": "Atorga accés temporal o permanent a aquest amfitrió", + "targetUser": "Usuari objectiu", + "selectUser": "Selecciona un usuari amb qui compartir", + "duration": "Durada", + "durationHours": "Durada (hores)", + "neverExpires": "No caduca mai", + "permissionLevel": "Nivell de permís", "permissionLevels": { - "readonly": "Read-Only", - "readonlyDesc": "Can view only, no command input", - "restricted": "Restricted", - "restrictedDesc": "Blocks dangerous commands (passwd, rm -rf, etc.)", - "monitored": "Monitored", - "monitoredDesc": "Records all commands but doesn't block (Recommended)", - "full": "Full Access", - "fullDesc": "No restrictions (Not recommended)" + "readonly": "Només lectura", + "readonlyDesc": "Només es pot veure, no s'ha d'introduir cap comanda", + "restricted": "Restringit", + "restrictedDesc": "Bloqueja ordres perilloses (passwd, rm -rf, etc.)", + "monitored": "Monitoritzat", + "monitoredDesc": "Registra totes les ordres però no bloqueja (recomanat)", + "full": "Accés complet", + "fullDesc": "Sense restriccions (no recomanat)" }, - "blockedCommands": "Blocked Commands", - "blockedCommandsPlaceholder": "Enter commands to block, e.g., passwd, rm, dd", - "maxSessionDuration": "Max Session Duration (minutes)", - "createTempUser": "Create Temporary User", - "createTempUserDesc": "Creates a restricted user on the server instead of sharing your credentials. Requires sudo access. Most secure option.", - "expiresAt": "Expires At", - "expiresIn": "Expires in {{hours}} hours", - "expired": "Expired", - "grantedBy": "Granted By", - "accessLevel": "Access Level", - "lastAccessed": "Last Accessed", - "accessCount": "Access Count", - "revokeAccess": "Revoke Access", - "confirmRevokeAccess": "Are you sure you want to revoke access for {{username}}?", - "hostSharedSuccessfully": "Host shared successfully with {{username}}", - "hostAccessUpdated": "Host access updated", - "failedToShareHost": "Failed to share host", - "accessRevokedSuccessfully": "Access revoked successfully", - "failedToRevokeAccess": "Failed to revoke access", - "shared": "Shared", - "sharedHosts": "Shared Hosts", - "sharedWithMe": "Shared With Me", - "noSharedHosts": "No hosts shared with you", - "owner": "Owner", - "viewAccessList": "View Access List", - "accessList": "Access List", - "noAccessGranted": "No access has been granted for this host", - "noAccessGrantedMessage": "No users have been granted access to this host yet", - "manageAccessFor": "Manage access for", - "totalAccessRecords": "{{count}} access record(s)", - "neverAccessed": "Never", - "timesAccessed": "{{count}} time(s)", - "daysRemaining": "{{days}} day(s)", - "hoursRemaining": "{{hours}} hour(s)", - "failedToFetchAccessList": "Failed to fetch access list", - "currentAccess": "Current Access", - "securityWarning": "Security Warning", - "securityWarningMessage": "Sharing credentials gives the user full access to perform any operations on the server, including changing passwords and deleting files. Only share with trusted users.", - "tempUserRecommended": "We recommend enabling 'Create Temporary User' for better security.", - "roleManagement": "Role Management", - "manageRoles": "Manage Roles", - "manageRolesFor": "Manage roles for {{username}}", - "assignRole": "Assign Role", - "removeRole": "Remove Role", - "userRoles": "User Roles", - "permissions": "Permissions", - "systemRole": "System Role", - "customRole": "Custom Role", - "roleAssignedSuccessfully": "Role assigned to {{username}} successfully", - "failedToAssignRole": "Failed to assign role", - "roleRemovedSuccessfully": "Role removed from {{username}} successfully", - "failedToRemoveRole": "Failed to remove role", - "cannotRemoveSystemRole": "Cannot remove system role", - "cannotShareWithSelf": "Cannot share host with yourself", - "noCustomRolesToAssign": "No custom roles available. System roles are auto-assigned.", - "credentialSharingWarning": "Credential Authentication Not Supported for Sharing", - "credentialRequired": "Credential is required when sharing a host", - "credentialRequiredDescription": "This host does not use credential-based authentication. In order to share hosts, due to per-user-encryption, the host must use credential based authentication.", - "auditLogs": "Audit Logs", - "viewAuditLogs": "View Audit Logs", - "action": "Action", - "resourceType": "Resource Type", - "resourceName": "Resource Name", - "timestamp": "Timestamp", - "ipAddress": "IP Address", - "userAgent": "User Agent", - "success": "Success", - "failed": "Failed", - "details": "Details", - "noAuditLogs": "No audit logs available", - "sessionRecordings": "Session Recordings", - "viewRecording": "View Recording", - "downloadRecording": "Download Recording", - "dangerousCommand": "Dangerous Command Detected", - "commandBlocked": "Command Blocked", - "terminateSession": "Terminate Session", - "sessionTerminated": "Session terminated by host owner", - "sharedAccessExpired": "Your shared access to this host has expired", - "sharedAccessExpiresIn": "Shared access expires in {{hours}} hours", + "blockedCommands": "Comandes bloquejades", + "blockedCommandsPlaceholder": "Introduïu ordres per bloquejar, per exemple, passwd, rm, dd", + "maxSessionDuration": "Durada màxima de la sessió (minuts)", + "createTempUser": "Crea un usuari temporal", + "createTempUserDesc": "Crea un usuari restringit al servidor en comptes de compartir les teves credencials. Requereix accés sudo. L'opció més segura.", + "expiresAt": "Caduca a", + "expiresIn": "Caduca en {{hours}} hores", + "expired": "Caducat", + "grantedBy": "Atorgat per", + "accessLevel": "Nivell d'accés", + "lastAccessed": "Últim accés", + "accessCount": "Recompte d'accessos", + "revokeAccess": "Revocar accés", + "confirmRevokeAccess": "Esteu segur que voleu revocar l'accés per a {{username}}?", + "hostSharedSuccessfully": "L'amfitrió s'ha compartit correctament amb {{username}}", + "hostAccessUpdated": "Accés d'amfitrió actualitzat", + "failedToShareHost": "No s'ha pogut compartir l'amfitrió", + "accessRevokedSuccessfully": "Accés revocat correctament", + "failedToRevokeAccess": "No s'ha pogut revocar l'accés", + "shared": "Compartit", + "sharedHosts": "Amfitrions compartits", + "sharedWithMe": "Compartit amb mi", + "noSharedHosts": "No s'ha compartit cap amfitrió amb tu", + "owner": "propietari", + "viewAccessList": "Veure la llista d'accés", + "accessList": "Llista d'accés", + "noAccessGranted": "No s'ha concedit cap accés per a aquest amfitrió", + "noAccessGrantedMessage": "Encara no s'ha concedit accés a cap usuari a aquest amfitrió.", + "manageAccessFor": "Gestiona l'accés per a", + "totalAccessRecords": "{{count}} registre(s) d'accés", + "neverAccessed": "Mai", + "timesAccessed": "{{count}} temps(s)", + "daysRemaining": "{{days}} dia(es)", + "hoursRemaining": "{{hours}} hora(es)", + "failedToFetchAccessList": "No s'ha pogut obtenir la llista d'accés", + "currentAccess": "Accés actual", + "securityWarning": "Avís de seguretat", + "securityWarningMessage": "Compartir credencials dóna a l'usuari accés complet per dur a terme qualsevol operació al servidor, com ara canviar contrasenyes i suprimir fitxers. Comparteix només amb usuaris de confiança.", + "tempUserRecommended": "Recomanem activar \"Crea un usuari temporal\" per a una millor seguretat.", + "roleManagement": "Gestió de rols", + "manageRoles": "Gestiona els rols", + "manageRolesFor": "Gestiona els rols per a {{username}}", + "assignRole": "Assignar rol", + "removeRole": "Elimina el rol", + "userRoles": "Rols d'usuari", + "permissions": "Permisos", + "systemRole": "Rol del sistema", + "customRole": "Rol personalitzat", + "roleAssignedSuccessfully": "Rol assignat correctament a {{username}}", + "failedToAssignRole": "No s'ha pogut assignar el rol", + "roleRemovedSuccessfully": "Rol eliminat de {{username}} correctament", + "failedToRemoveRole": "No s'ha pogut eliminar el rol", + "cannotRemoveSystemRole": "No es pot eliminar el rol del sistema", + "cannotShareWithSelf": "No pots compartir l'amfitrió amb tu mateix", + "noCustomRolesToAssign": "No hi ha rols personalitzats disponibles. Els rols del sistema s'assignen automàticament.", + "credentialSharingWarning": "L'autenticació de credencials no és compatible amb la compartició", + "credentialRequired": "Cal tenir credencials quan es comparteix un amfitrió", + "credentialRequiredDescription": "Aquest amfitrió no utilitza l'autenticació basada en credencials. Per compartir amfitrions, a causa del xifratge per usuari, l'amfitrió ha d'utilitzar l'autenticació basada en credencials.", + "auditLogs": "Registres d'auditoria", + "viewAuditLogs": "Veure registres d'auditoria", + "action": "Acció", + "resourceType": "Tipus de recurs", + "resourceName": "Nom del recurs", + "timestamp": "Marca de temps", + "ipAddress": "Adreça IP", + "userAgent": "Agent d'usuari", + "success": "Èxit", + "failed": "Fallat", + "details": "Detalls", + "noAuditLogs": "No hi ha registres d'auditoria disponibles", + "sessionRecordings": "Enregistraments de sessions", + "viewRecording": "Veure enregistrament", + "downloadRecording": "Descarrega la gravació", + "dangerousCommand": "Comandament perillós detectat", + "commandBlocked": "Comandament bloquejat", + "terminateSession": "Finalitza la sessió", + "sessionTerminated": "Sessió finalitzada pel propietari de l'amfitrió", + "sharedAccessExpired": "El vostre accés compartit a aquest amfitrió ha caducat.", + "sharedAccessExpiresIn": "L'accés compartit caduca en {{hours}} hores", "roles": { - "label": "Roles", - "admin": "Administrator", - "user": "User" + "label": "Rols", + "admin": "Administrador/a", + "user": "Usuari" }, - "createRole": "Create Role", - "editRole": "Edit Role", - "roleName": "Role Name", - "displayName": "Display Name", - "description": "Description", - "assignRoles": "Assign Roles", - "userRoleAssignment": "User-Role Assignment", - "selectUserPlaceholder": "Select a user", - "searchUsers": "Search users...", - "noUserFound": "No user found", - "currentRoles": "Current Roles", - "noRolesAssigned": "No roles assigned", - "assignNewRole": "Assign New Role", - "selectRolePlaceholder": "Select a role", - "searchRoles": "Search roles...", - "noRoleFound": "No role found", - "assign": "Assign", - "roleCreatedSuccessfully": "Role created successfully", - "roleUpdatedSuccessfully": "Role updated successfully", - "roleDeletedSuccessfully": "Role deleted successfully", - "failedToLoadRoles": "Failed to load roles", - "failedToSaveRole": "Failed to save role", - "failedToDeleteRole": "Failed to delete role", - "roleDisplayNameRequired": "Role display name is required", - "roleNameRequired": "Role name is required", - "roleNameHint": "Use lowercase letters, numbers, underscores, and hyphens only", - "displayNamePlaceholder": "Developer", - "descriptionPlaceholder": "Software developers and engineers", - "confirmDeleteRole": "Delete Role", - "confirmDeleteRoleDescription": "Are you sure you want to delete the role '{{name}}'? This action cannot be undone.", - "confirmRemoveRole": "Remove Role", - "confirmRemoveRoleDescription": "Are you sure you want to remove this role from the user?", - "editRoleDescription": "Update role information", - "createRoleDescription": "Create a new custom role for grouping users", - "assignRolesDescription": "Manage role assignments for users", - "noRoles": "No roles found", - "selectRole": "Select Role", - "type": "Type", - "user": "User", - "role": "Role", - "saveHostFirst": "Save Host First", - "saveHostFirstDescription": "Please save the host before configuring sharing settings.", - "shareWithUser": "Share with User", - "shareWithRole": "Share with Role", - "share": "Share", - "target": "Target", - "expires": "Expires", - "never": "Never", - "noAccessRecords": "No access records found", - "sharedSuccessfully": "Shared successfully", - "failedToShare": "Failed to share", - "confirmRevokeAccessDescription": "Are you sure you want to revoke this access?", - "hours": "hours", - "sharing": "Sharing", - "selectUserAndRole": "Please select both a user and a role", - "view": "View Only", - "viewDesc": "Due to the Termix encryption system, other permission levels will come at a later date" + "createRole": "Crea un rol", + "editRole": "Edita el rol", + "roleName": "Nom del rol", + "displayName": "Nom de visualització", + "description": "Descripció", + "assignRoles": "Assignar rols", + "userRoleAssignment": "Assignació de rols d'usuari", + "selectUserPlaceholder": "Selecciona un usuari", + "searchUsers": "Cerca usuaris...", + "noUserFound": "No s'ha trobat cap usuari", + "currentRoles": "Rols actuals", + "noRolesAssigned": "Sense rols assignats", + "assignNewRole": "Assigna un nou rol", + "selectRolePlaceholder": "Selecciona un rol", + "searchRoles": "Cerca rols...", + "noRoleFound": "No s'ha trobat cap rol", + "assign": "Assignar", + "roleCreatedSuccessfully": "Rol creat correctament", + "roleUpdatedSuccessfully": "El rol s'ha actualitzat correctament", + "roleDeletedSuccessfully": "El rol s'ha suprimit correctament", + "failedToLoadRoles": "No s'han pogut carregar els rols", + "failedToSaveRole": "No s'ha pogut desar el rol", + "failedToDeleteRole": "No s'ha pogut suprimir el rol", + "roleDisplayNameRequired": "El nom de visualització del rol és obligatori.", + "roleNameRequired": "El nom del rol és obligatori", + "roleNameHint": "Utilitzeu només lletres minúscules, números, subratllats i guions", + "displayNamePlaceholder": "Desenvolupador", + "descriptionPlaceholder": "Desenvolupadors i enginyers de programari", + "confirmDeleteRole": "Suprimeix el rol", + "confirmDeleteRoleDescription": "Esteu segur que voleu suprimir el rol '{{name}}'? Aquesta acció no es pot desfer.", + "confirmRemoveRole": "Elimina el rol", + "confirmRemoveRoleDescription": "Esteu segur que voleu eliminar aquest rol de l'usuari?", + "editRoleDescription": "Actualitza la informació del rol", + "createRoleDescription": "Crea un nou rol personalitzat per agrupar usuaris", + "assignRolesDescription": "Gestionar les assignacions de rols per als usuaris", + "noRoles": "No s'han trobat rols", + "selectRole": "Selecciona un rol", + "type": "Tipus", + "user": "Usuari", + "role": "Rol", + "saveHostFirst": "Desa l'amfitrió primer", + "saveHostFirstDescription": "Si us plau, deseu l'amfitrió abans de configurar els paràmetres de compartició.", + "shareWithUser": "Comparteix amb l'usuari", + "shareWithRole": "Comparteix amb el rol", + "share": "Comparteix", + "target": "Objectiu", + "expires": "Caduca", + "never": "Mai", + "noAccessRecords": "No s'han trobat registres d'accés", + "sharedSuccessfully": "S'ha compartit correctament", + "failedToShare": "No s'ha pogut compartir", + "confirmRevokeAccessDescription": "Esteu segur que voleu revocar aquest accés?", + "hours": "hores", + "sharing": "Compartir", + "selectUserAndRole": "Si us plau, seleccioneu un usuari i un rol.", + "view": "Només visualització", + "viewDesc": "A causa del sistema de xifratge Termix, altres nivells de permisos arribaran més endavant." }, "commandPalette": { - "searchPlaceholder": "Search for hosts or quick actions...", - "recentActivity": "Recent Activity", - "navigation": "Navigation", - "addHost": "Add Host", - "addCredential": "Add Credential", - "adminSettings": "Admin Settings", - "userProfile": "User Profile", - "updateLog": "Update Log", - "hosts": "Hosts", - "openServerDetails": "Open Server Details", - "openFileManager": "Open File Manager", - "edit": "Edit", - "links": "Links", + "searchPlaceholder": "Cerca amfitrions o accions ràpides...", + "recentActivity": "Activitat recent", + "navigation": "Navegació", + "addHost": "Afegeix amfitrió", + "addCredential": "Afegeix credencials", + "adminSettings": "Configuració de l'administrador", + "userProfile": "Perfil d'usuari", + "updateLog": "Registre d'actualitzacions", + "hosts": "Amfitrions", + "openServerDetails": "Obre els detalls del servidor", + "openFileManager": "Obre el gestor de fitxers", + "edit": "Edita", + "links": "Enllaços", "github": "GitHub", - "support": "Support", - "discord": "Discord", - "donate": "Donate", - "press": "Press", - "toToggle": "to toggle", - "close": "Close", - "hostManager": "Host Manager", - "pressToToggle": "Press Left Shift twice to open the command palette" + "support": "Suport", + "discord": "Discòrdia", + "donate": "Donar", + "press": "Premsa", + "toToggle": "alternar", + "close": "Tanca", + "hostManager": "Gestor d'amfitrions", + "pressToToggle": "Premeu la tecla Majúscules esquerra dues vegades per obrir la paleta d'ordres" }, "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connectingToHost": "Connecting to host...", + "notEnabled": "Docker no està habilitat per a aquest amfitrió", + "validating": "Validant Docker...", + "connectingToHost": "Connectant a l'amfitrió...", "error": "Error", - "errorCode": "Error code: {{code}}", + "errorCode": "Codi d'error: {{code}}", "version": "Docker {{version}}", - "containerStarted": "Container {{name}} started", - "failedToStartContainer": "Failed to start container {{name}}", - "containerStopped": "Container {{name}} stopped", - "failedToStopContainer": "Failed to stop container {{name}}", - "containerRestarted": "Container {{name}} restarted", - "failedToRestartContainer": "Failed to restart container {{name}}", - "containerPaused": "Container {{name}} paused", - "containerUnpaused": "Container {{name}} unpaused", - "failedToTogglePauseContainer": "Failed to toggle pause state for container {{name}}", - "containerRemoved": "Container {{name}} removed", - "failedToRemoveContainer": "Failed to remove container {{name}}", - "image": "Image", + "containerStarted": "Contenidor {{name}} iniciat", + "failedToStartContainer": "No s'ha pogut iniciar el contenidor {{name}}", + "containerStopped": "El contenidor {{name}} s'ha aturat", + "failedToStopContainer": "No s'ha pogut aturar el contenidor {{name}}", + "containerRestarted": "El contenidor {{name}} s'ha reiniciat", + "failedToRestartContainer": "No s'ha pogut reiniciar el contenidor {{name}}", + "containerPaused": "Contenidor {{name}} en pausa", + "containerUnpaused": "Contenidor {{name}} reactivat", + "failedToTogglePauseContainer": "No s'ha pogut activar o desactivar l'estat de pausa per al contenidor {{name}}", + "containerRemoved": "Contenidor {{name}} eliminat", + "failedToRemoveContainer": "No s'ha pogut eliminar el contenidor {{name}}", + "image": "Imatge", "idLabel": "ID", "ports": "Ports", - "noPorts": "No ports", - "created": "Created", - "start": "Start", - "stop": "Stop", - "pause": "Pause", - "unpause": "Unpause", - "restart": "Restart", - "remove": "Remove", - "removeContainer": "Remove Container", - "confirmRemoveContainer": "Are you sure you want to remove the container '{{name}}'? This action cannot be undone.", - "runningContainerWarning": "Warning: This container is currently running. Removing it will stop the container first.", - "removing": "Removing...", - "loadingContainers": "Loading containers...", - "noContainersFound": "No containers found", - "noContainersFoundHint": "No Docker containers are available on this host", - "searchPlaceholder": "Search containers...", - "filterByStatusPlaceholder": "Filter by status", - "allContainersCount": "All ({{count}})", + "noPorts": "Sense ports", + "created": "Creat", + "start": "Inici", + "stop": "Atura", + "pause": "Pausa", + "unpause": "Reprendre la pausa", + "restart": "Reinicia", + "remove": "Elimina", + "removeContainer": "Elimina el contenidor", + "confirmRemoveContainer": "Esteu segur que voleu eliminar el contenidor '{{name}}'? Aquesta acció no es pot desfer.", + "runningContainerWarning": "Avís: Aquest contenidor està en execució. Si el suprimiu, primer s'aturarà el contenidor.", + "removing": "S'està eliminant...", + "loadingContainers": "Carregant contenidors...", + "noContainersFound": "No s'han trobat contenidors", + "noContainersFoundHint": "No hi ha contenidors Docker disponibles en aquest amfitrió.", + "searchPlaceholder": "Cerca contenidors...", + "filterByStatusPlaceholder": "Filtra per estat", + "allContainersCount": "Tot ({{count}})", "statusCount": "{{status}} ({{count}})", - "noContainersMatchFilters": "No containers match your filters", - "noContainersMatchFiltersHint": "Try adjusting your search or filter criteria", - "containerMustBeRunningToViewStats": "Container must be running to view statistics", - "failedToFetchStats": "Failed to fetch container statistics", - "containerNotRunning": "Container not running", - "startContainerToViewStats": "Start the container to view statistics", - "loadingStats": "Loading statistics...", - "errorLoadingStats": "Error loading statistics", - "noStatsAvailable": "No statistics available", - "cpuUsage": "CPU Usage", - "current": "Current", - "memoryUsage": "Memory Usage", - "usedLimit": "Used / Limit", - "percentage": "Percentage", - "networkIo": "Network I/O", - "input": "Input", - "output": "Output", - "blockIo": "Block I/O", - "read": "Read", - "write": "Write", + "noContainersMatchFilters": "No hi ha contenidors que coincideixin amb els vostres filtres", + "noContainersMatchFiltersHint": "Prova d'ajustar els criteris de cerca o de filtre", + "containerMustBeRunningToViewStats": "El contenidor ha d'estar en execució per veure les estadístiques", + "failedToFetchStats": "No s'han pogut obtenir les estadístiques del contenidor", + "containerNotRunning": "El contenidor no funciona", + "startContainerToViewStats": "Inicia el contenidor per veure les estadístiques", + "loadingStats": "S'estan carregant les estadístiques...", + "errorLoadingStats": "S'ha produït un error en carregar les estadístiques", + "noStatsAvailable": "No hi ha estadístiques disponibles", + "cpuUsage": "Ús de la CPU", + "current": "Actual", + "memoryUsage": "Ús de memòria", + "usedLimit": "Utilitzat / Límit", + "percentage": "Percentatge", + "networkIo": "E/S de xarxa", + "input": "Entrada", + "output": "Sortida", + "blockIo": "Bloc d'E/S", + "read": "Llegir", + "write": "Escriure", "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", + "containerInformation": "Informació del contenidor", + "name": "Nom", "id": "ID", - "state": "State", - "disconnectedFromContainer": "Disconnected from container", - "containerMustBeRunning": "Container must be running to access console", - "authenticationRequired": "Authentication required", - "verificationCodePrompt": "Enter verification code", - "totpVerificationFailed": "TOTP verification failed. Please try again.", - "connectedTo": "Connected to {{containerName}}", - "disconnected": "Disconnected", - "consoleError": "Console error", + "state": "Estat", + "disconnectedFromContainer": "Desconnectat del contenidor", + "containerMustBeRunning": "El contenidor ha d'estar en execució per accedir a la consola.", + "authenticationRequired": "Cal autenticació", + "verificationCodePrompt": "Introduïu el codi de verificació", + "totpVerificationFailed": "La verificació TOTP ha fallat. Torna-ho a provar.", + "connectedTo": "Connectat a {{containerName}}", + "disconnected": "Desconnectat", + "consoleError": "Error de consola", "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", + "failedToConnect": "No s'ha pogut connectar al contenidor", + "console": "Consola", + "selectShell": "Selecciona l'intèrpret d'ordres", "bash": "Bash", "sh": "sh", - "ash": "ash", - "connecting": "Connecting...", - "connect": "Connect", - "disconnect": "Disconnect", - "notConnected": "Not connected", - "clickToConnect": "Click connect to start a shell session", - "connectingTo": "Connecting to {{containerName}}...", - "containerNotFound": "Container not found", - "backToList": "Back to List", - "logs": "Logs", - "stats": "Stats", - "consoleTab": "Console", - "startContainerToAccess": "Start the container to access the console" + "ash": "cendra", + "connecting": "Connectant...", + "connect": "Connecta", + "disconnect": "Desconnecta", + "notConnected": "No connectat", + "clickToConnect": "Feu clic a Connecta per iniciar una sessió de shell", + "connectingTo": "Connectant a {{containerName}}...", + "containerNotFound": "No s'ha trobat el contenidor", + "backToList": "Torna a la llista", + "logs": "Registres", + "stats": "Estadístiques", + "consoleTab": "Consola", + "startContainerToAccess": "Inicieu el contenidor per accedir a la consola" }, "theme": { - "switchToLight": "Switch to Light", - "switchToDark": "Switch to Dark" + "switchToLight": "Canvia a la llum", + "switchToDark": "Canvia a Fosc" } }