From de779def67ca856bf6aee0e424e132ac47615852 Mon Sep 17 00:00:00 2001 From: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> Date: Tue, 13 Jan 2026 00:52:04 -0600 Subject: [PATCH] New translations en.json (Afrikaans) --- src/locales/translated/af.json | 4526 ++++++++++++++++---------------- 1 file changed, 2263 insertions(+), 2263 deletions(-) diff --git a/src/locales/translated/af.json b/src/locales/translated/af.json index e319cfd7..fffbdff8 100644 --- a/src/locales/translated/af.json +++ b/src/locales/translated/af.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", - "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", - "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", + "credentialsViewer": "Geloofsbriewe-kyker", + "manageYourSSHCredentials": "Bestuur jou SSH-bewyse veilig", + "addCredential": "Voeg geloofsbriewe by", + "createCredential": "Skep geloofsbriewe", + "editCredential": "Wysig geloofsbriewe", + "viewCredential": "Bekyk geloofsbriewe", + "duplicateCredential": "Duplikaatbewys", + "deleteCredential": "Vee geloofsbriewe uit", + "updateCredential": "Opdatering van geloofsbriewe", + "credentialName": "Geloofsbriefnaam", + "credentialDescription": "Beskrywing", + "username": "Gebruikersnaam", + "searchCredentials": "Soek geloofsbriewe...", + "selectFolder": "Kies vouer", + "selectAuthType": "Kies Magtigingsoort", + "allFolders": "Alle vouers", + "allAuthTypes": "Alle Magtigingstipes", + "uncategorized": "Ongekategoriseerd", + "totalCredentials": "Totaal", + "keyBased": "Sleutel-gebaseerd", + "passwordBased": "Wagwoordgebaseerd", + "folders": "Lêers", + "noCredentialsMatchFilters": "Geen geloofsbriewe stem ooreen met jou filters nie", + "noCredentialsYet": "Geen geloofsbriewe nog geskep nie", + "createFirstCredential": "Skep jou eerste geloofsbrief", + "failedToFetchCredentials": "Kon nie geloofsbriewe haal nie", + "credentialDeletedSuccessfully": "Geloofsbriewe suksesvol uitgevee", + "failedToDeleteCredential": "Kon nie geloofsbriewe verwyder nie", + "confirmDeleteCredential": "Is jy seker jy wil die geloofsbriewe \"{{name}}\" verwyder?", + "credentialCreatedSuccessfully": "Geloofsbrief suksesvol geskep", + "credentialUpdatedSuccessfully": "Geloofsbriewe suksesvol opgedateer", + "failedToSaveCredential": "Kon nie geloofsbriewe stoor nie", + "failedToFetchCredentialDetails": "Kon nie geloofsbriewebesonderhede haal nie", + "failedToFetchHostsUsing": "Kon nie gashere met hierdie geloofsbriewe haal nie", + "loadingCredentials": "Laai aanmeldbewyse...", + "retry": "Probeer weer", + "noCredentials": "Geen geloofsbriewe nie", + "noCredentialsMessage": "Jy het nog geen geloofsbriewe bygevoeg nie. Klik \"Voeg geloofsbriewe by\" om te begin.", + "sshCredentials": "SSH-bewyse", + "credentialsCount": "{{count}} geloofsbriewe", + "refresh": "Verfris", + "passwordRequired": "Wagwoord word vereis", + "sshKeyRequired": "SSH-sleutel word vereis", + "credentialAddedSuccessfully": "Geloofsbrief \"{{name}}\" suksesvol bygevoeg", + "general": "Algemeen", + "description": "Beskrywing", + "folder": "Vouer", + "tags": "Etikette", + "addTagsSpaceToAdd": "Voeg etikette by (druk spasie om by te voeg)", + "password": "Wagwoord", + "key": "Sleutel", + "sshPrivateKey": "SSH Privaat Sleutel", + "upload": "Oplaai", + "updateKey": "Opdateringsleutel", + "keyPassword": "Sleutelwagwoord", + "keyType": "Sleuteltipe", "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": "Basiese inligting", + "authentication": "Verifikasie", + "organization": "Organisasie", + "basicInformation": "Basiese Inligting", + "basicInformationDescription": "Voer die basiese inligting vir hierdie geloofsbrief in", + "authenticationMethod": "Verifikasiemetode", + "authenticationMethodDescription": "Kies hoe jy met SSH-bedieners wil verifieer", + "organizationDescription": "Organiseer jou geloofsbriewe met gidse en etikette", + "enterCredentialName": "Voer geloofsbriefnaam in", + "enterCredentialDescription": "Voer beskrywing in (opsioneel)", + "enterUsername": "Voer gebruikersnaam in", + "nameIsRequired": "Geloofsnaam word vereis", + "usernameIsRequired": "Gebruikersnaam word vereis", + "authenticationType": "Verifikasietipe", + "passwordAuthDescription": "Gebruik wagwoordverifikasie", + "sshKeyAuthDescription": "Gebruik SSH-sleutelverifikasie", + "passwordIsRequired": "Wagwoord word vereis", + "sshKeyIsRequired": "SSH-sleutel word vereis", + "sshKeyType": "SSH-sleuteltipe", + "privateKey": "Privaat Sleutel", + "enterPassword": "Voer wagwoord in", + "enterPrivateKey": "Voer privaat sleutel in", + "keyPassphrase": "Sleutelwagwoordfrase", + "enterKeyPassphrase": "Voer sleutelwagwoordfrase in (opsioneel)", + "keyPassphraseOptional": "Opsioneel: los leeg as jou sleutel geen wagwoordfrase het nie", + "leaveEmptyToKeepCurrent": "Los leeg om huidige waarde te behou", + "uploadKeyFile": "Laai sleutellêer op", + "generateKeyPairButton": "Genereer sleutelpaar", + "generateKeyPair": "Genereer sleutelpaar", + "generateKeyPairDescription": "Genereer 'n nuwe SSH-sleutelpaar. As jy die sleutel met 'n wagwoordfrase wil beskerm, voer dit eers in die Sleutelwagwoord-veld hieronder in.", + "deploySSHKey": "Implementeer SSH-sleutel", + "deploySSHKeyDescription": "Implementeer publieke sleutel na teikenbediener", + "sourceCredential": "Bronbewys", + "targetHost": "Teikengasheer", + "deploymentProcess": "Implementeringsproses", + "deploymentProcessDescription": "Dit sal die publieke sleutel veilig by die teikengasheer se ~/.ssh/authorized_keys-lêer voeg sonder om bestaande sleutels te oorskryf. Die bewerking is omkeerbaar.", + "chooseHostToDeploy": "Kies 'n gasheer om na te ontplooi...", + "deploying": "Implementeer tans...", + "name": "Naam", + "noHostsAvailable": "Geen gashere beskikbaar nie", + "noHostsMatchSearch": "Geen gashere stem ooreen met jou soektog nie", + "sshKeyGenerationNotImplemented": "SSH-sleutelgenereringsfunksie kom binnekort", + "connectionTestingNotImplemented": "Verbindingstoetsfunksie kom binnekort", + "testConnection": "Toetsverbinding", + "selectOrCreateFolder": "Kies of skep vouer", + "noFolder": "Geen vouer nie", + "orCreateNewFolder": "Of skep 'n nuwe lêergids", + "addTag": "Voeg etiket by", + "saving": "Stoor...", + "credentialId": "Geloofsbrief-ID", + "overview": "Oorsig", + "security": "Sekuriteit", + "usage": "Gebruik", + "securityDetails": "Sekuriteitsbesonderhede", + "securityDetailsDescription": "Bekyk geënkripteerde geloofsbriewe-inligting", + "credentialSecured": "Geloofsbriewe Beveilig", + "credentialSecuredDescription": "Alle sensitiewe data word geïnkripteer met AES-256", + "passwordAuthentication": "Wagwoordverifikasie", + "keyAuthentication": "Sleutelverifikasie", + "securityReminder": "Sekuriteitsherinnering", + "securityReminderText": "Moet nooit jou geloofsbriewe deel nie. Alle data word in rus geïnkripteer.", + "hostsUsingCredential": "Gashere wat hierdie geloofsbrief gebruik", + "noHostsUsingCredential": "Geen gashere gebruik tans hierdie geloofsbriewe nie", + "timesUsed": "Keer gebruik", + "lastUsed": "Laas Gebruik", + "connectedHosts": "Gekoppelde gashere", + "created": "Geskep", + "lastModified": "Laas Gewysig", + "usageStatistics": "Gebruiksstatistieke", + "copiedToClipboard": "{{field}} na knipbord gekopieer", + "failedToCopy": "Kon nie na knipbord kopieer nie", + "sshKey": "SSH-sleutel", + "createCredentialDescription": "Skep 'n nuwe SSH-bewys vir veilige toegang", + "editCredentialDescription": "Dateer die geloofsbriewe-inligting op", + "listView": "Lys", + "folderView": "Lêers", + "unknownCredential": "Onbekend", + "confirmRemoveFromFolder": "Is jy seker jy wil \"{{name}}\" uit die vouer \"{{folder}}\" verwyder? Die geloofsbriewe sal na \"Ongekategoriseerd\" geskuif word.", + "removedFromFolder": "Aanbevelingsbewys \"{{name}}\" suksesvol uit die vouer verwyder", + "failedToRemoveFromFolder": "Kon nie geloofsbriewe uit vouer verwyder nie", + "folderRenamed": "Lêer \"{{oldName}}\" is suksesvol hernoem na \"{{newName}}\"", + "failedToRenameFolder": "Kon nie die vouer hernoem nie", + "movedToFolder": "Geloofsbrief \"{{name}}\" suksesvol na \"{{folder}}\" geskuif", + "failedToMoveToFolder": "Kon nie geloofsbriewe na vouer skuif nie", + "sshPublicKey": "SSH Publieke Sleutel", + "publicKeyNote": "Publieke sleutel is opsioneel, maar word aanbeveel vir sleutelvalidering", + "publicKeyUploaded": "Publieke sleutel opgelaai", + "uploadPublicKey": "Laai publieke sleutel op", + "uploadPrivateKeyFile": "Laai privaat sleutellêer op", + "uploadPublicKeyFile": "Laai publieke sleutellêer op", + "privateKeyRequiredForGeneration": "Privaat sleutel word benodig om publieke sleutel te genereer", + "failedToGeneratePublicKey": "Kon nie publieke sleutel genereer nie", + "generatePublicKey": "Genereer vanaf Privaat Sleutel", + "publicKeyGeneratedSuccessfully": "Publieke sleutel suksesvol gegenereer", + "detectedKeyType": "Bespeurde sleuteltipe", + "detectingKeyType": "opsporing...", + "optional": "Opsioneel", + "generateKeyPairNew": "Genereer Nuwe Sleutelpaar", + "generateEd25519": "Genereer Ed25519", + "generateECDSA": "Genereer ECDSA", + "generateRSA": "Genereer 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": "{{keyType}} sleutelpaar suksesvol gegenereer", + "failedToGenerateKeyPair": "Kon nie sleutelpaar genereer nie", + "generateKeyPairNote": "Genereer 'n nuwe SSH-sleutelpaar direk. Dit sal enige bestaande sleutels in die vorm vervang.", + "invalidKey": "Ongeldige sleutel", + "detectionError": "Opsporingsfout", + "removing": "Verwydering:", + "clickToEditCredential": "Klik om geloofsbriewe te wysig", + "dragToMoveBetweenFolders": "Sleep om tussen dopgehou te beweeg", + "keyBasedOnlyForDeployment": "Slegs SSH-sleutelgebaseerde geloofsbriewe kan ontplooi word", + "publicKeyRequiredForDeployment": "Publieke sleutel word vereis vir ontplooiing", + "selectTargetHost": "Kies asseblief 'n teikengasheer", + "keyDeployedSuccessfully": "SSH-sleutel suksesvol ontplooi", + "deploymentFailed": "Implementering het misluk", + "failedToDeployKey": "Kon nie SSH-sleutel ontplooi nie", + "clickToRenameFolder": "Klik om die vouer te hernoem", + "renameFolder": "Hernoem vouer", "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" + "error": "Fout: {{error}}", + "dragging": "Sleep {{fileName}}", + "preparing": "Voorbereiding {{fileName}}", + "readySingle": "Gereed om af te laai {{fileName}}", + "readyMultiple": "Gereed om {{count}} lêers af te laai", + "batchDrag": "Sleep {{count}} lêers na die lessenaar", + "dragToDesktop": "Sleep na die lessenaar", + "canDragAnywhere": "Jy kan lêers enige plek op jou lessenaar sleep" }, "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": "SSH-gereedskap", + "closeTools": "Maak SSH-gereedskap toe", + "keyRecording": "Sleutelopname", + "startKeyRecording": "Begin sleutelopname", + "stopKeyRecording": "Stop sleutelopname", + "selectTerminals": "Kies terminale:", + "typeCommands": "Tik opdragte (alle sleutels word ondersteun):", + "commandsWillBeSent": "Bevele sal gestuur word na {{count}} gekose terminaal(e).", + "settings": "Instellings", + "enableRightClickCopyPaste": "Aktiveer regskliek kopieer/plak", + "shareIdeas": "Het jy idees vir wat volgende vir ssh-gereedskap moet kom? Deel dit op", "scripts": { - "inputPlaceholder": "e.g., System Commands, Docker Scripts" + "inputPlaceholder": "bv. Stelselopdragte, Docker-skripte" } }, "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": "Brokkies", + "new": "Nuwe brokkie", + "create": "Skep brokkie", + "edit": "Wysig brokkie", + "run": "Hardloop", + "empty": "Geen brokkies nog nie", + "emptyHint": "Skep 'n brokkie om algemeen gebruikte opdragte te stoor", + "searchSnippets": "Soek brokkies...", + "name": "Naam", + "description": "Beskrywing", + "content": "Bevel", + "namePlaceholder": "bv., Herbegin Nginx", + "descriptionPlaceholder": "Opsionele beskrywing", + "contentPlaceholder": "bv. sudo systemctl herbegin nginx", + "nameRequired": "Naam word vereis", + "contentRequired": "Bevel word vereis", + "createDescription": "Skep 'n nuwe opdragbrokkie vir vinnige uitvoering", + "editDescription": "Wysig hierdie opdragbrokkie", + "deleteConfirmTitle": "Vee brokkie uit", + "deleteConfirmDescription": "Is jy seker jy wil \"{{name}}\" verwyder?", + "createSuccess": "Brokkie suksesvol geskep", + "updateSuccess": "Brokkie suksesvol opgedateer", + "deleteSuccess": "Brokkie suksesvol uitgevee", + "createFailed": "Kon nie brokkie skep nie", + "updateFailed": "Kon nie die brokkie opdateer nie", + "deleteFailed": "Kon nie fragment uitvee nie", + "failedToFetch": "Kon nie brokkies haal nie", + "executeSuccess": "Uitvoerend: {{name}}", + "copySuccess": "\"{{name}}\" na knipbord gekopieer", + "runTooltip": "Voer hierdie fragment in die terminaal uit", + "copyTooltip": "Kopieer stukkie na knipbord", + "editTooltip": "Wysig hierdie brokkie", + "deleteTooltip": "Vee hierdie brokkie uit", + "newFolder": "Nuwe vouer", + "reorderSameFolder": "Kan slegs brokkies binne dieselfde vouer herrangskik", + "reorderSuccess": "Brokkies suksesvol herrangskik", + "reorderFailed": "Kon nie brokkies herrangskik nie", + "deleteFolderConfirm": "Vee die vouer \"{{name}}\" uit? Alle brokkies sal na Ongekategoriseerd geskuif word.", + "deleteFolderSuccess": "Vouer suksesvol verwyder", + "deleteFolderFailed": "Kon nie vouer uitvee nie", + "updateFolderSuccess": "Vouer suksesvol opgedateer", + "createFolderSuccess": "Vouer suksesvol geskep", + "updateFolderFailed": "Kon nie vouer opdateer nie", + "createFolderFailed": "Kon nie vouer skep nie", + "selectTerminals": "Kies Terminale (opsioneel)", + "executeOnSelected": "Voer uit op {{count}} gekose terminaal(e)", + "executeOnCurrent": "Voer uit op huidige terminaal (klik om veelvuldige te kies)", + "folder": "Vouer", + "selectFolder": "Kies 'n vouer of los leeg", + "noFolder": "Geen vouer nie (Ongekategoriseerd)", + "folderName": "Vouernaam", + "folderNameRequired": "Vouernaam word vereis", + "folderColor": "Vouerkleur", + "folderIcon": "Vouer-ikoon", + "preview": "Voorskou", + "updateFolder": "Opdateer vouer", + "createFolder": "Skep vouer", + "editFolder": "Wysig vouer", + "editFolderDescription": "Pas jou brokkie-lêergids aan", + "createFolderDescription": "Organiseer jou brokkies in dopgehou" }, "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": "Geskiedenis", + "searchPlaceholder": "Soek opdragte...", + "noTerminal": "Geen aktiewe terminaal nie", + "noTerminalHint": "Maak 'n terminaal oop om die opdraggeskiedenis daarvan te sien.", + "empty": "Geen opdraggeskiedenis nog nie", + "emptyHint": "Voer opdragte in die aktiewe terminaal uit om sy geskiedenis te bou.", + "noResults": "Geen bevele gevind nie", + "noResultsHint": "Geen bevele wat ooreenstem met \"{{query}}\"", + "deleteSuccess": "Opdrag uit geskiedenis verwyder", + "deleteFailed": "Kon nie die opdrag verwyder nie.", + "deleteTooltip": "Vee-opdrag uit", + "tabHint": "Gebruik Tab in Terminal om outomaties vanaf opdraggeskiedenis te voltooi indien geaktiveer in Gebruikersprofiel", + "authRequiredRefresh": "Verifikasie word vereis. Verfris asseblief die bladsy.", + "dataAccessLockedReauth": "Datatoegang gesluit. Herverifieer asseblief.", + "loading": "Laai opdraggeskiedenis...", + "error": "Fout by die laai van geskiedenis" }, "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": "Gesplete skerm", + "none": "Geen", + "twoSplit": "2-rigting", + "threeSplit": "3-rigting", + "fourSplit": "4-rigting", + "availableTabs": "Beskikbare oortjies", + "dragTabsHint": "Sleep oortjies na die uitlegselle hieronder om hulle toe te ken", + "layout": "Gesplete skermuitleg", + "dropHere": "Laat val oortjie hier", + "apply": "Pas Verdeling toe", + "clear": "Duidelike Splitsing", + "selectMode": "Kies 'n gesplete skermmodus", + "helpText": "Kies hoeveel oortjies jy gelyktydig wil sien", + "success": "Gesplete skerm suksesvol toegepas", + "cleared": "Gesplete skerm skoongemaak", "error": { - "noAssignments": "Please assign at least one tab to the layout", - "fillAllSlots": "Please fill all {{count}} slots before applying" + "noAssignments": "Ken asseblief ten minste een oortjie aan die uitleg toe", + "fillAllSlots": "Vul asseblief alle {{count}} gleuwe in voordat u aansoek doen" } }, "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": "Aangemeld!", + "loggedInMessage": "Jy is aangemeld! Gebruik die sybalk om toegang tot alle beskikbare gereedskap te kry. Om te begin, skep 'n SSH-gasheer in die SSH Bestuurder-oortjie. Sodra dit geskep is, kan jy aan daardie gasheer koppel deur die ander toepassings in die sybalk te gebruik.", + "failedToLoadAlerts": "Kon nie waarskuwings laai nie", + "failedToDismissAlert": "Kon nie waarskuwing toemaak nie" }, "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": "Bedienerkonfigurasie", + "description": "Konfigureer die Termix-bediener-URL om aan jou backend-dienste te koppel", + "serverUrl": "Bediener-URL", + "enterServerUrl": "Voer asseblief 'n bediener-URL in", + "testConnectionFirst": "Toets asseblief eers die verbinding", + "connectionSuccess": "Verbinding suksesvol!", + "connectionFailed": "Verbinding het misluk", + "connectionError": "Verbindingsfout het voorgekom", + "connected": "Verbonde", + "disconnected": "Ontkoppel", + "configSaved": "Konfigurasie suksesvol gestoor", + "saveFailed": "Kon nie konfigurasie stoor nie", + "saveError": "Fout met die stoor van die konfigurasie", + "saving": "Stoor...", + "saveConfig": "Stoor Konfigurasie", + "helpText": "Voer die URL in waar jou Termix-bediener loop (bv. http://localhost:30001 of https://your-server.com)", + "warning": "Waarskuwing", + "notValidatedWarning": "URL nie gevalideer nie - maak seker dit is korrek", + "changeServer": "Verander bediener", + "mustIncludeProtocol": "Bediener-URL moet met http:// of https:// begin" }, "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": "Weergawekontrolefout", + "checkFailed": "Kon nie vir opdaterings kyk nie", + "upToDate": "Toepassing is op datum", + "currentVersion": "Jy gebruik weergawe {{version}}", + "updateAvailable": "Opdatering beskikbaar", + "newVersionAvailable": "'n Nuwe weergawe is beskikbaar! Jy gebruik {{current}}, maar {{latest}} is beskikbaar.", + "releasedOn": "Uitgereik op {{date}}", + "downloadUpdate": "Laai opdatering af", + "dismiss": "Maak toe", + "checking": "Kontroleer tans vir opdaterings...", + "checkUpdates": "Kyk vir opdaterings", + "checkingUpdates": "Kontroleer tans vir opdaterings...", + "refresh": "Verfris", + "updateRequired": "Opdatering Vereis", + "updateDismissed": "Opdateringskennisgewing is afgewys", + "noUpdatesFound": "Geen opdaterings gevind nie" }, "common": { - "close": "Close", - "minimize": "Minimize", - "online": "Online", - "offline": "Offline", - "continue": "Continue", - "maintenance": "Maintenance", - "degraded": "Degraded", - "discord": "Discord", - "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", + "close": "Maak toe", + "minimize": "Minimaliseer", + "online": "Aanlyn", + "offline": "Vanlyn", + "continue": "Gaan voort", + "maintenance": "Onderhoud", + "degraded": "Gedegradeer", + "discord": "Disharmonie", + "error": "Fout", + "warning": "Waarskuwing", + "info": "Inligting", + "success": "Sukses", + "loading": "Laai tans...", + "required": "Vereis", + "optional": "Opsioneel", + "connect": "Verbind", + "connecting": "Verbind...", + "creating": "Skep...", + "clear": "Duidelik", + "toggleSidebar": "Wissel sybalk", + "sidebar": "Sybalk", + "home": "Tuis", + "expired": "Verstryk", + "expiresToday": "Verval vandag", + "expiresTomorrow": "Verval oor {{days}} dae", + "updateAvailable": "Opdatering beskikbaar", + "sshPath": "SSH-pad", + "localPath": "Plaaslike Pad", "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", - "no": "No", - "ok": "OK", - "enabled": "Enabled", - "disabled": "Disabled", - "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" + "resetSidebarWidth": "Stel die breedte van die sybalk terug", + "dragToResizeSidebar": "Sleep om die sybalk se grootte te verander", + "noAuthCredentials": "Geen verifikasiebewyse beskikbaar vir hierdie SSH-gasheer nie", + "noReleases": "Geen vrystellings nie", + "updatesAndReleases": "Opdaterings en vrystellings", + "newVersionAvailable": "'n Nuwe weergawe ({{version}}) is beskikbaar.", + "failedToFetchUpdateInfo": "Kon nie opdateringsinligting haal nie", + "preRelease": "Voorvrystelling", + "loginFailed": "Aanmelding het misluk", + "noReleasesFound": "Geen vrystellings gevind nie.", + "yourBackupCodes": "Jou rugsteunkodes", + "sendResetCode": "Stuur Herstelkode", + "verifyCode": "Verifieer Kode", + "resetPassword": "Herstel wagwoord", + "resetCode": "Herstel kode", + "newPassword": "Nuwe Wagwoord", + "folder": "Vouer", + "file": "Lêer", + "renamedSuccessfully": "suksesvol hernoem", + "deletedSuccessfully": "suksesvol verwyder", + "noTunnelConnections": "Geen tonnelverbindings gekonfigureer nie", + "sshTools": "SSH-gereedskap", + "english": "Engels", + "chinese": "Chinees", + "german": "Duits", + "cancel": "Kanselleer", + "username": "Gebruikersnaam", + "name": "Naam", + "login": "Aanmeld", + "logout": "Uitteken", + "register": "Registreer", + "password": "Wagwoord", + "version": "Weergawe", + "confirmPassword": "Bevestig wagwoord", + "back": "Terug", + "email": "E-pos", + "submit": "Dien in", + "change": "Verandering", + "save": "Stoor", + "saving": "Stoor...", + "delete": "Vee uit", + "edit": "Wysig", + "add": "Voeg by", + "search": "Soek", + "confirm": "Bevestig", + "yes": "Ja", + "no": "Nee", + "ok": "Goed", + "enabled": "Geaktiveer", + "disabled": "Gestremd", + "important": "Belangrik", + "notEnabled": "Nie geaktiveer nie", + "settingUp": "Opstel...", + "next": "Volgende", + "previous": "Vorige", + "refresh": "Verfris", + "settings": "Instellings", + "profile": "Profiel", + "help": "Hulp", + "about": "Oor", + "language": "Taal", + "autoDetect": "Outomatiese opsporing", + "changeAccountPassword": "Verander jou rekeningwagwoord", + "passwordResetTitle": "Wagwoordherstel", + "passwordResetDescription": "Jy is op die punt om jou wagwoord te herstel. Dit sal jou uit alle aktiewe sessies uitlog.", + "enterSixDigitCode": "Voer die 6-syfer-kode van die docker-houerlogboeke vir die gebruiker in:", + "enterNewPassword": "Voer jou nuwe wagwoord vir die gebruiker in:", + "passwordsDoNotMatch": "Wagwoorde stem nie ooreen nie", + "passwordMinLength": "Wagwoord moet ten minste 6 karakters lank wees", + "passwordResetSuccess": "Wagwoord herstel suksesvol! Jy kan nou met jou nuwe wagwoord aanmeld.", + "failedToInitiatePasswordReset": "Kon nie wagwoordherstel begin nie", + "failedToVerifyResetCode": "Kon nie die terugstelkode verifieer nie", + "failedToCompletePasswordReset": "Kon nie wagwoordterugstelling voltooi nie", + "documentation": "Dokumentasie", + "retry": "Probeer weer", + "checking": "Kontroleer...", + "checkingDatabase": "Kontroleer databasisverbinding...", + "actions": "Aksies", + "remove": "Verwyder", + "revoke": "Herroep", + "create": "Skep" }, "nav": { - "home": "Home", - "hosts": "Hosts", - "credentials": "Credentials", - "terminal": "Terminal", + "home": "Tuis", + "hosts": "Gashere", + "credentials": "Geloofsbriewe", + "terminal": "Terminaal", "docker": "Docker", - "tunnels": "Tunnels", - "fileManager": "File Manager", - "serverStats": "Server Stats", + "tunnels": "Tonnels", + "fileManager": "Lêerbestuurder", + "serverStats": "Bedienerstatistieke", "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", + "userProfile": "Gebruikersprofiel", + "tools": "Gereedskap", + "snippets": "Brokkies", + "newTab": "Nuwe oortjie", + "splitScreen": "Gesplete skerm", + "closeTab": "Maak oortjie toe", + "sshManager": "SSH-bestuurder", + "hostManager": "Gasheerbestuurder", + "cannotSplitTab": "Kan nie hierdie oortjie verdeel nie", + "tabNavigation": "Tab-navigasie", "hostTabTitle": "{{username}}@{{ip}}:{{port}}" }, "admin": { - "title": "Admin Settings", + "title": "Admin-instellings", "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", - "local": "Local", - "adminManagement": "Admin Management", - "makeUserAdmin": "Make User Admin", - "adding": "Adding...", - "currentAdmins": "Current Admins", + "users": "Gebruikers", + "userManagement": "Gebruikersbestuur", + "makeAdmin": "Maak Admin", + "removeAdmin": "Verwyder administrateur", + "deleteUser": "Verwyder gebruiker {{username}}? Dit kan nie ongedaan gemaak word nie.", + "allowRegistration": "Laat Registrasie Toe", + "oidcSettings": "OIDC-instellings", + "clientId": "Kliënt-ID", + "clientSecret": "Kliëntgeheim", + "issuerUrl": "Uitreiker-URL", + "authorizationUrl": "Magtigings-URL", + "tokenUrl": "Teken-URL", + "updateSettings": "Opdatering van instellings", + "confirmDelete": "Is jy seker jy wil hierdie gebruiker verwyder?", + "confirmMakeAdmin": "Is jy seker jy wil {{username}} 'n administrateur maak?", + "confirmRemoveAdmin": "Is jy seker jy wil administrateurstatus van {{username}}verwyder?", + "externalAuthentication": "Eksterne Verifikasie (OIDC)", + "configureExternalProvider": "Konfigureer eksterne identiteitsverskaffer vir OIDC/OAuth2-verifikasie.", + "userIdentifierPath": "Gebruikersidentifiseerderpad", + "displayNamePath": "Vertoonnaampad", + "scopes": "Omvangsgebiede", + "saving": "Stoor...", + "saveConfiguration": "Stoor Konfigurasie", + "reset": "Herstel", + "success": "Sukses", + "loading": "Laai tans...", + "refresh": "Verfris", + "loadingUsers": "Laai gebruikers...", + "username": "Gebruikersnaam", + "type": "Tipe", + "actions": "Aksies", + "external": "Eksterne", + "local": "Plaaslik", + "adminManagement": "Admin Bestuur", + "makeUserAdmin": "Maak Gebruiker Administrateur", + "adding": "Voeg by...", + "currentAdmins": "Huidige administrateurs", "adminBadge": "Admin", - "removeAdminButton": "Remove Admin", - "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.", - "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" + "removeAdminButton": "Verwyder administrateur", + "general": "Algemeen", + "userRegistration": "Gebruikersregistrasie", + "allowNewAccountRegistration": "Laat nuwe rekeningregistrasie toe", + "allowPasswordLogin": "Laat gebruikersnaam/wagwoord-aanmelding toe", + "missingRequiredFields": "Verpligte velde ontbreek: {{fields}}", + "oidcConfigurationUpdated": "OIDC-konfigurasie suksesvol opgedateer!", + "failedToFetchOidcConfig": "Kon nie OIDC-konfigurasie haal nie", + "failedToFetchRegistrationStatus": "Kon nie registrasiestatus ophaal nie", + "failedToFetchPasswordLoginStatus": "Kon nie wagwoord-aanmeldstatus haal nie", + "failedToFetchUsers": "Kon nie gebruikers haal nie", + "oidcConfigurationDisabled": "OIDC-konfigurasie suksesvol gedeaktiveer!", + "failedToUpdateOidcConfig": "Kon nie OIDC-konfigurasie opdateer nie", + "failedToDisableOidcConfig": "Kon nie OIDC-konfigurasie deaktiveer nie", + "enterUsernameToMakeAdmin": "Voer gebruikersnaam in om admin te word", + "userIsNowAdmin": "Gebruiker {{username}} is nou 'n administrateur", + "failedToMakeUserAdmin": "Kon nie gebruiker administrateur maak nie", + "removeAdminStatus": "Verwyder adminstatus van {{username}}?", + "adminStatusRemoved": "Adminstatus verwyder van {{username}}", + "failedToRemoveAdminStatus": "Kon nie administrateurstatus verwyder nie", + "userDeletedSuccessfully": "Gebruiker {{username}} suksesvol verwyder", + "failedToDeleteUser": "Kon nie gebruiker verwyder nie", + "overrideUserInfoUrl": "Oorskryf Gebruikersinligting-URL (nie vereis nie)", + "failedToFetchSessions": "Kon nie sessies haal nie", + "sessionRevokedSuccessfully": "Sessie suksesvol herroep", + "failedToRevokeSession": "Kon nie sessie herroep nie", + "confirmRevokeSession": "Is jy seker jy wil hierdie sessie herroep?", + "confirmRevokeAllSessions": "Is jy seker jy wil alle sessies vir hierdie gebruiker herroep?", + "failedToRevokeSessions": "Kon nie sessies herroep nie", + "sessionsRevokedSuccessfully": "Sessies suksesvol herroep", + "linkToPasswordAccount": "Skakel na wagwoordrekening", + "linkOIDCDialogTitle": "Koppel OIDC-rekening aan wagwoordrekening", + "linkOIDCDialogDescription": "Koppel {{username}} (OIDC-gebruiker) aan 'n bestaande wagwoordrekening. Dit sal dubbele verifikasie vir die wagwoordrekening moontlik maak.", + "createUser": "Skep Gebruiker", + "createUserDescription": "Skep 'n nuwe plaaslike gebruiker met gebruikersnaam en wagwoord", + "enterUsername": "Voer gebruikersnaam in", + "enterPassword": "Voer wagwoord in", + "userCreatedSuccessfully": "Gebruiker {{username}} suksesvol geskep", + "failedToCreateUser": "Kon nie gebruiker skep nie", + "manageUser": "Bestuur Gebruiker", + "manageUserDescription": "Bestuur gebruikersinstellings, rolle en toestemmings", + "authType": "Verifikasietipe", + "adminStatus": "Adminstatus", + "userId": "Gebruikers-ID", + "regularUser": "Gereelde Gebruiker", + "adminPrivileges": "Administrateurvoorregte", + "administratorRole": "Administrateurrol", + "administratorRoleDescription": "Verleen volle stelseltoegang en bestuursregte", + "passwordManagement": "Wagwoordbestuur", + "passwordResetWarning": "As jy 'n gebruiker se wagwoord terugstel, sal al hul data (SSH-gashere, geloofsbriewe, instellings) uitgevee word. Hierdie aksie kan nie ongedaan gemaak word nie.", + "resetUserPassword": "Herstel gebruikerswagwoord", + "resettingPassword": "Herstel tans...", + "passwordResetInitiated": "Wagwoordherstel is geïnisieer vir {{username}}. Herstelkode gestuur.", + "failedToResetPassword": "Kon nie wagwoordherstel begin nie", + "sessionManagement": "Sessiebestuur", + "revokeAllSessions": "Herroep alle sessies", + "revokeAllSessionsDescription": "Forseer afmelding van alle toestelle en sessies", + "revoking": "Herroeping...", + "revoke": "Herroep alles", + "dangerZone": "Gevaarsone", + "deleteUserTitle": "Vee gebruikersrekening uit", + "deleteUserWarning": "Vee hierdie gebruikersrekening en alle geassosieerde data permanent uit. Hierdie aksie kan nie ongedaan gemaak word nie.", + "deleting": "Vee tans uit...", + "cannotDeleteSelf": "Jy kan nie jou eie rekening uitvee nie", + "cannotRemoveLastAdmin": "Kan nie die laaste administrateur verwyder nie", + "cannotRemoveOwnAdmin": "Jy kan nie jou eie administrateurregte verwyder nie", + "cannotModifyOwnAdminStatus": "Jy kan nie jou eie administrateurstatus wysig nie", + "dualAuth": "Dubbele Magtiging", + "externalOIDC": "Ekstern (OIDC)", + "localPassword": "Plaaslike Wagwoord", + "confirmRevokeOwnSessions": "Is jy seker jy wil al jou eie sessies herroep? Jy sal afgemeld word.", + "linkOIDCWarningTitle": "Waarskuwing: OIDC-gebruikersdata sal uitgevee word", + "linkOIDCActionDeleteUser": "Vee die OIDC-gebruikersrekening en al hul data uit", + "linkOIDCActionAddCapability": "Voeg OIDC-aanmeldvermoë by die teikenwagwoordrekening", + "linkOIDCActionDualAuth": "Laat die wagwoordrekening toe om met beide wagwoord en OIDC aan te meld", + "linkTargetUsernameLabel": "Teikenwagwoord Rekeninggebruikersnaam", + "linkTargetUsernamePlaceholder": "Voer gebruikersnaam van wagwoordrekening in", + "linkAccountsButton": "Koppel rekeninge", + "linkingAccounts": "Skakel tans...", + "accountsLinkedSuccessfully": "OIDC-gebruiker {{oidcUsername}} is gekoppel aan {{targetUsername}}", + "failedToLinkAccounts": "Kon nie rekeninge koppel nie", + "linkTargetUsernameRequired": "Teikengebruikersnaam word vereis", + "unlinkOIDCTitle": "Ontkoppel OIDC-verifikasie", + "unlinkOIDCDescription": "Verwyder OIDC-verifikasie van {{username}}? Die gebruiker sal eers daarna met gebruikersnaam/wagwoord kan aanmeld.", + "unlinkOIDCSuccess": "OIDC ontkoppel van {{username}}", + "failedToUnlinkOIDC": "Kon nie OIDC ontkoppel nie", + "databaseSecurity": "Databasissekuriteit", + "encryptionStatus": "Enkripsiestatus", + "encryptionEnabled": "Enkripsie geaktiveer", + "enabled": "Geaktiveer", + "disabled": "Gestremd", + "keyId": "Sleutel-ID", + "created": "Geskep", + "migrationStatus": "Migrasiestatus", + "migrationCompleted": "Migrasie voltooi", + "migrationRequired": "Migrasie vereis", + "deviceProtectedMasterKey": "Omgewingsbeskermde hoofsleutel", + "legacyKeyStorage": "Ouer Sleutelberging", + "masterKeyEncryptedWithDeviceFingerprint": "Meestersleutel geïnkripteer met omgewingvingerafdruk (KEK-beskerming aktief)", + "keyNotProtectedByDeviceBinding": "Sleutel nie beskerm deur omgewingsbinding nie (opgradering aanbeveel)", + "valid": "Geldig", + "initializeDatabaseEncryption": "Inisialiseer databasisenkripsie", + "enableAes256EncryptionWithDeviceBinding": "Aktiveer AES-256-enkripsie met omgewingsgebonde hoofsleutelbeskerming. Dit skep sekuriteit van ondernemingsgraad vir SSH-sleutels, wagwoorde en verifikasietokens.", + "featuresEnabled": "Funksies geaktiveer:", + "aes256GcmAuthenticatedEncryption": "AES-256-GCM geverifieerde enkripsie", + "deviceFingerprintMasterKeyProtection": "Omgewing vingerafdruk hoofsleutel beskerming (KEK)", + "pbkdf2KeyDerivation": "PBKDF2 sleutel afleiding met 100K iterasies", + "automaticKeyManagement": "Outomatiese sleutelbestuur en rotasie", + "initializing": "Inisialiseer...", + "initializeEnterpriseEncryption": "Inisialiseer Ondernemingsenkripsie", + "migrateExistingData": "Migreer bestaande data", + "encryptExistingUnprotectedData": "Enkripteer bestaande onbeskermde data in jou databasis. Hierdie proses is veilig en skep outomatiese rugsteun.", + "testMigrationDryRun": "Verifieer enkripsieversoenbaarheid", + "migrating": "Migreer tans...", + "migrateData": "Migreer data", + "securityInformation": "Sekuriteitsinligting", + "sshPrivateKeysEncryptedWithAes256": "SSH-privaatsleutels en wagwoorde word geïnkripteer met AES-256-GCM", + "userAuthTokensProtected": "Gebruikersverifikasietokens en 2FA-geheime word beskerm", + "masterKeysProtectedByDeviceFingerprint": "Meesterenkripsiesleutels word beskerm deur toestelvingerafdruk (KEK)", + "keysBoundToServerInstance": "Sleutels is gebonde aan die huidige bedieneromgewing (migreerbaar via omgewingveranderlikes)", + "pbkdf2HkdfKeyDerivation": "PBKDF2 + HKDF sleutelafleiding met 100K iterasies", + "backwardCompatibleMigration": "Alle data bly agteruit versoenbaar tydens migrasie", + "enterpriseGradeSecurityActive": "Ondernemingsgraad-sekuriteit aktief", + "masterKeysProtectedByDeviceBinding": "Jou hoofenkripsiesleutels word beskerm deur omgewingvingerafdrukke. Dit gebruik bediener se gasheernaam, paaie en ander omgewinginligting om beskermingsleutels te genereer. Om bedieners te migreer, stel die DB_ENCRYPTION_KEY omgewingveranderlike op die nuwe bediener.", + "important": "Belangrik", + "keepEncryptionKeysSecure": "Verseker datasekuriteit: rugsteun gereeld u databasislêers en bedienerkonfigurasie. Om na 'n nuwe bediener te migreer, stel die DB_ENCRYPTION_KEY omgewingveranderlike op die nuwe omgewing, of handhaaf dieselfde gasheernaam en gidsstruktuur.", + "loadingEncryptionStatus": "Laai enkripsiestatus...", + "testMigrationDescription": "Verifieer dat bestaande data veilig na geïnkripteerde formaat gemigreer kan word sonder om enige data eintlik te wysig", + "serverMigrationGuide": "Bedienermigrasiegids", + "migrationInstructions": "Om geënkripteerde data na 'n nuwe bediener te migreer: 1) Rugsteun databasislêers, 2) Stel omgewingveranderlike DB_ENCRYPTION_KEY=\"jou-sleutel\" op die nuwe bediener, 3) Herstel databasislêers", + "environmentProtection": "Omgewingsbeskerming", + "environmentProtectionDesc": "Beskerm enkripsiesleutels gebaseer op bedieneromgewinginligting (gasheernaam, paaie, ens.), migreerbaar via omgewingveranderlikes", + "verificationCompleted": "Verenigbaarheidsverifikasie voltooi - geen data is verander nie", + "verificationInProgress": "Verifikasie voltooi", + "dataMigrationCompleted": "Datamigrasie suksesvol voltooi!", + "verificationFailed": "Verenigbaarheidsverifikasie het misluk", + "migrationFailed": "Migrasie het misluk", + "runningVerification": "Begin versoenbaarheidsverifikasie...", + "startingMigration": "Begin migrasie...", + "hardwareFingerprintSecurity": "Hardeware-vingerafdruksekuriteit", + "hardwareBoundEncryption": "Hardeware-gebonde enkripsie aktief", + "masterKeysNowProtectedByHardwareFingerprint": "Meestersleutels word nou beskerm deur regte hardeware-vingerafdrukke in plaas van omgewingveranderlikes", + "cpuSerialNumberDetection": "SVE-reeksnommeropsporing", + "motherboardUuidIdentification": "Moederbord UUID-identifikasie", + "diskSerialNumberVerification": "Verifikasie van die skyf se reeksnommer", + "biosSerialNumberCheck": "BIOS-reeksnommerkontrole", + "stableMacAddressFiltering": "Stabiele MAC-adresfiltering", + "databaseFileEncryption": "Databasislêerenkripsie", + "dualLayerProtection": "Dubbellaag-beskerming aktief", + "bothFieldAndFileEncryptionActive": "Beide veldvlak- en lêervlak-enkripsie is nou aktief vir maksimum sekuriteit", + "fieldLevelAes256Encryption": "Veldvlak AES-256-enkripsie vir sensitiewe data", + "fileLevelDatabaseEncryption": "Lêervlak-databasisenkripsie met hardewarebinding", + "hardwareBoundFileKeys": "Hardeware-gebonde lêerenkripsiesleutels", + "automaticEncryptedBackups": "Outomatiese skep van geïnkripteerde rugsteun", + "createEncryptedBackup": "Skep Geënkripteerde Rugsteun", + "creatingBackup": "Skep rugsteun...", + "backupCreated": "Rugsteun geskep", + "encryptedBackupCreatedSuccessfully": "Geënkripteerde rugsteun suksesvol geskep", + "backupCreationFailed": "Skepping van rugsteun het misluk", + "databaseMigration": "Databasismigrasie", + "exportForMigration": "Uitvoer vir Migrasie", + "exportDatabaseForHardwareMigration": "Voer databasis uit as SQLite-lêer met ontsyferde data vir migrasie na nuwe hardeware", + "exportDatabase": "Voer SQLite-databasis uit", + "exporting": "Uitvoer tans...", + "exportCreated": "SQLite-uitvoer geskep", + "exportContainsDecryptedData": "SQLite-uitvoer bevat gedekripteerde data - hou veilig!", + "databaseExportedSuccessfully": "SQLite-databasis suksesvol uitgevoer", + "databaseExportFailed": "SQLite-databasisuitvoer het misluk", + "importFromMigration": "Invoer vanaf Migrasie", + "importDatabaseFromAnotherSystem": "Voer die SQLite-databasis vanaf 'n ander stelsel of hardeware in", + "importDatabase": "Voer SQLite-databasis in", + "importing": "Voer tans in...", + "selectedFile": "Geselekteerde SQLite-lêer", + "importWillReplaceExistingData": "SQLite-invoer sal bestaande data vervang - rugsteun word aanbeveel!", + "pleaseSelectImportFile": "Kies asseblief 'n SQLite-invoerlêer", + "databaseImportedSuccessfully": "SQLite-databasis suksesvol ingevoer", + "databaseImportFailed": "SQLite-databasisinvoer het misluk", + "manageEncryptionAndBackups": "Bestuur enkripsiesleutels, databasissekuriteit en rugsteunbedrywighede", + "activeSecurityFeatures": "Tans aktiewe sekuriteitsmaatreëls en beskermings", + "deviceBindingTechnology": "Gevorderde hardeware-gebaseerde sleutelbeskermingstegnologie", + "backupAndRecovery": "Veilige rugsteunskepping en databasisherwinningsopsies", + "crossSystemDataTransfer": "Uitvoer en invoer van databasisse oor verskillende stelsels", + "noMigrationNeeded": "Geen migrasie nodig nie", + "encryptionKey": "Enkripsiesleutel", + "keyProtection": "Sleutelbeskerming", + "active": "Aktief", + "legacy": "Nalatenskap", + "dataStatus": "Datastatus", + "encrypted": "Geënkripteer", + "needsMigration": "Benodig migrasie", + "ready": "Gereed", + "initializeEncryption": "Inisialiseer enkripsie", + "initialize": "Inisialiseer", + "test": "Toets", + "migrate": "Migreer", + "backup": "Rugsteun", + "createBackup": "Skep rugsteun", + "exportImport": "Uitvoer/Invoer", + "export": "Uitvoer", + "import": "Invoer", + "passwordRequired": "Wagwoord benodig", + "confirmExport": "Bevestig Uitvoer", + "exportDescription": "Voer SSH-gashere en geloofsbriewe as SQLite-lêer uit", + "importDescription": "Voer SQLite-lêer in met inkrementele samesmelting (slaan duplikate oor)", + "criticalWarning": "Kritieke Waarskuwing", + "cannotDisablePasswordLoginWithoutOIDC": "Kan nie wagwoordaanmelding deaktiveer sonder dat OIDC gekonfigureer is nie! Jy moet OIDC-verifikasie konfigureer voordat jy wagwoordaanmelding deaktiveer, anders sal jy toegang tot Termix verloor.", + "confirmDisablePasswordLogin": "Is jy seker jy wil wagwoordaanmelding deaktiveer? Maak seker dat OIDC behoorlik gekonfigureer is en werk voordat jy voortgaan, anders sal jy toegang tot jou Termix-instansie verloor.", + "passwordLoginDisabled": "Wagwoordaanmelding suksesvol gedeaktiveer", + "passwordLoginAndRegistrationDisabled": "Wagwoordaanmelding en nuwe rekeningregistrasie suksesvol gedeaktiveer", + "requiresPasswordLogin": "Vereis wagwoordaanmelding geaktiveer", + "passwordLoginDisabledWarning": "Wagwoordaanmelding is gedeaktiveer. Maak seker dat OIDC behoorlik gekonfigureer is, anders sal jy nie by Termix kan aanmeld nie.", + "oidcRequiredWarning": "KRITIES: Wagwoordaanmelding is gedeaktiveer. As jy OIDC herstel of verkeerd konfigureer, sal jy alle toegang tot Termix verloor en jou instansie blokkeer. Gaan slegs voort as jy absoluut seker is.", + "confirmDisableOIDCWarning": "WAARSKUWING: Jy is op die punt om OIDC te deaktiveer terwyl wagwoordaanmelding ook gedeaktiveer is. Dit sal jou Termix-instansie blokkeer en jy sal alle toegang verloor. Is jy absoluut seker jy wil voortgaan?", + "failedToUpdatePasswordLoginStatus": "Kon nie wagwoord-aanmeldstatus opdateer nie", + "loadingSessions": "Laai sessies...", + "noActiveSessions": "Geen aktiewe sessies gevind nie.", + "device": "Toestel", + "user": "Gebruiker", + "lastActive": "Laaste Aktief", + "expires": "Vervaldatum", + "revoked": "Herroep", + "revokeAllUserSessionsTitle": "Herroep alle sessies vir hierdie gebruiker", + "revokeAll": "Herroep alles", + "linkOidcToPasswordAccount": "Koppel OIDC-rekening aan wagwoordrekening", + "linkOidcToPasswordAccountDescription": "Koppel {{username}} (OIDC-gebruiker) aan 'n bestaande wagwoordrekening. Dit sal dubbele verifikasie vir die wagwoordrekening moontlik maak.", + "linkOidcWarningTitle": "Waarskuwing: OIDC-gebruikersdata sal uitgevee word", + "linkOidcWarningDescription": "Hierdie aksie sal:", + "linkOidcActionDeleteUser": "Vee die OIDC-gebruikersrekening en al hul data uit", + "linkOidcActionAddCapability": "Voeg OIDC-aanmeldvermoë by die teikenwagwoordrekening", + "linkOidcActionDualAuth": "Laat die wagwoordrekening toe om met beide wagwoord en OIDC aan te meld", + "passwordMinLength": "Wagwoord moet ten minste 6 karakters wees", + "currentRoles": "Huidige Rolle", + "noRolesAssigned": "Geen rolle toegeken nie", + "assignNewRole": "Ken Nuwe Rol Toe" }, "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", - "port": "Port", - "name": "Name", - "username": "Username", - "folder": "Folder", - "tags": "Tags", - "pin": "Pin", - "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", + "title": "Gasheerbestuurder", + "sshHosts": "SSH-gashere", + "noHosts": "Geen SSH-gashere nie", + "noHostsMessage": "Jy het nog geen SSH-gashere bygevoeg nie. Klik \"Voeg gasheer by\" om te begin.", + "loadingHosts": "Laai gashere...", + "failedToLoadHosts": "Kon nie gashere laai nie", + "retry": "Probeer weer", + "refresh": "Verfris", + "optional": "Opsioneel", + "hostsCount": "{{count}} gashere", + "importJson": "Voer JSON in", + "importing": "Voer tans in...", + "importJsonTitle": "Voer SSH-gashere vanaf JSON in", + "importJsonDesc": "Laai 'n JSON-lêer op om verskeie SSH-gashere in grootmaat in te voer (maks. 100).", + "downloadSample": "Laai voorbeeld af", + "formatGuide": "Formaatgids", + "exportCredentialWarning": "Waarskuwing: Gasheer \"{{name}}\" gebruik geloofsbriewe-verifikasie. Die uitgevoerde lêer sal nie die geloofsbriewe-data insluit nie en sal na invoer handmatig herkonfigureer moet word. Wil jy voortgaan?", + "exportSensitiveDataWarning": "Waarskuwing: Gasheer \"{{name}}\" bevat sensitiewe verifikasiedata (wagwoord/SSH-sleutel). Die uitgevoerde lêer sal hierdie data in gewone teks insluit. Hou die lêer asseblief veilig en verwyder dit na gebruik. Wil jy voortgaan?", + "uncategorized": "Ongekategoriseerd", + "confirmDelete": "Is jy seker jy wil \"{{name}}\" verwyder?", + "failedToDeleteHost": "Kon nie gasheer verwyder nie", + "failedToExportHost": "Kon nie gasheer uitvoer nie. Maak asseblief seker dat jy aangemeld is en toegang tot die gasheerdata het.", + "jsonMustContainHosts": "JSON moet 'n \"hosts\"-skikking bevat of 'n skikking van hosts wees.", + "noHostsInJson": "Geen gashere in JSON-lêer gevind nie", + "maxHostsAllowed": "Maksimum 100 gashere toegelaat per invoer", + "importCompleted": "Invoer voltooi: {{success}} suksesvol, {{failed}} misluk", + "importFailed": "Invoer het misluk", + "importError": "Invoerfout", + "failedToImportJson": "Kon nie JSON-lêer invoer nie", + "connectionDetails": "Verbindingsbesonderhede", + "organization": "Organisasie", + "ipAddress": "IP-adres", + "port": "Hawe", + "name": "Naam", + "username": "Gebruikersnaam", + "folder": "Vouer", + "tags": "Etikette", + "pin": "Speld vas", + "notes": "Notas", + "expirationDate": "Vervaldatum", + "passwordRequired": "Wagwoord word vereis wanneer wagwoordverifikasie gebruik word", + "sshKeyRequired": "SSH Privaatsleutel word vereis wanneer sleutelverifikasie gebruik word", + "keyTypeRequired": "Sleuteltipe word vereis wanneer sleutelverifikasie gebruik word", + "mustSelectValidSshConfig": "Moet 'n geldige SSH-konfigurasie uit die lys kies", + "addHost": "Voeg gasheer by", + "editHost": "Wysig gasheer", + "cloneHost": "Kloon gasheer", + "updateHost": "Opdateer gasheer", + "hostUpdatedSuccessfully": "Gasheer \"{{name}}\" suksesvol opgedateer!", + "hostAddedSuccessfully": "Gasheer \"{{name}}\" suksesvol bygevoeg!", + "hostDeletedSuccessfully": "Gasheer \"{{name}}\" suksesvol verwyder!", + "failedToSaveHost": "Kon nie gasheer stoor nie. Probeer asseblief weer.", + "savingHost": "Stoor gasheer...", + "updatingHost": "Opdatering van gasheer...", + "cloningHost": "Kloon gasheer...", + "enableTerminal": "Aktiveer Terminaal", + "enableTerminalDesc": "Aktiveer/deaktiveer gasheersigbaarheid in die Terminal-oortjie", + "enableTunnel": "Aktiveer Tonnel", + "enableTunnelDesc": "Aktiveer/deaktiveer gasheersigbaarheid in die Tonnel-oortjie", + "enableFileManager": "Aktiveer Lêerbestuurder", + "enableFileManagerDesc": "Aktiveer/deaktiveer gasheersigbaarheid in die Lêerbestuurder-oortjie", + "enableDockerDesc": "Aktiveer/deaktiveer gasheersigbaarheid in Docker-oortjie", + "enableDocker": "Aktiveer Docker", + "defaultPath": "Standaardpad", + "defaultPathDesc": "Standaardgids wanneer lêerbestuurder vir hierdie gasheer oopgemaak word", + "tunnelConnections": "Tonnelverbindings", + "connection": "Verbinding", + "remove": "Verwyder", + "sourcePort": "Bronpoort", + "sourcePortDesc": " (Bron verwys na die Huidige Verbindingsbesonderhede in die Algemeen-oortjie)", + "endpointPort": "Eindpuntpoort", + "endpointSshConfig": "Eindpunt SSH-konfigurasie", + "tunnelForwardDescription": "Hierdie tonnel sal verkeer vanaf poort {{sourcePort}} op die bronmasjien (huidige verbindingsbesonderhede in die algemene oortjie) na poort {{endpointPort}} op die eindpuntmasjien aanstuur.", + "maxRetries": "Maksimum herprobeer", + "maxRetriesDescription": "Maksimum aantal herprobeerpogings vir tonnelverbinding.", + "retryInterval": "Herprobeerinterval (sekondes)", + "retryIntervalDescription": "Tyd om te wag tussen herpogings.", + "autoStartContainer": "Outomatiese begin met houerlansering", + "autoStartDesc": "Begin hierdie tonnel outomaties wanneer die houer begin", + "addConnection": "Voeg tonnelverbinding by", + "sshpassRequired": "Sshpass word vereis vir wagwoordverifikasie", + "sshpassRequiredDesc": "Vir wagwoordverifikasie in tonnels moet sshpass op die stelsel geïnstalleer wees.", + "otherInstallMethods": "Ander installasiemetodes:", + "debianUbuntuEquivalent": "(Debian/Ubuntu) of die ekwivalent vir jou bedryfstelsel.", + "or": "of", "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": "Vensters", + "sshServerConfigRequired": "SSH-bedienerkonfigurasie vereis", + "sshServerConfigDesc": "Vir tonnelverbindings moet die SSH-bediener gekonfigureer word om poortaanstuuring toe te laat:", + "gatewayPortsYes": "om afgeleë poorte aan alle koppelvlakke te bind", + "allowTcpForwardingYes": "om poortaanstuuring te aktiveer", + "permitRootLoginYes": "as rootgebruiker vir tonnelwerk gebruik word", + "editSshConfig": "Wysig /etc/ssh/sshd_config en herbegin SSH: sudo systemctl herbegin sshd", + "upload": "Oplaai", + "authentication": "Verifikasie", + "password": "Wagwoord", + "key": "Sleutel", + "credential": "Geloofsbrief", + "none": "Geen", + "selectCredential": "Kies geloofsbriewe", + "selectCredentialPlaceholder": "Kies 'n geloofsbrief...", + "credentialRequired": "Geloofsbriewe word vereis wanneer geloofsbriewe-verifikasie gebruik word", + "credentialDescription": "As jy 'n geloofsbrief kies, sal die huidige gebruikersnaam oorskryf word en die geloofsbrief se verifikasiebesonderhede gebruik.", + "cannotChangeAuthAsSharedUser": "Kan nie verifikasie as gedeelde gebruiker verander nie", + "sshPrivateKey": "SSH Privaat Sleutel", + "keyPassword": "Sleutelwagwoord", + "keyType": "Sleuteltipe", + "autoDetect": "Outomatiese opsporing", "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)", - "terminalBadge": "Terminal", - "tunnelBadge": "Tunnel", - "fileManagerBadge": "File Manager", - "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", + "uploadFile": "Laai lêer op", + "pasteKey": "Plak Sleutel", + "updateKey": "Opdateringsleutel", + "existingKey": "Bestaande sleutel (klik om te verander)", + "existingCredential": "Bestaande geloofsbriewe (klik om te verander)", + "addTagsSpaceToAdd": "voeg etikette by (spasie om by te voeg)", + "terminalBadge": "Terminaal", + "tunnelBadge": "Tonnel", + "fileManagerBadge": "Lêerbestuurder", + "general": "Algemeen", + "terminal": "Terminaal", + "tunnel": "Tonnel", + "fileManager": "Lêerbestuurder", + "serverStats": "Bedienerstatistieke", + "hostViewer": "Gasheerkyker", + "enableServerStats": "Aktiveer bedienerstatistieke", + "enableServerStatsDesc": "Aktiveer/deaktiveer bedienerstatistiekversameling vir hierdie gasheer", + "displayItems": "Wys items", + "displayItemsDesc": "Kies watter statistieke op die bedienerstatistiekbladsy vertoon moet word", + "enableCpu": "SVE-gebruik", + "enableMemory": "Geheuegebruik", + "enableDisk": "Skyfgebruik", + "enableNetwork": "Netwerkstatistieke (Binnekort beskikbaar)", + "enableProcesses": "Prosestelling (Binnekort beskikbaar)", + "enableUptime": "Beskikbaar (Binnekort beskikbaar)", + "enableHostname": "Gasheernaam (Binnekort beskikbaar)", + "enableOs": "Bedryfstelsel (Binnekort beskikbaar)", + "customCommands": "Pasgemaakte bevele (binnekort beskikbaar)", + "customCommandsDesc": "Definieer persoonlike afsluit- en herlaai-opdragte vir hierdie bediener", + "shutdownCommand": "Afsluitopdrag", + "rebootCommand": "Herlaai-opdrag", + "confirmRemoveFromFolder": "Is jy seker jy wil \"{{name}}\" van die vouer \"{{folder}}\" verwyder? Die gasheer sal na \"Geen Vouer\" geskuif word.", + "removedFromFolder": "Gasheer \"{{name}}\" is suksesvol uit die vouer verwyder", + "failedToRemoveFromFolder": "Kon nie gasheer uit vouer verwyder nie", + "folderRenamed": "Lêer \"{{oldName}}\" is suksesvol hernoem na \"{{newName}}\"", + "failedToRenameFolder": "Kon nie die vouer hernoem nie", + "editFolderAppearance": "Wysig die voorkoms van die vouer", + "editFolderAppearanceDesc": "Pas die kleur en ikoon vir die vouer aan", + "folderColor": "Vouerkleur", + "folderIcon": "Vouer-ikoon", + "preview": "Voorskou", + "folderAppearanceUpdated": "Vouervoorkoms suksesvol opgedateer", + "failedToUpdateFolderAppearance": "Kon nie die voorkoms van die vouer opdateer nie", + "deleteAllHostsInFolder": "Vee alle gashere in die vouer uit", + "confirmDeleteAllHostsInFolder": "Is jy seker jy wil alle {{count}} gashere in die vouer \"{{folder}}\" verwyder? Hierdie aksie kan nie ongedaan gemaak word nie.", + "allHostsInFolderDeleted": "{{count}} gashere suksesvol uit die vouer \"{{folder}}\" verwyder", + "failedToDeleteHostsInFolder": "Kon nie gashere in vouer verwyder nie", + "movedToFolder": "Gasheer \"{{name}}\" het suksesvol na \"{{folder}}\" geskuif", + "failedToMoveToFolder": "Kon nie gasheer na vouer skuif nie", + "clickToRenameFolder": "Klik om die vouer te hernoem", + "renameFolder": "Hernoem vouer", + "removeFromFolder": "Verwyder uit vouer \"{{folder}}\"", + "editHostTooltip": "Wysig gasheer", + "deleteHostTooltip": "Vee gasheer uit", + "exportHostTooltip": "Uitvoer gasheer", + "cloneHostTooltip": "Kloon gasheer", + "clickToEditHost": "Klik om gasheer te wysig", + "dragToMoveBetweenFolders": "Sleep om tussen dopgehou te beweeg", + "exportedHostConfig": "Uitgevoerde gasheerkonfigurasie vir {{name}}", + "openTerminal": "Maak Terminaal Oop", + "openFileManager": "Maak Lêerbestuurder oop", + "openTunnels": "Oop Tonnels", + "openServerDetails": "Maak bedienerbesonderhede oop", + "statistics": "Statistiek", + "enabledWidgets": "Geaktiveerde Widgets", + "openServerStats": "Maak bedienerstatistieke oop", + "enabledWidgetsDesc": "Kies watter statistiek-widgets vir hierdie gasheer vertoon moet word", + "monitoringConfiguration": "Moniteringskonfigurasie", + "monitoringConfigurationDesc": "Konfigureer hoe gereeld bedienerstatistieke en -status nagegaan word", + "statusCheckEnabled": "Aktiveer Statusmonitering", + "statusCheckEnabledDesc": "Kontroleer of die bediener aanlyn of vanlyn is", + "statusCheckInterval": "Statuskontrole-interval", + "statusCheckIntervalDesc": "Hoe gereeld om te kyk of die gasheer aanlyn is (5s - 1u)", + "metricsEnabled": "Aktiveer Metrieke Monitering", + "metricsEnabledDesc": "Versamel SVE-, RAM-, skyf- en ander stelselstatistieke", + "metricsInterval": "Metrieke-insamelingsinterval", + "metricsIntervalDesc": "Hoe gereeld om bedienerstatistieke in te samel (5s - 1u)", + "intervalSeconds": "sekondes", + "intervalMinutes": "minute", + "intervalValidation": "Moniteringsintervalle moet tussen 5 sekondes en 1 uur (3600 sekondes) wees.", + "monitoringDisabled": "Bedienermonitering is vir hierdie gasheer gedeaktiveer", + "enableMonitoring": "Aktiveer monitering in Gasheerbestuurder → Statistiek-oortjie", + "monitoringDisabledBadge": "Monitering Af", "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", - "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", - "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", + "metricsMonitoring": "Metrieke", + "terminalCustomization": "Terminale Aanpassing", + "appearance": "Voorkoms", + "behavior": "Gedrag", + "advanced": "Gevorderd", + "themePreview": "Temavoorskou", + "theme": "Tema", + "selectTheme": "Kies tema", + "chooseColorTheme": "Kies 'n kleurtema vir die terminaal", + "fontFamily": "Lettertipefamilie", + "selectFont": "Kies lettertipe", + "selectFontDesc": "Kies die lettertipe om in die terminaal te gebruik", + "fontSize": "Lettergrootte", + "fontSizeValue": "Lettergrootte: {{value}}px", + "adjustFontSize": "Pas die lettergrootte van die terminaal aan", + "letterSpacing": "Letterspasiëring", + "letterSpacingValue": "Letterspasiëring: {{value}}px", + "adjustLetterSpacing": "Pas spasiëring tussen karakters aan", + "lineHeight": "Lynhoogte", + "lineHeightValue": "Lynhoogte: {{value}}", + "adjustLineHeight": "Pas spasiëring tussen lyne aan", + "cursorStyle": "Wyserstyl", + "selectCursorStyle": "Kies wyserstyl", + "cursorStyleBlock": "Blok", + "cursorStyleUnderline": "Onderstreep", + "cursorStyleBar": "Kroeg", + "chooseCursorAppearance": "Kies die wyser se voorkoms", + "cursorBlink": "Wyserknip", + "enableCursorBlink": "Aktiveer wyser se flikkerende animasie", + "scrollbackBuffer": "Terugrolbuffer", + "scrollbackBufferValue": "Terugrolbuffer: {{value}} reëls", + "scrollbackBufferDesc": "Aantal reëls om in terugrolgeskiedenis te hou", + "bellStyle": "Klokstyl", + "selectBellStyle": "Kies klokstyl", + "bellStyleNone": "Geen", + "bellStyleSound": "Klank", + "bellStyleVisual": "Visueel", + "bellStyleBoth": "Beide", + "bellStyleDesc": "Hoe om die terminaalklokkie te hanteer (BEL-karakter, \\x07). Programme aktiveer dit wanneer take voltooi word, foute teëgekom word, of vir kennisgewings. \"Klank\" speel 'n oudiopiep, \"Visueel\" flikker die skerm kortliks, \"Beide\" doen albei, \"Geen\" deaktiveer klokkiewaarskuwings.", + "rightClickSelectsWord": "Regskliek Kies Woord", + "rightClickSelectsWordDesc": "Regskliek kies die woord onder die wyser", + "fastScrollModifier": "Vinnige Blaai-wysiger", + "selectModifier": "Kies wysiger", "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)", - "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", + "modifierShift": "Skof", + "fastScrollModifierDesc": "Wysigsleutel vir vinnige blaai", + "fastScrollSensitivity": "Vinnige blaai-sensitiwiteit", + "fastScrollSensitivityValue": "Vinnige blaai-sensitiwiteit: {{value}}", + "fastScrollSensitivityDesc": "Blaaispoedvermenigvuldiger wanneer wysiger gehou word", + "minimumContrastRatio": "Minimum Kontrasverhouding", + "minimumContrastRatioValue": "Minimum kontrasverhouding: {{value}}", + "minimumContrastRatioDesc": "Pas kleure outomaties aan vir beter leesbaarheid", + "sshAgentForwarding": "SSH Agent Aanstuur", + "sshAgentForwardingDesc": "Stuur SSH-verifikasieagent na afgeleë gasheer aan", + "backspaceMode": "Terugspasie-modus", + "selectBackspaceMode": "Kies terugspasiemodus", + "backspaceModeNormal": "Normaal (DEL)", + "backspaceModeControlH": "Beheer-H (^H)", + "backspaceModeDesc": "Gedrag van die Backspace-sleutel vir versoenbaarheid", + "startupSnippet": "Opstart-brokkie", + "selectSnippet": "Kies uittreksel", + "searchSnippets": "Soek brokkies...", + "snippetNone": "Geen", + "noneAuthTitle": "Sleutelbord-Interaktiewe Verifikasie", + "noneAuthDescription": "Hierdie verifikasiemetode sal sleutelbord-interaktiewe verifikasie gebruik wanneer daar aan die SSH-bediener gekoppel word.", + "noneAuthDetails": "Sleutelbord-interaktiewe verifikasie laat die bediener toe om jou vir geloofsbriewe te vra tydens verbinding. Dit is nuttig vir bedieners wat multifaktor-verifikasie vereis of as jy nie geloofsbriewe plaaslik wil stoor nie.", + "forceKeyboardInteractive": "Forseer sleutelbord-interaktief", + "forceKeyboardInteractiveDesc": "Dwing die gebruik van sleutelbord-interaktiewe verifikasie af. Dit word soms vereis vir bedieners wat tweefaktor-verifikasie (TOTP/2FA) gebruik.", + "overrideCredentialUsername": "Oorskryf geloofsbriewe gebruikersnaam", + "overrideCredentialUsernameDesc": "Gebruik 'n ander gebruikersnaam as die een wat in die geloofsbriewe gestoor is. Dit laat jou toe om dieselfde geloofsbriewe met verskillende gebruikersname te gebruik.", + "jumpHosts": "Springgashere", + "jumpHostsDescription": "Springgashere (ook bekend as bastiongashere) laat jou toe om aan 'n teikenbediener te koppel deur een of meer tussenbedieners. Dit is nuttig om toegang tot bedieners agter firewalls of in privaat netwerke te verkry.", + "jumpHostChain": "Springgasheerketting", + "addJumpHost": "Voeg Springgasheer by", + "selectServer": "Kies Bediener", + "searchServers": "Soek bedieners...", + "noServerFound": "Geen bediener gevind nie", + "jumpHostsOrder": "Verbindings sal in volgorde gemaak word: Spring Gasheer 1 → Spring Gasheer 2 → ... → Teikenbediener", "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", + "socks5Description": "Konfigureer SOCKS5-instaanbediener vir SSH-verbinding. Alle verkeer sal deur die gespesifiseerde instaanbediener gelei word.", + "enableSocks5": "Aktiveer SOCKS5-instaanbediener", + "enableSocks5Description": "Gebruik SOCKS5-instaanbediener vir hierdie SSH-verbinding", + "socks5Host": "Proxy-gasheer", + "socks5Port": "Proxy-poort", + "socks5Username": "Proxy-gebruikersnaam", + "socks5Password": "Proxy-wagwoord", + "socks5UsernameOptional": "Opsioneel: los leeg as die instaanbediener nie verifikasie vereis nie", + "socks5PasswordOptional": "Opsioneel: los leeg as die instaanbediener nie verifikasie vereis nie", + "socks5ProxyChain": "Proxy-ketting", + "socks5ProxyChainDescription": "Konfigureer 'n ketting van SOCKS-instaanbedieners. Elke instaanbediener in die ketting sal deur die vorige een verbind.", + "socks5ProxyMode": "Proxy-modus", + "socks5UseSingleProxy": "Gebruik 'n enkele instaanbediener", + "socks5UseProxyChain": "Gebruik Proxy-ketting", + "socks5UsePreset": "Gebruik gestoorde voorafinstelling", + "socks5SelectPreset": "Kies voorafinstelling", + "socks5ManagePresets": "Bestuur voorafinstellings", "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", - "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", + "socks5AddProxy": "Voeg Proxy by Ketting", + "socks5RemoveProxy": "Verwyder Proxy", + "socks5ProxyType": "Proxy Tipe", + "socks5SaveAsPreset": "Stoor as voorafinstelling", + "socks5SavePresetTitle": "Stoor Proxy-ketting as voorafinstelling", + "socks5SavePresetDescription": "Stoor die huidige proxy-kettingkonfigurasie as 'n herbruikbare voorafbepaalde instelling", + "socks5PresetName": "Voorafingestelde Naam", + "socks5PresetDescription": "Beskrywing (opsioneel)", + "socks5PresetCreated": "Voorafinstelling vir proxy-ketting geskep", + "socks5PresetUpdated": "Voorafinstelling vir proxy-ketting opgedateer", + "socks5PresetDeleted": "Voorafinstelling van proxy-ketting uitgevee", + "socks5PresetSaved": "Voorafinstelling \"{{name}}\" suksesvol gestoor", + "socks5PresetSaveError": "Kon nie voorafinstelling stoor nie", + "socks5PresetNameRequired": "Voorafingestelde naam is vereis", + "socks5EmptyChainError": "Kan nie 'n leë instaanbedienersketting stoor nie", + "socks5ProxyChainEmpty": "Voeg ten minste een volmag by die ketting", + "socks5HostDescription": "Gasheernaam of IP-adres van die SOCKS-instaanbediener", + "socks5PortDescription": "Poortnommer van die SOCKS-instaanbediener (standaard: 1080)", + "addProxyNode": "Voeg Proxy-knooppunt by", + "noProxyNodes": "Geen proxy-nodusse gekonfigureer nie. Klik 'Voeg Proxy-node by' om een by te voeg.", + "proxyNode": "Proxy-knooppunt", + "proxyType": "Proxy Tipe", + "quickActions": "Vinnige Aksies", + "quickActionsDescription": "Vinnige aksies laat jou toe om persoonlike knoppies te skep wat SSH-brokkies op hierdie bediener uitvoer. Hierdie knoppies sal bo-aan die Bedienerstatistieke-bladsy verskyn vir vinnige toegang.", + "quickActionsList": "Vinnige Aksieslys", + "addQuickAction": "Voeg Vinnige Aksie by", + "quickActionName": "Aksienaam", + "noSnippetFound": "Geen uittreksel gevind nie", + "quickActionsOrder": "Vinnige aksieknoppies sal in die volgorde hierbo op die Bedienerstatistieke-bladsy verskyn.", + "advancedAuthSettings": "Gevorderde verifikasie-instellings", + "sudoPasswordAutoFill": "Sudo Wagwoord Outomatiese Vul", + "sudoPasswordAutoFillDesc": "Bied outomaties aan om SSH-wagwoord in te voeg wanneer sudo vir wagwoord vra", + "sudoPassword": "Sudo-wagwoord", + "sudoPasswordDesc": "Opsionele wagwoord vir sudo-opdragte (nuttig met sleutelverifikasie)", + "socks4": "SOKKIES4", + "socks5": "SOKKIES5", + "executeSnippetOnConnect": "Voer 'n brokkie uit wanneer die terminaal verbind", + "autoMosh": "Outomatiese MOSH", + "autoMoshDesc": "Voer outomaties die MOSH-opdrag uit tydens verbinding", + "moshCommand": "MOSH-opdrag", + "moshCommandDesc": "Die MOSH-opdrag om uit te voer", + "environmentVariables": "Omgewingsveranderlikes", + "environmentVariablesDesc": "Stel persoonlike omgewingveranderlikes vir die terminaalsessie", + "variableName": "Veranderlike naam", + "variableValue": "Waarde", + "addVariable": "Voeg veranderlike by", "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...", - "error": "Error", - "errorCode": "Error code: {{code}}", + "openDocker": "Maak Docker oop", + "notEnabled": "Docker is nie vir hierdie gasheer geaktiveer nie. Aktiveer dit in Gasheerinstellings om Docker-funksies te gebruik.", + "validating": "Valideer Docker...", + "error": "Fout", + "errorCode": "Foutkode: {{code}}", "version": "Docker v{{version}}", - "current": "Current", - "used_limit": "Used / Limit", - "percentage": "Percentage", - "input": "Input", - "output": "Output", - "read": "Read", - "write": "Write", - "pids": "PIDs", + "current": "Huidige", + "used_limit": "Gebruik / Limiet", + "percentage": "Persentasie", + "input": "Invoer", + "output": "Uitset", + "read": "Lees", + "write": "Skryf", + "pids": "PID's", "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", - "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", + "state": "Staat", + "console": "Konsole", + "containerMustBeRunning": "Die houer moet loop om aan die konsole te koppel", + "authenticationRequired": "Verifikasie vereis", + "connectedTo": "Gekoppel aan {{containerName}}", + "disconnected": "Ontkoppel", + "consoleError": "Konsolefout", + "errorMessage": "Fout: {{message}}", + "failedToConnect": "Kon nie aan konsole koppel nie", + "disconnectedFromContainer": "Ontkoppel van houerkonsole.", + "containerNotRunning": "Houer loop nie", + "startContainerToAccess": "Begin die houer om toegang tot die konsole te verkry", + "selectShell": "Kies dop", "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": "As", + "connecting": "Verbind...", + "connect": "Verbind", + "disconnect": "Ontkoppel", + "notConnected": "Nie gekoppel nie", + "clickToConnect": "Klik Verbind om 'n interaktiewe dop te begin", + "connectingTo": "Verbind met {{containerName}}...", + "containerMustBeRunningToViewStats": "Die houer moet loop om statistieke te sien", + "failedToFetchStats": "Kon nie statistieke haal nie", + "noContainersFound": "Geen houers gevind nie", + "noContainersFoundHint": "Begin deur houers op jou bediener te skep", + "searchPlaceholder": "Soek volgens naam, beeld of ID...", + "filterByStatusPlaceholder": "Filtreer volgens status", + "allContainersCount": "Alles ({{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": "Geen houers stem ooreen met jou filters nie", + "noContainersMatchFiltersHint": "Probeer om jou soektog of filter aan te pas", + "containerStarted": "Houer {{name}} het begin", + "failedToStartContainer": "Kon nie houer begin nie: {{error}}", + "containerStopped": "Houer {{name}} gestop", + "failedToStopContainer": "Kon nie houer stop nie: {{error}}", + "containerRestarted": "Houer {{name}} herbegin", + "failedToRestartContainer": "Kon nie houer herbegin nie: {{error}}", + "containerUnpaused": "Houer {{name}} ontpoos", + "containerPaused": "Houer {{name}} gepouseer", + "failedToTogglePauseContainer": "Kon nie houer {{action}} {{error}}{{error}} {{action}} <> {{error}} <<", + "containerRemoved": "Houer {{name}} verwyder", + "failedToRemoveContainer": "Kon nie houer verwyder nie: {{error}}", + "image": "Beeld:", "idLabel": "ID:", - "ports": "Ports:", - "noPorts": "None", - "created": "Created:", - "start": "Start", + "ports": "Hawens:", + "noPorts": "Geen", + "created": "Geskep:", + "start": "Begin", "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" + "unpause": "Ontpouseer", + "pause": "Pouseer", + "restart": "Herbegin", + "removeContainer": "Verwyder Houer", + "confirmRemoveContainer": "Is jy seker jy wil houer \"{{name}}\" verwyder?", + "runningContainerWarning": "Waarskuwing: Hierdie houer loop tans en sal met geweld verwyder word.", + "removing": "Verwydering:", + "containerNotFound": "Houer nie gevind nie", + "backToList": "Terug na lys", + "logs": "Logboeke", + "stats": "Statistiek", + "consoleTab": "Konsole", + "failedToFetchLogs": "Kon nie logboeke haal nie: {{error}}", + "failedToDownloadLogs": "Kon nie logboeke aflaai nie: {{error}}", + "linesToShow": "Lyne om te wys", + "last50Lines": "Laaste 50 reëls", + "last100Lines": "Laaste 100 reëls", + "last500Lines": "Laaste 500 reëls", + "last1000Lines": "Laaste 1000 reëls", + "allLogs": "Alle logboeke", + "showTimestamps": "Wys Tydstempels", + "autoRefresh": "Outomatiese Herlaai", + "filterLogsPlaceholder": "Filtreer logboeke...", + "noLogsAvailable": "Geen logboeke beskikbaar nie" }, "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", - "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", - "terminalTitle": "Terminal - {{host}}", - "terminalWithPath": "Terminal - {{host}}:{{path}}", - "runTitle": "Running {{command}} - {{host}}", - "totpRequired": "Two-Factor Authentication Required", - "totpCodeLabel": "Verification Code", + "title": "Terminaal", + "connect": "Koppel aan gasheer", + "disconnect": "Ontkoppel", + "clear": "Duidelik", + "copy": "Kopieer", + "paste": "Plak", + "find": "Vind", + "fullscreen": "Volskerm", + "splitHorizontal": "Verdeel Horisontaal", + "splitVertical": "Vertikaal verdeel", + "closePanel": "Maak paneel toe", + "reconnect": "Herkoppel", + "sessionEnded": "Sessie geëindig", + "connectionLost": "Verbinding verloor", + "error": "FOUT: {{message}}", + "disconnected": "Ontkoppel", + "connectionClosed": "Verbinding gesluit", + "connectionError": "Verbindingsfout: {{message}}", + "connected": "Verbonde", + "sshConnected": "SSH-verbinding gevestig", + "authError": "Verifikasie het misluk: {{message}}", + "unknownError": "Onbekende fout het voorgekom", + "messageParseError": "Kon nie bedienerboodskap ontleed nie", + "websocketError": "WebSocket-verbindingsfout", + "connecting": "Verbind...", + "reconnecting": "Herverbind... ({{attempt}}/{{max}})", + "reconnected": "Herverbind suksesvol", + "maxReconnectAttemptsReached": "Maksimum herverbindingspogings bereik", + "connectionTimeout": "Verbindingstydverstryking", + "terminalTitle": "Terminaal - {{host}}", + "terminalWithPath": "Terminaal - {{host}}:{{path}}", + "runTitle": "Hardloop {{command}} - {{host}}", + "totpRequired": "Tweefaktor-verifikasie vereis", + "totpCodeLabel": "Verifikasiekode", "totpPlaceholder": "000000", - "totpVerify": "Verify", - "sudoPasswordPopupTitle": "Insert Password?", - "sudoPasswordPopupHint": "Press Enter to insert, Esc to dismiss", - "sudoPasswordPopupConfirm": "Insert", - "sudoPasswordPopupDismiss": "Dismiss" + "totpVerify": "Verifieer", + "sudoPasswordPopupTitle": "Wagwoord invoeg?", + "sudoPasswordPopupHint": "Druk Enter om in te voeg, Esc om te verwerp", + "sudoPasswordPopupConfirm": "Invoeg", + "sudoPasswordPopupDismiss": "Maak toe" }, "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", + "title": "Lêerbestuurder", + "file": "Lêer", + "folder": "Vouer", + "connectToSsh": "Koppel aan SSH om lêerbewerkings te gebruik", + "uploadFile": "Laai lêer op", + "downloadFile": "Laai af", + "extractArchive": "Uittrekselargief", + "extractingArchive": "Onttrek tans {{name}}...", + "archiveExtractedSuccessfully": "{{name}} suksesvol onttrek", + "extractFailed": "Uittreksel het misluk", + "compressFile": "Komprimeer lêer", + "compressFiles": "Komprimeer lêers", + "compressFilesDesc": "Kompresseer {{count}} items in 'n argief", + "archiveName": "Argiefnaam", + "enterArchiveName": "Voer argiefnaam in...", + "compressionFormat": "Kompressieformaat", + "selectedFiles": "Geselekteerde lêers", + "andMoreFiles": "en {{count}} meer...", + "compress": "Kompressie", + "compressingFiles": "Komprimering van {{count}} items in {{name}}...", + "filesCompressedSuccessfully": "{{name}} suksesvol geskep", + "compressFailed": "Kompressie het misluk", + "edit": "Wysig", + "preview": "Voorskou", + "previous": "Vorige", + "next": "Volgende", + "pageXOfY": "Bladsy {{current}} van {{total}}", + "zoomOut": "Uitzoom", + "zoomIn": "Inzoem", + "newFile": "Nuwe Lêer", + "newFolder": "Nuwe vouer", + "rename": "Hernoem", + "renameItem": "Hernoem item", + "deleteItem": "Vee item uit", + "currentPath": "Huidige Pad", + "uploadFileTitle": "Laai lêer op", + "maxFileSize": "Maks: 1GB (JSON) / 5GB (Binêr) - Groot lêers word ondersteun", + "removeFile": "Verwyder lêer", + "clickToSelectFile": "Klik om 'n lêer te kies", + "chooseFile": "Kies Lêer", + "uploading": "Laai tans op...", + "downloading": "Laai tans af...", + "uploadingFile": "Laai tans {{name}}op ...", + "uploadingLargeFile": "Laai tans groot lêer {{name}} ({{size}} ) op...", + "downloadingFile": "Laai tans {{name}}af ...", + "creatingFile": "Skep {{name}}...", + "creatingFolder": "Skep {{name}}...", + "deletingItem": "Vee tans {{type}} {{name}}uit ...", + "renamingItem": "Hernoem {{type}} {{oldName}} na {{newName}}...", + "createNewFile": "Skep Nuwe Lêer", + "fileName": "Lêernaam", + "creating": "Skep...", + "createFile": "Skep lêer", + "createNewFolder": "Skep Nuwe Vouer", + "folderName": "Vouernaam", + "createFolder": "Skep vouer", + "warningCannotUndo": "Waarskuwing: Hierdie aksie kan nie ongedaan gemaak word nie", + "itemPath": "Itempad", + "thisIsDirectory": "Hierdie is 'n gids (sal rekursief verwyder)", + "deleting": "Vee tans uit...", + "currentPathLabel": "Huidige Pad", + "newName": "Nuwe Naam", + "thisIsDirectoryRename": "Hierdie is 'n gids", + "renaming": "Hernoem tans...", + "fileUploadedSuccessfully": "Lêer \"{{name}}\" is suksesvol opgelaai", + "failedToUploadFile": "Kon nie lêer oplaai nie", + "fileDownloadedSuccessfully": "Lêer \"{{name}}\" suksesvol afgelaai", + "failedToDownloadFile": "Kon nie lêer aflaai nie", + "noFileContent": "Geen lêerinhoud ontvang nie", + "filePath": "Lêerpad", + "fileCreatedSuccessfully": "Lêer \"{{name}}\" suksesvol geskep", + "failedToCreateFile": "Kon nie lêer skep nie", + "folderCreatedSuccessfully": "Lêer \"{{name}}\" suksesvol geskep", + "failedToCreateFolder": "Kon nie vouer skep nie", + "failedToCreateItem": "Kon nie item skep nie", + "operationFailed": "{{operation}} -bewerking het misluk vir {{name}}: {{error}}", + "failedToResolveSymlink": "Kon nie simskakel oplos nie", + "itemDeletedSuccessfully": "{{type}} suksesvol verwyder", + "itemsDeletedSuccessfully": "{{count}} items is suksesvol verwyder", + "failedToDeleteItems": "Kon nie items uitvee nie", + "dragFilesToUpload": "Plaas lêers hier om op te laai", + "emptyFolder": "Hierdie vouer is leeg", "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", - "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.", - "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", - "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", + "selectedCount": "{{count}} gekies", + "searchFiles": "Soek lêers...", + "upload": "Oplaai", + "selectHostToStart": "Kies 'n gasheer om lêerbestuur te begin", + "failedToConnect": "Kon nie aan SSH koppel nie", + "failedToLoadDirectory": "Kon nie gids laai nie", + "noSSHConnection": "Geen SSH-verbinding beskikbaar nie", + "enterFolderName": "Voer die naam van die lêergids in:", + "enterFileName": "Voer lêernaam in:", + "copy": "Kopieer", + "cut": "Sny", + "paste": "Plak", + "copyPath": "Kopieer Pad", + "copyPaths": "Kopieer paaie", + "delete": "Vee uit", + "properties": "Eienskappe", + "refresh": "Verfris", + "downloadFiles": "Laai {{count}} lêers na die blaaier af", + "copyFiles": "Kopieer {{count}} items", + "cutFiles": "Sny {{count}} items", + "deleteFiles": "Vee {{count}} items uit", + "filesCopiedToClipboard": "{{count}} items gekopieer na knipbord", + "filesCutToClipboard": "{{count}} items is na knipbord gesny", + "pathCopiedToClipboard": "Pad gekopieer na knipbord", + "pathsCopiedToClipboard": "{{count}} paaie na knipbord gekopieer", + "failedToCopyPath": "Kon nie pad na knipbord kopieer nie", + "movedItems": "Het {{count}} items geskuif", + "failedToDeleteItem": "Kon nie item verwyder nie", + "itemRenamedSuccessfully": "{{type}} suksesvol hernoem", + "failedToRenameItem": "Kon nie item hernoem nie", + "download": "Laai af", + "permissions": "Toestemmings", + "size": "Grootte", + "modified": "Gewysig", + "path": "Pad", + "confirmDelete": "Is jy seker jy wil {{name}}verwyder?", + "uploadSuccess": "Lêer suksesvol opgelaai", + "uploadFailed": "Lêeroplaai het misluk", + "downloadSuccess": "Lêer suksesvol afgelaai", + "downloadFailed": "Lêer aflaai het misluk", + "permissionDenied": "Toestemming geweier", + "checkDockerLogs": "Gaan die Docker-logboeke na vir gedetailleerde foutinligting", + "internalServerError": "Interne bedienerfout het voorgekom", + "serverError": "Bedienerfout", + "error": "Fout", + "requestFailed": "Versoek het misluk met statuskode", + "unknownFileError": "onbekend", + "cannotReadFile": "Kan nie lêer lees nie", + "noSshSessionId": "Geen SSH-sessie-ID beskikbaar nie", + "noFilePath": "Geen lêerpad beskikbaar nie", + "noCurrentHost": "Geen huidige gasheer beskikbaar nie", + "fileSavedSuccessfully": "Lêer suksesvol gestoor", + "saveTimeout": "Die stoorbewerking het 'n tydsduur gehad. Die lêer is dalk suksesvol gestoor, maar die bewerking het te lank geneem om te voltooi. Gaan die Docker-logboeke na vir bevestiging.", + "failedToSaveFile": "Kon nie lêer stoor nie", + "deletedSuccessfully": "suksesvol verwyder", + "connectToServer": "Koppel aan 'n bediener", + "selectServerToEdit": "Kies 'n bediener vanaf die sybalk om lêers te begin wysig", + "fileOperations": "Lêerbewerkings", + "confirmDeleteMessage": "Is jy seker jy wil {{name}}verwyder?", + "confirmDeleteSingleItem": "Is jy seker jy wil \"{{name}}\" permanent verwyder?", + "confirmDeleteMultipleItems": "Is jy seker jy wil {{count}} items permanent verwyder?", + "confirmDeleteMultipleItemsWithFolders": "Is jy seker jy wil {{count}} items permanent verwyder? Dit sluit gidse en hul inhoud in.", + "confirmDeleteFolder": "Is jy seker jy wil die vouer \"{{name}}\" en al sy inhoud permanent verwyder?", + "deleteDirectoryWarning": "Dit sal die lêergids en al die inhoud daarvan verwyder.", + "actionCannotBeUndone": "Hierdie aksie kan nie ongedaan gemaak word nie.", + "permanentDeleteWarning": "Hierdie aksie kan nie ongedaan gemaak word nie. Die item(s) sal permanent van die bediener verwyder word.", + "recent": "Onlangs", + "pinned": "Vasgepen", + "folderShortcuts": "Vouerkortpaaie", + "noRecentFiles": "Geen onlangse lêers nie.", + "noPinnedFiles": "Geen vasgespelde lêers nie.", + "enterFolderPath": "Voer die pad van die lêergids in", + "noShortcuts": "Geen kortpaaie nie.", + "searchFilesAndFolders": "Soek lêers en gidse...", + "noFilesOrFoldersFound": "Geen lêers of gidse gevind nie.", + "failedToConnectSSH": "Kon nie aan SSH koppel nie", + "failedToReconnectSSH": "Kon nie SSH-sessie herkoppel nie", + "failedToListFiles": "Kon nie lêers lys nie", + "fetchHomeDataTimeout": "Haal huisdata het uitgetel", + "sshStatusCheckTimeout": "SSH-statuskontrole het uitgetel", + "sshReconnectionTimeout": "SSH-herverbinding het 'n tydsverloop gehad", + "saveOperationTimeout": "Stoorbewerking het uitgetel", + "cannotSaveFile": "Kan nie lêer stoor nie", + "dragSystemFilesToUpload": "Sleep stelsellêers hierheen om op te laai", + "dragFilesToWindowToDownload": "Sleep lêers buite die venster om af te laai", + "openTerminalHere": "Maak Terminaal Hier Oop", + "run": "Hardloop", + "saveToSystem": "Stoor as...", + "selectLocationToSave": "Kies Ligging om te Stoor", + "openTerminalInFolder": "Maak Terminaal in Hierdie Vouer Oop", + "openTerminalInFileLocation": "Maak Terminaal oop by Lêerligging", + "terminalWithPath": "Terminaal - {{host}}:{{path}}", + "runningFile": "Hardloop - {{file}}", + "onlyRunExecutableFiles": "Kan slegs uitvoerbare lêers uitvoer", + "noHostSelected": "Geen gasheer gekies nie", + "starred": "Gester", + "shortcuts": "Kortpaaie", + "directories": "Gidse", + "removedFromRecentFiles": "\"{{name}}\" is uit onlangse lêers verwyder", + "removeFailed": "Verwydering het misluk", + "unpinnedSuccessfully": "\"{{name}}\" suksesvol ontspeld", + "unpinFailed": "Ontspeld het misluk", + "removedShortcut": "Kortpad \"{{name}}\" verwyder", + "removeShortcutFailed": "Verwydering van kortpad het misluk", + "clearedAllRecentFiles": "Alle onlangse lêers is uitgevee", + "clearFailed": "Vee uit misluk", + "removeFromRecentFiles": "Verwyder uit onlangse lêers", + "clearAllRecentFiles": "Vee alle onlangse lêers uit", + "unpinFile": "Ontspeld lêer", + "removeShortcut": "Verwyder kortpad", + "saveFilesToSystem": "Stoor {{count}} lêers as...", + "pinFile": "Speld lêer vas", + "addToShortcuts": "Voeg by kortpaaie", + "downloadToDefaultLocation": "Laai af na standaardligging", + "pasteFailed": "Plak het misluk", + "noUndoableActions": "Geen ongedaanbare aksies nie", + "undoCopySuccess": "Kopieerbewerking ongedaan gemaak: Gekopieerde lêers is verwyder {{count}}", + "undoCopyFailedDelete": "Ongedaan maak het misluk: Kon geen gekopieerde lêers verwyder nie", + "undoCopyFailedNoInfo": "Ongedaan maak het misluk: Kon nie gekopieerde lêerinligting vind nie", + "undoMoveSuccess": "Ongedaan gemaak met skuifbewerking: {{count}} lêers teruggeskuif na oorspronklike ligging", + "undoMoveFailedMove": "Ongedaan maak het misluk: Kon geen lêers terugskuif nie", + "undoMoveFailedNoInfo": "Ongedaan maak het misluk: Kon nie inligting oor die verskuifde lêer vind nie", + "undoDeleteNotSupported": "Verwyderingsbewerking kan nie ongedaan gemaak word nie: Lêers is permanent van die bediener verwyder", + "undoTypeNotSupported": "Nie-ondersteunde ongedaanmaak-bewerkingtipe", + "undoOperationFailed": "Ongedaanmaak-bewerking het misluk", + "unknownError": "Onbekende fout", + "enterPath": "Voer pad in...", + "editPath": "Wysig pad", + "confirm": "Bevestig", + "cancel": "Kanselleer", + "find": "Vind...", + "replaceWith": "Vervang met...", + "replace": "Vervang", + "replaceAll": "Vervang alles", + "downloadInstead": "Laai eerder af", + "keyboardShortcuts": "Sleutelbordkortpaaie", + "searchAndReplace": "Soek en vervang", + "editing": "Redigering", + "navigation": "Navigasie", + "code": "Kode", + "search": "Soek", + "findNext": "Vind Volgende", + "findPrevious": "Vind Vorige", + "save": "Stoor", + "selectAll": "Kies Alles", + "undo": "Ongedaan maak", + "redo": "Herdoen", + "goToLine": "Gaan na Lyn", + "moveLineUp": "Skuif lyn op", + "moveLineDown": "Skuif lyn af", + "toggleComment": "Wissel kommentaar", + "indent": "Inkeping", + "outdent": "Uitduik", + "autoComplete": "Outomatiese Voltooiing", + "imageLoadError": "Kon nie beeld laai nie", + "rotate": "Roteer", + "originalSize": "Oorspronklike Grootte", + "startTyping": "Begin tik...", + "unknownSize": "Onbekende grootte", + "fileIsEmpty": "Lêer is leeg", + "largeFileWarning": "Waarskuwing oor groot lêers", + "largeFileWarningDesc": "Hierdie lêer is {{size}} groot, wat werkverrigtingsprobleme kan veroorsaak wanneer dit as teks oopgemaak word.", + "fileNotFoundAndRemoved": "Lêer \"{{name}}\" nie gevind nie en is verwyder uit onlangse/vasgespelde lêers", + "failedToLoadFile": "Kon nie lêer laai nie: {{error}}", + "serverErrorOccurred": "Bedienerfout het voorgekom. Probeer asseblief later weer.", + "autoSaveFailed": "Outomatiese stoor het misluk", + "fileAutoSaved": "Lêer outomaties gestoor", + "moveFileFailed": "Kon nie {{name}}skuif nie", + "moveOperationFailed": "Skuifbewerking het misluk", + "canOnlyCompareFiles": "Kan slegs twee lêers vergelyk", + "comparingFiles": "Vergelyk lêers: {{file1}} en {{file2}}", + "dragFailed": "Sleepbewerking het misluk", + "filePinnedSuccessfully": "Lêer \"{{name}}\" suksesvol vasgepen", + "pinFileFailed": "Kon nie lêer vaspen nie", + "fileUnpinnedSuccessfully": "Lêer \"{{name}}\" suksesvol losgespeld", + "unpinFileFailed": "Kon nie lêer ontspeld nie", + "shortcutAddedSuccessfully": "Vouerkortpad \"{{name}}\" suksesvol bygevoeg", + "addShortcutFailed": "Kon nie kortpad byvoeg nie", + "operationCompletedSuccessfully": "{{operation}} {{count}} items suksesvol", "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" + "downloadFileSuccess": "Lêer {{name}} suksesvol afgelaai", + "downloadFileFailed": "Aflaai het misluk", + "moveTo": "Skuif na {{name}}", + "diffCompareWith": "Verskil vergelyking met {{name}}", + "dragOutsideToDownload": "Sleep buite die venster om af te laai ({{count}} lêers)", + "newFolderDefault": "NuweVouer", + "newFileDefault": "NuweLêer.txt", + "successfullyMovedItems": "Suksesvol {{count}} items na {{target}}geskuif", + "move": "Beweeg", + "searchInFile": "Soek in lêer (Ctrl+F)", + "showKeyboardShortcuts": "Wys sleutelbordkortpaaie", + "startWritingMarkdown": "Begin om jou afslaginhoud te skryf...", + "loadingFileComparison": "Laai lêervergelyking...", + "reload": "Herlaai", + "compare": "Vergelyk", + "sideBySide": "Sy aan Sy", + "inline": "Inlyn", + "fileComparison": "Lêervergelyking: {{file1}} vs {{file2}}", + "fileTooLarge": "Lêer te groot: {{error}}", + "sshConnectionFailed": "SSH-verbinding het misluk. Kontroleer asseblief jou verbinding met {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Kon nie lêer laai nie: {{error}}", + "connectedSuccessfully": "Suksesvol gekoppel", + "totpVerificationFailed": "TOTP-verifikasie het misluk", + "verificationCodePrompt": "Verifikasiekode:", + "changePermissions": "Verander Toestemmings", + "changePermissionsDesc": "Wysig lêertoestemmings vir", + "currentPermissions": "Huidige Toestemmings", + "newPermissions": "Nuwe Toestemmings", + "owner": "Eienaar", + "group": "Groep", + "others": "Ander", + "read": "Lees", + "write": "Skryf", + "execute": "Voer uit", + "permissionsChangedSuccessfully": "Toestemmings suksesvol verander", + "failedToChangePermissions": "Kon nie toestemmings verander nie" }, "tunnel": { - "noTunnelsConfigured": "No Tunnels Configured", - "configureTunnelsInHostSettings": "Configure tunnel connections in the Host Manager to get started" + "noTunnelsConfigured": "Geen tonnels gekonfigureer nie", + "configureTunnelsInHostSettings": "Konfigureer tonnelverbindings in die Gasheerbestuurder om te begin" }, "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", - "error": "Error", - "failed": "Failed", - "retrying": "Retrying", - "waiting": "Waiting", - "waitingForRetry": "Waiting for retry", - "retryingConnection": "Retrying connection", - "canceling": "Canceling...", - "connect": "Connect", - "disconnect": "Disconnect", - "cancel": "Cancel", - "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", + "title": "SSH-tonnels", + "noSshTunnels": "Geen SSH-tonnels nie", + "createFirstTunnelMessage": "Jy het nog geen SSH-tonnels geskep nie. Konfigureer tonnelverbindings in die Gasheerbestuurder om te begin.", + "connected": "Verbonde", + "disconnected": "Ontkoppel", + "connecting": "Verbind...", + "disconnecting": "Ontkoppel tans...", + "unknownTunnelStatus": "Onbekend", + "statusUnknown": "Onbekend", + "unknown": "Onbekend", + "error": "Fout", + "failed": "Misluk", + "retrying": "Probeer weer", + "waiting": "Wag", + "waitingForRetry": "Wag vir herprobeer", + "retryingConnection": "Probeer weer verbinding", + "canceling": "Kanselleer tans...", + "connect": "Verbind", + "disconnect": "Ontkoppel", + "cancel": "Kanselleer", + "port": "Hawe", + "attempt": "Poging {{current}} van {{max}}", + "nextRetryIn": "Volgende herprobeer oor {{seconds}} sekondes", + "checkDockerLogs": "Gaan jou Docker-logboeke na vir die foutrede, sluit aan by die", + "orCreate": "of skep 'n ", + "noTunnelConnections": "Geen tonnelverbindings gekonfigureer nie", + "tunnelConnections": "Tonnelverbindings", + "addTunnel": "Voeg tonnel by", + "editTunnel": "Wysig Tonnel", + "deleteTunnel": "Vee Tonnel uit", + "tunnelName": "Tonnelnaam", + "localPort": "Plaaslike Hawe", + "remoteHost": "Afstandgasheer", + "remotePort": "Afstandpoort", + "autoStart": "Outomatiese Begin", "status": "Status", - "active": "Active", - "inactive": "Inactive", - "start": "Start", + "active": "Aktief", + "inactive": "Onaktief", + "start": "Begin", "stop": "Stop", - "restart": "Restart", - "connectionType": "Connection Type", - "local": "Local", - "remote": "Remote", - "dynamic": "Dynamic", - "unknownConnectionStatus": "Unknown", - "portMapping": "Port {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", - "endpointHostNotFound": "Endpoint host not found", - "discord": "Discord", - "githubIssue": "GitHub issue", - "forHelp": "for help" + "restart": "Herbegin", + "connectionType": "Verbindingstipe", + "local": "Plaaslik", + "remote": "Afstandsbediening", + "dynamic": "Dinamiese", + "unknownConnectionStatus": "Onbekend", + "portMapping": "Poort {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", + "endpointHostNotFound": "Eindpuntgasheer nie gevind nie", + "discord": "Disharmonie", + "githubIssue": "GitHub-probleem", + "forHelp": "vir hulp" }, "serverStats": { - "title": "Server Statistics", - "cpu": "CPU", - "memory": "Memory", - "disk": "Disk", - "network": "Network", - "uptime": "Uptime", - "loadAverage": "Avg: {{avg1}}, {{avg5}}, {{avg15}}", - "processes": "Processes", - "connections": "Connections", - "usage": "Usage", - "available": "Available", - "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", - "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}}" + "title": "Bedienerstatistieke", + "cpu": "SVE", + "memory": "Geheue", + "disk": "Skyf", + "network": "Netwerk", + "uptime": "Optyd", + "loadAverage": "Gem: {{avg1}}, {{avg5}}, {{avg15}}", + "processes": "Prosesse", + "connections": "Verbindings", + "usage": "Gebruik", + "available": "Beskikbaar", + "total": "Totaal", + "free": "Gratis", + "used": "Gebruik", + "percentage": "Persentasie", + "refreshStatusAndMetrics": "Verfris status en statistieke", + "refreshStatus": "Verfris status", + "fileManagerAlreadyOpen": "Lêerbestuurder is reeds oop vir hierdie gasheer", + "openFileManager": "Maak Lêerbestuurder oop", + "cpuCores_one": "{{count}} SVE", + "cpuCores_other": "{{count}} SVE's", + "naCpus": "N/A SVE(s)", + "loadAverageNA": "Gem.: N.v.t.", + "cpuUsage": "SVE-gebruik", + "memoryUsage": "Geheuegebruik", + "diskUsage": "Skyfgebruik", + "rootStorageSpace": "Wortelbergingsruimte", + "of": "van", + "feedbackMessage": "Het jy idees vir wat volgende vir bedienerbestuur moet gebeur? Deel dit op", + "failedToFetchHostConfig": "Kon nie gasheerkonfigurasie haal nie", + "failedToFetchStatus": "Kon nie bedienerstatus haal nie", + "failedToFetchMetrics": "Kon nie bedienermetrieke haal nie", + "failedToFetchHomeData": "Kon nie huisdata haal nie", + "loadingMetrics": "Laai statistieke...", + "connecting": "Verbind...", + "refreshing": "Verfrissend...", + "serverOffline": "Bediener vanlyn", + "cannotFetchMetrics": "Kan nie statistieke van vanlyn bediener haal nie", + "totpRequired": "TOTP-verifikasie vereis", + "totpUnavailable": "Bedienerstatistieke is nie beskikbaar vir TOTP-geaktiveerde bedieners nie", + "totpVerified": "TOTP geverifieer, statistieke-insameling begin", + "totpFailed": "TOTP-verifikasie het misluk", + "totpInvalidCode": "Ongeldige verifikasiekode", + "totpCancelled": "Metrieke-insameling gekanselleer", + "authenticationFailed": "Verifikasie het misluk", + "noneAuthNotSupported": "Bedienerstatistieke ondersteun nie die 'geen'-verifikasietipe nie.", + "load": "Laai", + "editLayout": "Wysig uitleg", + "cancelEdit": "Kanselleer", + "addWidget": "Voeg Widget by", + "saveLayout": "Stoor uitleg", + "unsavedChanges": "Ongestoorde veranderinge", + "layoutSaved": "Uitleg suksesvol gestoor", + "failedToSaveLayout": "Kon nie uitleg stoor nie", + "systemInfo": "Stelselinligting", + "hostname": "Gasheernaam", + "operatingSystem": "Bedryfstelsel", + "kernel": "Kern", + "totalUptime": "Totale Optyd", + "seconds": "sekondes", + "networkInterfaces": "Netwerkkoppelvlakke", + "noInterfacesFound": "Geen netwerkkoppelvlakke gevind nie", + "totalProcesses": "Totale Prosesse", + "running": "Hardloop", + "noProcessesFound": "Geen prosesse gevind nie", + "loginStats": "SSH-aanmeldingstatistieke", + "totalLogins": "Totale Aanmeldings", + "uniqueIPs": "Unieke IP's", + "recentSuccessfulLogins": "Onlangse suksesvolle aanmeldings", + "recentFailedAttempts": "Onlangse mislukte pogings", + "noRecentLoginData": "Geen onlangse aanmelddata nie", + "from": "van", + "quickActions": "Vinnige Aksies", + "executeQuickAction": "Voer {{name}}uit", + "executingQuickAction": "Voer tans {{name}}uit ...", + "quickActionSuccess": "{{name}} suksesvol voltooi", + "quickActionFailed": "{{name}} het misluk", + "quickActionError": "Kon nie {{name}}uitvoer nie" }, "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": "SSH-BEDIENERBESTUURDER", + "description": "Veilige, kragtige en intuïtiewe SSH-verbindingsbestuur", + "welcomeBack": "Welkom terug by TERMIX", + "createAccount": "Skep jou TERMIX-rekening", + "continueExternal": "Gaan voort met eksterne verskaffer", + "loginTitle": "Teken aan by Termix", + "registerTitle": "Skep Rekening", + "loginButton": "Aanmeld", + "registerButton": "Registreer", + "forgotPassword": "Wagwoord vergeet?", + "rememberMe": "Onthou My", + "noAccount": "Het jy nie 'n rekening nie?", + "hasAccount": "Het jy reeds 'n rekening?", + "loginSuccess": "Aanmelding suksesvol", + "loginFailed": "Aanmelding het misluk", + "registerSuccess": "Registrasie suksesvol", + "registerFailed": "Registrasie het misluk", + "logoutSuccess": "Suksesvol uitgelog", + "invalidCredentials": "Ongeldige gebruikersnaam of wagwoord", + "accountCreated": "Rekening suksesvol geskep", + "passwordReset": "Wagwoordherstelskakel gestuur", + "twoFactorAuth": "Twee-faktor-verifikasie", + "enterCode": "Voer verifikasiekode in", + "backupCode": "Of gebruik rugsteunkode", + "verifyCode": "Verifieer Kode", + "redirectingToApp": "Herlei na toepassing...", + "enableTwoFactor": "Aktiveer tweefaktor-verifikasie", + "disableTwoFactor": "Deaktiveer tweefaktor-verifikasie", + "scanQRCode": "Skandeer hierdie QR-kode met jou verifikasie-app", + "backupCodes": "Rugsteunkodes", + "saveBackupCodes": "Stoor hierdie rugsteunkodes op 'n veilige plek", + "twoFactorEnabledSuccess": "Tweefaktor-verifikasie suksesvol geaktiveer!", + "twoFactorDisabled": "Tweefaktor-verifikasie gedeaktiveer", + "newBackupCodesGenerated": "Nuwe rugsteunkodes gegenereer", + "backupCodesDownloaded": "Rugsteunkodes afgelaai", + "pleaseEnterSixDigitCode": "Voer asseblief 'n 6-syferkode in", + "invalidVerificationCode": "Ongeldige verifikasiekode", + "failedToDisableTotp": "Kon nie TOTP deaktiveer nie", + "failedToGenerateBackupCodes": "Kon nie rugsteunkodes genereer nie", + "enterPassword": "Voer jou wagwoord in", + "lockedOidcAuth": "Gesluit (OIDC-magtiging)", + "twoFactorTitle": "Twee-faktor-verifikasie", + "twoFactorProtected": "Jou rekening word beskerm met tweefaktor-verifikasie", + "twoFactorActive": "Tweefaktor-verifikasie is tans aktief op jou rekening", + "disable2FA": "Deaktiveer 2FA", + "disableTwoFactorWarning": "As jy tweefaktor-verifikasie deaktiveer, sal jou rekening minder veilig wees.", + "passwordOrTotpCode": "Wagwoord of TOTP-kode", + "or": "Of", + "generateNewBackupCodesText": "Genereer nuwe rugsteunkodes as jy jou bestaande kodes verloor het", + "generateNewBackupCodes": "Genereer Nuwe Rugsteunkodes", + "yourBackupCodes": "Jou rugsteunkodes", + "download": "Laai af", + "setupTwoFactorTitle": "Stel tweefaktor-verifikasie op", + "sshAuthenticationRequired": "SSH-verifikasie vereis", + "sshNoKeyboardInteractive": "Sleutelbord-interaktiewe verifikasie nie beskikbaar nie", + "sshAuthenticationFailed": "Verifikasie het misluk", + "sshAuthenticationTimeout": "Verifikasie-tydverstryking", + "sshNoKeyboardInteractiveDescription": "Die bediener ondersteun nie sleutelbord-interaktiewe verifikasie nie. Verskaf asseblief u wagwoord of SSH-sleutel.", + "sshAuthFailedDescription": "Die verskafde aanmeldbesonderhede was verkeerd. Probeer asseblief weer met geldige aanmeldbesonderhede.", + "sshTimeoutDescription": "Die verifikasiepoging het verstryk. Probeer asseblief weer.", + "sshProvideCredentialsDescription": "Verskaf asseblief u SSH-besonderhede om aan hierdie bediener te koppel.", + "sshPasswordDescription": "Voer die wagwoord vir hierdie SSH-verbinding in.", + "sshKeyPasswordDescription": "As jou SSH-sleutel geïnkripteer is, voer die wagwoordfrase hier in.", + "step1ScanQR": "Stap 1: Skandeer die QR-kode met jou verifikasie-app", + "manualEntryCode": "Handmatige Invoerkode", + "cannotScanQRText": "As jy nie die QR-kode kan skandeer nie, voer hierdie kode handmatig in jou verifikasie-app in.", + "nextVerifyCode": "Volgende: Verifieer Kode", + "verifyAuthenticator": "Verifieer jou outentiseerder", + "step2EnterCode": "Stap 2: Voer die 6-syferkode van jou verifikasie-app in", + "verificationCode": "Verifikasiekode", + "back": "Terug", + "verifyAndEnable": "Verifieer en Aktiveer", + "saveBackupCodesTitle": "Stoor jou rugsteunkodes", + "step3StoreCodesSecurely": "Stap 3: Bêre hierdie kodes op 'n veilige plek", + "importantBackupCodesText": "Stoor hierdie rugsteunkodes op 'n veilige plek. Jy kan hulle gebruik om toegang tot jou rekening te kry as jy jou verifikasietoestel verloor.", + "completeSetup": "Voltooi opstelling", + "notEnabledText": "Tweefaktor-verifikasie voeg 'n ekstra laag sekuriteit by deur 'n kode van jou verifikasie-app te vereis wanneer jy aanmeld.", + "enableTwoFactorButton": "Aktiveer tweefaktor-verifikasie", + "addExtraSecurityLayer": "Voeg 'n ekstra laag sekuriteit by jou rekening", + "firstUser": "Eerste Gebruiker", + "firstUserMessage": "Jy is die eerste gebruiker en sal 'n administrateur gemaak word. Jy kan administrateurinstellings in die kantbalk se gebruikersaftreklys sien. As jy dink dit is 'n fout, kyk na die docker-logboeke of skep 'n GitHub-probleem.", + "external": "Eksterne", + "loginWithExternal": "Teken aan met eksterne verskaffer", + "loginWithExternalDesc": "Meld aan met jou gekonfigureerde eksterne identiteitsverskaffer", + "externalNotSupportedInElectron": "Eksterne verifikasie word nog nie in die Electron-app ondersteun nie. Gebruik asseblief die webweergawe vir OIDC-aanmelding.", + "resetPasswordButton": "Herstel wagwoord", + "sendResetCode": "Stuur Herstelkode", + "resetCodeDesc": "Voer jou gebruikersnaam in om 'n wagwoordherstelkode te ontvang. Die kode sal in die docker-houerlogboeke aangeteken word.", + "resetCode": "Herstel kode", + "verifyCodeButton": "Verifieer Kode", + "enterResetCode": "Voer die 6-syfer-kode van die docker-houerlogboeke vir die gebruiker in:", + "goToLogin": "Gaan na Aanmelding", + "newPassword": "Nuwe Wagwoord", + "confirmNewPassword": "Bevestig wagwoord", + "enterNewPassword": "Voer jou nuwe wagwoord vir gebruiker in:", + "signUp": "Registreer", + "mobileApp": "Mobiele toepassing", + "loggingInToMobileApp": "Aanmelding by die mobiele toepassing", + "desktopApp": "Rekenaartoepassing", + "loggingInToDesktopApp": "Aanmelding by die lessenaar-app", + "loggingInToDesktopAppViaWeb": "Aanmelding by die lessenaar-app via webkoppelvlak", + "loadingServer": "Laai bediener...", + "authenticating": "Verifieer tans...", + "dataLossWarning": "As jy jou wagwoord op hierdie manier terugstel, sal al jou gestoorde SSH-gashere, geloofsbriewe en ander geïnkripteerde data uitgevee word. Hierdie aksie kan nie ongedaan gemaak word nie. Gebruik dit slegs as jy jou wagwoord vergeet het en nie aangemeld is nie.", + "authenticationDisabled": "Verifikasie gedeaktiveer", + "authenticationDisabledDesc": "Alle verifikasiemetodes is tans gedeaktiveer. Kontak asseblief u administrateur.", + "passwordResetSuccess": "Wagwoordherstel suksesvol", + "passwordResetSuccessDesc": "Jou wagwoord is suksesvol herstel. Jy kan nou met jou nuwe wagwoord aanmeld." }, "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": "Bladsy nie gevind nie", + "unauthorized": "Ongemagtigde toegang", + "forbidden": "Toegang verbode", + "serverError": "Bedienerfout", + "networkError": "Netwerkfout", + "databaseConnection": "Kon nie aan die databasis koppel nie", + "unknownError": "Onbekende fout", + "loginFailed": "Aanmelding het misluk", + "failedPasswordReset": "Kon nie wagwoordherstel begin nie", + "failedVerifyCode": "Kon nie die terugstelkode verifieer nie", + "failedCompleteReset": "Kon nie wagwoordterugstelling voltooi nie", + "invalidTotpCode": "Ongeldige TOTP-kode", + "failedOidcLogin": "Kon nie OIDC-aanmelding begin nie", + "failedUserInfo": "Kon nie gebruikersinligting kry na OIDC-aanmelding nie", + "oidcAuthFailed": "OIDC-verifikasie het misluk", + "noTokenReceived": "Geen teken ontvang van aanmelding nie", + "invalidAuthUrl": "Ongeldige magtigings-URL ontvang van backend", + "invalidInput": "Ongeldige invoer", + "requiredField": "Hierdie veld is verpligtend", + "minLength": "Minimum lengte is {{min}}", + "maxLength": "Maksimum lengte is {{max}}", + "invalidEmail": "Ongeldige e-posadres", + "passwordMismatch": "Wagwoorde stem nie ooreen nie", + "passwordLoginDisabled": "Gebruikersnaam/wagwoord-aanmelding is tans gedeaktiveer", + "weakPassword": "Wagwoord is te swak", + "usernameExists": "Gebruikersnaam bestaan reeds", + "emailExists": "E-posadres bestaan reeds", + "loadFailed": "Kon nie data laai nie", + "saveError": "Kon nie stoor nie", + "sessionExpired": "Sessie het verstryk - meld asseblief weer aan" }, "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": "Suksesvol gestoor", + "saveError": "Kon nie stoor nie", + "deleteSuccess": "Suksesvol uitgevee", + "deleteError": "Kon nie verwyder nie", + "updateSuccess": "Suksesvol opgedateer", + "updateError": "Kon nie opdateer nie", + "copySuccess": "Na knipbord gekopieer", + "copyError": "Kon nie kopieer nie", + "copiedToClipboard": "{{item}} na knipbord gekopieer", + "connectionEstablished": "Verbinding gevestig", + "connectionClosed": "Verbinding gesluit", + "reconnecting": "Herkoppel tans...", + "processing": "Verwerk...", + "pleaseWait": "Wag asseblief...", + "registrationDisabled": "Nuwe rekeningregistrasie is tans deur 'n administrateur gedeaktiveer. Meld asseblief aan of kontak 'n administrateur.", + "databaseConnected": "Databasis suksesvol gekoppel", + "databaseConnectionFailed": "Kon nie aan die databasisbediener koppel nie", + "checkServerConnection": "Kontroleer asseblief u bedienerverbinding en probeer weer", + "resetCodeSent": "Herstel kode gestuur na Docker-logboeke", + "codeVerified": "Kode suksesvol geverifieer", + "passwordResetSuccess": "Wagwoord herstel suksesvol", + "loginSuccess": "Aanmelding suksesvol", + "registrationSuccess": "Registrasie suksesvol" }, "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", - "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", - "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" + "title": "Gebruikersprofiel", + "description": "Bestuur jou rekeninginstellings en sekuriteit", + "security": "Sekuriteit", + "changePassword": "Verander wagwoord", + "twoFactorAuth": "Twee-faktor-verifikasie", + "accountInfo": "Rekeninginligting", + "role": "Rol", + "admin": "Administrateur", + "user": "Gebruiker", + "authMethod": "Verifikasiemetode", + "local": "Plaaslik", + "external": "Ekstern (OIDC)", + "externalAndLocal": "Dubbele Magtiging", + "selectPreferredLanguage": "Kies jou voorkeurtaal vir die koppelvlak", + "fileColorCoding": "Lêerkleurkodering", + "fileColorCodingDesc": "Kleurkodeer lêers volgens tipe: lêers (rooi), lêers (blou), simskakels (groen)", + "commandAutocomplete": "Opdrag Outomatiese Voltooiing", + "commandAutocompleteDesc": "Aktiveer Tab-sleutel outovoltooiingsvoorstelle vir terminaalopdragte gebaseer op jou opdraggeskiedenis", + "defaultSnippetFoldersCollapsed": "Vou brokkie-vouers standaard in", + "defaultSnippetFoldersCollapsedDesc": "Wanneer dit geaktiveer is, sal alle brokkie-lêergidse ingevou word wanneer jy die brokkie-oortjie oopmaak.", + "terminalSyntaxHighlighting": "Terminale Sintaksis Uitlig", + "showHostTags": "Wys gasheer-etikette", + "showHostTagsDesc": "Wys etikette onder elke gasheer in die sybalk. Deaktiveer om alle etikette te versteek.", + "account": "Rekening", + "appearance": "Voorkoms", + "languageLocalization": "Taal en lokalisering", + "fileManagerSettings": "Lêerbestuurder", + "terminalSettings": "Terminaal", + "hostSidebarSettings": "Gasheer en sybalk", + "snippetsSettings": "Brokkies", + "currentPassword": "Huidige Wagwoord", + "passwordChangedSuccess": "Wagwoord suksesvol verander! Meld asseblief weer aan.", + "failedToChangePassword": "Kon nie wagwoord verander nie. Kontroleer asseblief jou huidige wagwoord en probeer weer.", + "theme": "Tema", + "themeLight": "Lig", + "themeDark": "Donker", + "themeSystem": "Stelsel", + "appearanceDesc": "Kies die kleurtema vir die toepassing", + "terminalSyntaxHighlightingDesc": "Merk outomaties opdragte, paaie, IP's en logvlakke in terminaaluitvoer" }, "user": { - "failedToLoadVersionInfo": "Failed to load version information" + "failedToLoadVersionInfo": "Kon nie weergawe-inligting laai nie" }, "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/", - "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", + "language": "Taal", + "username": "gebruikersnaam", + "hostname": "gasheernaam", + "folder": "vouer", + "password": "wagwoord", + "keyPassword": "sleutelwagwoord", + "sudoPassword": "sudo wagwoord (opsioneel)", + "notes": "voeg notas by oor hierdie gasheer...", + "expirationDate": "Kies vervaldatum", + "pastePrivateKey": "Plak jou privaat sleutel hier...", + "pastePublicKey": "Plak jou publieke sleutel hier...", + "credentialName": "My SSH-bediener", + "description": "SSH-bewysbeskrywing", + "searchCredentials": "Soek geloofsbriewe volgens naam, gebruikersnaam of etikette...", + "sshConfig": "eindpunt ssh-konfigurasie", + "homePath": "/tuis", + "clientId": "jou-kliënt-ID", + "clientSecret": "jou-kliënt-geheim", + "authUrl": "https://jou-verskaffer.com/aansoek/o/authorize/", + "redirectUrl": "https://jou-verskaffer.com/aansoek/o/termix/", + "tokenUrl": "https://jou-verskaffer.com/aansoek/o/token/", + "userIdField": "onderafdeling", + "usernameField": "naam", + "scopes": "openid e-posprofiel", + "userinfoUrl": "https://jou-verskaffer.com/aansoek/o/gebruikersinfo/", + "enterUsername": "Voer gebruikersnaam in om admin te word", + "searchHosts": "Soek gashere volgens naam, gebruikersnaam, IP, vouer, etikette...", + "enterPassword": "Voer jou wagwoord in", + "totpCode": "6-syfer TOTP-kode", + "searchHostsAny": "Soek gashere (probeer: tag:prod, user:root, ip:192.168)...", + "confirmPassword": "Voer jou wagwoord in om te bevestig", + "typeHere": "Tik hier", + "fileName": "Voer lêernaam in (bv. voorbeeld.txt)", + "folderName": "Voer die naam van die lêergids in", + "fullPath": "Voer die volledige pad na die item in", + "currentPath": "Voer huidige pad na item in", + "newName": "Voer nuwe naam in", "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": "proxy-gebruikersnaam", + "socks5Password": "volmagwagwoord", + "socks5PresetName": "bv. Werk VPN-ketting", + "socks5PresetDescription": "bv. Proxy-ketting vir toegang tot werkbedieners", + "moshCommand": "mosh gebruiker@bediener", "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": "Kon nie gashere laai nie", + "noFolder": "Geen vouer nie", + "passwordRequired": "Wagwoord word vereis", + "failedToDeleteAccount": "Kon nie rekening uitvee nie", + "failedToMakeUserAdmin": "Kon nie gebruiker administrateur maak nie", + "userIsNowAdmin": "Gebruiker {{username}} is nou 'n administrateur", + "removeAdminConfirm": "Is jy seker jy wil administrateurstatus van {{username}}verwyder?", + "deleteUserConfirm": "Is jy seker jy wil gebruiker {{username}}verwyder? Hierdie aksie kan nie ongedaan gemaak word nie.", + "deleteAccount": "Vee rekening uit", + "closeDeleteAccount": "Maak toe Vee Rekening Uit", + "deleteAccountWarning": "Hierdie aksie kan nie ongedaan gemaak word nie. Dit sal jou rekening en alle geassosieerde data permanent uitvee.", + "deleteAccountWarningDetails": "As jy jou rekening uitvee, sal al jou data, insluitend SSH-gashere, konfigurasies en instellings, verwyder word. Hierdie aksie is onomkeerbaar.", + "deleteAccountWarningShort": "Hierdie aksie is nie omkeerbaar nie en sal jou rekening permanent verwyder.", + "cannotDeleteAccount": "Kan nie rekening uitvee nie", + "lastAdminWarning": "Jy is die laaste administrateurgebruiker. Jy kan nie jou rekening uitvee nie, aangesien dit die stelsel sonder enige administrateurs sal laat. Maak asseblief eers 'n ander gebruiker 'n administrateur, of kontak stelselondersteuning.", + "confirmPassword": "Bevestig wagwoord", + "deleting": "Vee tans uit...", + "cancel": "Kanselleer" }, "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", - "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", - "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" + "sidebar": "Sybalk", + "toggleSidebar": "Wissel sybalk", + "close": "Maak toe", + "online": "Aanlyn", + "offline": "Vanlyn", + "maintenance": "Onderhoud", + "degraded": "Gedegradeer", + "noTunnelConnections": "Geen tonnelverbindings gekonfigureer nie", + "discord": "Disharmonie", + "connectToSshForOperations": "Koppel aan SSH om lêerbewerkings te gebruik", + "uploadFile": "Laai lêer op", + "newFile": "Nuwe Lêer", + "newFolder": "Nuwe vouer", + "rename": "Hernoem", + "deleteItem": "Vee item uit", + "createNewFile": "Skep Nuwe Lêer", + "createNewFolder": "Skep Nuwe Vouer", + "renameItem": "Hernoem item", + "clickToSelectFile": "Klik om 'n lêer te kies", + "noSshHosts": "Geen SSH-gashere nie", + "sshHosts": "SSH-gashere", + "importSshHosts": "Voer SSH-gashere vanaf JSON in", + "clientId": "Kliënt-ID", + "clientSecret": "Kliëntgeheim", + "error": "Fout", + "warning": "Waarskuwing", + "deleteAccount": "Vee rekening uit", + "closeDeleteAccount": "Maak toe Vee Rekening Uit", + "cannotDeleteAccount": "Kan nie rekening uitvee nie", + "confirmPassword": "Bevestig wagwoord", + "deleting": "Vee tans uit...", + "externalAuth": "Eksterne Verifikasie (OIDC)", + "configureExternalProvider": "Konfigureer eksterne identiteitsverskaffer vir", + "waitingForRetry": "Wag vir herprobeer", + "retryingConnection": "Probeer weer verbinding", + "resetSplitSizes": "Stel verdeelde groottes terug", + "sshManagerAlreadyOpen": "SSH-bestuurder reeds oop", + "disabledDuringSplitScreen": "Gedeaktiveer tydens gesplete skerm", + "unknown": "Onbekend", + "connected": "Verbonde", + "disconnected": "Ontkoppel", + "maxRetriesExhausted": "Maks herprobeer uitgeput", + "endpointHostNotFound": "Eindpuntgasheer nie gevind nie", + "administrator": "Administrateur", + "user": "Gebruiker", + "external": "Eksterne", + "local": "Plaaslik", + "saving": "Stoor...", + "saveConfiguration": "Stoor Konfigurasie", + "loading": "Laai tans...", + "refresh": "Verfris", + "adding": "Voeg by...", + "makeAdmin": "Maak Admin", + "verifying": "Verifieer tans...", + "verifyAndEnable": "Verifieer en Aktiveer", + "secretKey": "Geheime sleutel", + "totpQrCode": "TOTP QR-kode", + "passwordRequired": "Wagwoord word vereis wanneer wagwoordverifikasie gebruik word", + "sshKeyRequired": "SSH Privaatsleutel word vereis wanneer sleutelverifikasie gebruik word", + "keyTypeRequired": "Sleuteltipe word vereis wanneer sleutelverifikasie gebruik word", + "validSshConfigRequired": "Moet 'n geldige SSH-konfigurasie uit die lys kies", + "updateHost": "Opdateer gasheer", + "addHost": "Voeg gasheer by", + "editHost": "Wysig gasheer", + "pinConnection": "Penverbinding", + "authentication": "Verifikasie", + "password": "Wagwoord", + "key": "Sleutel", + "sshPrivateKey": "SSH Privaat Sleutel", + "keyPassword": "Sleutelwagwoord", + "keyType": "Sleuteltipe", + "enableTerminal": "Aktiveer Terminaal", + "enableTunnel": "Aktiveer Tonnel", + "enableFileManager": "Aktiveer Lêerbestuurder", + "defaultPath": "Standaardpad", + "tunnelConnections": "Tonnelverbindings", + "maxRetries": "Maksimum herprobeer", + "upload": "Oplaai", + "updateKey": "Opdateringsleutel", + "productionFolder": "Produksie", + "databaseServer": "Databasisbediener", + "developmentServer": "Ontwikkelingsbediener", + "developmentFolder": "Ontwikkeling", + "webServerProduction": "Webbediener - Produksie", + "unknownError": "Onbekende fout", + "failedToInitiatePasswordReset": "Kon nie wagwoordherstel begin nie", + "failedToVerifyResetCode": "Kon nie die terugstelkode verifieer nie", + "failedToCompletePasswordReset": "Kon nie wagwoordterugstelling voltooi nie", + "invalidTotpCode": "Ongeldige TOTP-kode", + "failedToStartOidcLogin": "Kon nie OIDC-aanmelding begin nie", + "failedToGetUserInfoAfterOidc": "Kon nie gebruikersinligting kry na OIDC-aanmelding nie", + "loginWithExternalProvider": "Teken aan met eksterne verskaffer", + "loginWithExternal": "Teken aan met eksterne verskaffer", + "sendResetCode": "Stuur Herstelkode", + "verifyCode": "Verifieer Kode", + "resetPassword": "Herstel wagwoord", + "login": "Aanmeld", + "signUp": "Registreer", + "failedToUpdateOidcConfig": "Kon nie OIDC-konfigurasie opdateer nie", + "failedToMakeUserAdmin": "Kon nie gebruiker administrateur maak nie", + "failedToStartTotpSetup": "Kon nie TOTP-opstelling begin nie", + "invalidVerificationCode": "Ongeldige verifikasiekode", + "failedToDisableTotp": "Kon nie TOTP deaktiveer nie", + "failedToGenerateBackupCodes": "Kon nie rugsteunkodes genereer nie" }, "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": "Kies 'n gasheer om jou terminaalsessie te begin", + "limitedSupportMessage": "Mobiele webwerfondersteuning is steeds aan die gang. Gebruik die mobiele toepassing vir 'n beter ervaring.", + "mobileAppInProgress": "Mobiele toepassing is aan die gang", + "mobileAppInProgressDesc": "Ons werk aan 'n toegewyde mobiele toepassing om 'n beter ervaring op mobiele toestelle te bied.", + "viewMobileAppDocs": "Installeer mobiele toepassing", + "mobileAppDocumentation": "Dokumentasie vir mobiele toepassings" }, "dashboard": { "title": "Dashboard", "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", - "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", - "cpu": "CPU", + "support": "Ondersteuning", + "discord": "Disharmonie", + "donate": "Skenk", + "serverOverview": "Bediener Oorsig", + "version": "Weergawe", + "upToDate": "Op datum", + "updateAvailable": "Opdatering beskikbaar", + "uptime": "Optyd", + "database": "Databasis", + "healthy": "Gesond", + "error": "Fout", + "totalServers": "Totale bedieners", + "totalTunnels": "Totale tonnels", + "totalCredentials": "Totale geloofsbriewe", + "recentActivity": "Onlangse Aktiwiteit", + "reset": "Herstel", + "loadingRecentActivity": "Laai onlangse aktiwiteit...", + "noRecentActivity": "Geen onlangse aktiwiteit nie", + "quickActions": "Vinnige Aksies", + "addHost": "Voeg gasheer by", + "addCredential": "Voeg geloofsbriewe by", + "adminSettings": "Admin-instellings", + "userProfile": "Gebruikersprofiel", + "serverStats": "Bedienerstatistieke", + "loadingServerStats": "Laai bedienerstatistieke...", + "noServerData": "Geen bedienerdata beskikbaar nie", + "cpu": "SVE", "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": "Deel gasheer", + "shareHostTitle": "Deel gasheertoegang", + "shareHostDescription": "Verleen tydelike of permanente toegang tot hierdie gasheer", + "targetUser": "Teikengebruiker", + "selectUser": "Kies 'n gebruiker om mee te deel", + "duration": "Duur", + "durationHours": "Duur (ure)", + "neverExpires": "Verval nooit", + "permissionLevel": "Toestemmingsvlak", "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": "Lees-alleen", + "readonlyDesc": "Kan slegs kyk, geen opdraginvoer nie", + "restricted": "Beperk", + "restrictedDesc": "Blokkeer gevaarlike bevele (passwd, rm -rf, ens.)", + "monitored": "Gemonitor", + "monitoredDesc": "Neem alle bevele op, maar blokkeer nie (Aanbeveel)", + "full": "Volle Toegang", + "fullDesc": "Geen beperkings nie (Nie aanbeveel nie)" }, - "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": "Geblokkeerde bevele", + "blockedCommandsPlaceholder": "Voer bevele in om te blokkeer, bv. passwd, rm, dd", + "maxSessionDuration": "Maksimum Sessie Duur (minute)", + "createTempUser": "Skep tydelike gebruiker", + "createTempUserDesc": "Skep 'n beperkte gebruiker op die bediener in plaas daarvan om jou geloofsbriewe te deel. Vereis sudo-toegang. Mees veilige opsie.", + "expiresAt": "Vervaldatum", + "expiresIn": "Verval oor {{hours}} uur", + "expired": "Verstryk", + "grantedBy": "Toegeken deur", + "accessLevel": "Toegangsvlak", + "lastAccessed": "Laas Toegang", + "accessCount": "Toegangtelling", + "revokeAccess": "Herroep Toegang", + "confirmRevokeAccess": "Is jy seker jy wil toegang vir {{username}}herroep?", + "hostSharedSuccessfully": "Gasheer suksesvol gedeel met {{username}}", + "hostAccessUpdated": "Gasheertoegang opgedateer", + "failedToShareHost": "Kon nie gasheer deel nie", + "accessRevokedSuccessfully": "Toegang suksesvol herroep", + "failedToRevokeAccess": "Kon nie toegang herroep nie", + "shared": "Gedeel", + "sharedHosts": "Gedeelde gashere", + "sharedWithMe": "Gedeel met my", + "noSharedHosts": "Geen gashere is met jou gedeel nie", + "owner": "Eienaar", + "viewAccessList": "Bekyk Toegangslys", + "accessList": "Toegangslys", + "noAccessGranted": "Geen toegang is vir hierdie gasheer toegestaan nie", + "noAccessGrantedMessage": "Geen gebruikers is nog toegang tot hierdie gasheer verleen nie", + "manageAccessFor": "Bestuur toegang vir", + "totalAccessRecords": "{{count}} toegangsrekord(s)", + "neverAccessed": "Nooit", + "timesAccessed": "{{count}} tyd(e)", + "daysRemaining": "{{days}} dag(e)", + "hoursRemaining": "{{hours}} uur(e)", + "failedToFetchAccessList": "Kon nie toegangslys haal nie", + "currentAccess": "Huidige Toegang", + "securityWarning": "Sekuriteitswaarskuwing", + "securityWarningMessage": "Deur geloofsbriewe te deel, gee dit die gebruiker volle toegang om enige bewerkings op die bediener uit te voer, insluitend die verandering van wagwoorde en die verwydering van lêers. Deel slegs met vertroude gebruikers.", + "tempUserRecommended": "Ons beveel aan dat u 'Skep tydelike gebruiker' aktiveer vir beter sekuriteit.", + "roleManagement": "Rolbestuur", + "manageRoles": "Bestuur Rolle", + "manageRolesFor": "Bestuur rolle vir {{username}}", + "assignRole": "Ken Rol Toe", + "removeRole": "Verwyder Rol", + "userRoles": "Gebruikersrolle", + "permissions": "Toestemmings", + "systemRole": "Stelselrol", + "customRole": "Aangepaste Rol", + "roleAssignedSuccessfully": "Rol suksesvol toegeken aan {{username}}", + "failedToAssignRole": "Kon nie rol toewys nie", + "roleRemovedSuccessfully": "Rol suksesvol verwyder van {{username}}", + "failedToRemoveRole": "Kon nie rol verwyder nie", + "cannotRemoveSystemRole": "Kan nie stelselrol verwyder nie", + "cannotShareWithSelf": "Kan nie gasheer met jouself deel nie", + "noCustomRolesToAssign": "Geen persoonlike rolle beskikbaar nie. Stelselrolle word outomaties toegeken.", + "credentialSharingWarning": "Geloofsbriefverifikasie word nie ondersteun vir deling nie", + "credentialRequired": "Geloofsbriewe word vereis wanneer 'n gasheer gedeel word", + "credentialRequiredDescription": "Hierdie gasheer gebruik nie geloofsbriefgebaseerde verifikasie nie. Om gashere te deel, moet die gasheer, as gevolg van per-gebruiker-enkripsie, geloofsbriefgebaseerde verifikasie gebruik.", + "auditLogs": "Ouditlogboeke", + "viewAuditLogs": "Bekyk ouditlogboeke", + "action": "Aksie", + "resourceType": "Hulpbrontipe", + "resourceName": "Hulpbronnaam", + "timestamp": "Tydstempel", + "ipAddress": "IP-adres", + "userAgent": "Gebruikersagent", + "success": "Sukses", + "failed": "Misluk", + "details": "Besonderhede", + "noAuditLogs": "Geen ouditlogboeke beskikbaar nie", + "sessionRecordings": "Sessie-opnames", + "viewRecording": "Bekyk Opname", + "downloadRecording": "Laai opname af", + "dangerousCommand": "Gevaarlike Opdrag Bespeur", + "commandBlocked": "Opdrag geblokkeer", + "terminateSession": "Beëindig Sessie", + "sessionTerminated": "Sessie beëindig deur gasheer-eienaar", + "sharedAccessExpired": "Jou gedeelde toegang tot hierdie gasheer het verval", + "sharedAccessExpiresIn": "Gedeelde toegang verval oor {{hours}} uur", "roles": { - "label": "Roles", - "admin": "Administrator", - "user": "User" + "label": "Rolle", + "admin": "Administrateur", + "user": "Gebruiker" }, - "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": "Skep Rol", + "editRole": "Wysig Rol", + "roleName": "Rolnaam", + "displayName": "Vertoonnaam", + "description": "Beskrywing", + "assignRoles": "Ken rolle toe", + "userRoleAssignment": "Gebruikersroltoewysing", + "selectUserPlaceholder": "Kies 'n gebruiker", + "searchUsers": "Soek gebruikers...", + "noUserFound": "Geen gebruiker gevind nie", + "currentRoles": "Huidige Rolle", + "noRolesAssigned": "Geen rolle toegeken nie", + "assignNewRole": "Ken Nuwe Rol Toe", + "selectRolePlaceholder": "Kies 'n rol", + "searchRoles": "Soek rolle...", + "noRoleFound": "Geen rol gevind nie", + "assign": "Toewys", + "roleCreatedSuccessfully": "Rol suksesvol geskep", + "roleUpdatedSuccessfully": "Rol suksesvol opgedateer", + "roleDeletedSuccessfully": "Rol suksesvol verwyder", + "failedToLoadRoles": "Kon nie rolle laai nie", + "failedToSaveRole": "Kon nie rol stoor nie", + "failedToDeleteRole": "Kon nie rol uitvee nie", + "roleDisplayNameRequired": "Rolvertoonnaam word vereis", + "roleNameRequired": "Rolnaam word vereis", + "roleNameHint": "Gebruik slegs kleinletters, syfers, onderstrepe en koppeltekens", + "displayNamePlaceholder": "Ontwikkelaar", + "descriptionPlaceholder": "Sagteware-ontwikkelaars en ingenieurs", + "confirmDeleteRole": "Vee Rol uit", + "confirmDeleteRoleDescription": "Is jy seker jy wil die rol '{{name}}' verwyder? Hierdie aksie kan nie ongedaan gemaak word nie.", + "confirmRemoveRole": "Verwyder Rol", + "confirmRemoveRoleDescription": "Is jy seker jy wil hierdie rol van die gebruiker verwyder?", + "editRoleDescription": "Opdateer rolinligting", + "createRoleDescription": "Skep 'n nuwe persoonlike rol vir die groepering van gebruikers", + "assignRolesDescription": "Bestuur roltoewysings vir gebruikers", + "noRoles": "Geen rolle gevind nie", + "selectRole": "Kies Rol", + "type": "Tipe", + "user": "Gebruiker", + "role": "Rol", + "saveHostFirst": "Stoor gasheer eerste", + "saveHostFirstDescription": "Stoor asseblief die gasheer voordat u deelinstellings opstel.", + "shareWithUser": "Deel met Gebruiker", + "shareWithRole": "Deel met Rol", + "share": "Deel", + "target": "Teiken", + "expires": "Vervaldatum", + "never": "Nooit", + "noAccessRecords": "Geen toegangsrekords gevind nie", + "sharedSuccessfully": "Suksesvol gedeel", + "failedToShare": "Kon nie deel nie", + "confirmRevokeAccessDescription": "Is jy seker jy wil hierdie toegang herroep?", + "hours": "ure", + "sharing": "Deling", + "selectUserAndRole": "Kies asseblief beide 'n gebruiker en 'n rol", + "view": "Slegs Kyk", + "viewDesc": "As gevolg van die Termix-enkripsiestelsel, sal ander toestemmingsvlakke later beskikbaar wees." }, "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": "Soek vir gashere of vinnige aksies...", + "recentActivity": "Onlangse Aktiwiteit", + "navigation": "Navigasie", + "addHost": "Voeg gasheer by", + "addCredential": "Voeg geloofsbriewe by", + "adminSettings": "Admin-instellings", + "userProfile": "Gebruikersprofiel", + "updateLog": "Opdateringslogboek", + "hosts": "Gashere", + "openServerDetails": "Maak bedienerbesonderhede oop", + "openFileManager": "Maak Lêerbestuurder oop", + "edit": "Wysig", + "links": "Skakels", "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": "Ondersteuning", + "discord": "Disharmonie", + "donate": "Skenk", + "press": "Pers", + "toToggle": "om te wissel", + "close": "Maak toe", + "hostManager": "Gasheerbestuurder", + "pressToToggle": "Druk twee keer die linker Shift-knoppie om die opdragpalet oop te maak" }, "docker": { - "notEnabled": "Docker is not enabled for this host", - "validating": "Validating Docker...", - "connectingToHost": "Connecting to host...", - "error": "Error", - "errorCode": "Error code: {{code}}", + "notEnabled": "Docker is nie vir hierdie gasheer geaktiveer nie", + "validating": "Valideer Docker...", + "connectingToHost": "Verbind met gasheer...", + "error": "Fout", + "errorCode": "Foutkode: {{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": "Houer {{name}} het begin", + "failedToStartContainer": "Kon nie houer {{name}}begin nie", + "containerStopped": "Houer {{name}} gestop", + "failedToStopContainer": "Kon nie houer {{name}}stop nie", + "containerRestarted": "Houer {{name}} herbegin", + "failedToRestartContainer": "Kon nie houer {{name}}herbegin nie", + "containerPaused": "Houer {{name}} gepouseer", + "containerUnpaused": "Houer {{name}} ontpoos", + "failedToTogglePauseContainer": "Kon nie pousestatus vir houer {{name}}wissel nie", + "containerRemoved": "Houer {{name}} verwyder", + "failedToRemoveContainer": "Kon nie houer {{name}}verwyder nie", + "image": "Beeld", "idLabel": "ID", - "ports": "Ports", - "noPorts": "No ports", - "created": "Created", - "start": "Start", + "ports": "Hawens", + "noPorts": "Geen poorte nie", + "created": "Geskep", + "start": "Begin", "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}})", + "pause": "Pouseer", + "unpause": "Ontpouseer", + "restart": "Herbegin", + "remove": "Verwyder", + "removeContainer": "Verwyder Houer", + "confirmRemoveContainer": "Is jy seker jy wil die houer '{{name}}' verwyder? Hierdie aksie kan nie ongedaan gemaak word nie.", + "runningContainerWarning": "Waarskuwing: Hierdie houer loop tans. As dit verwyder word, sal die houer eers gestop word.", + "removing": "Verwyder...", + "loadingContainers": "Laai houers...", + "noContainersFound": "Geen houers gevind nie", + "noContainersFoundHint": "Geen Docker-houers is op hierdie gasheer beskikbaar nie", + "searchPlaceholder": "Soek houers...", + "filterByStatusPlaceholder": "Filtreer volgens status", + "allContainersCount": "Alles ({{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", - "pids": "PIDs", - "containerInformation": "Container Information", - "name": "Name", + "noContainersMatchFilters": "Geen houers stem ooreen met jou filters nie", + "noContainersMatchFiltersHint": "Probeer om jou soek- of filterkriteria aan te pas", + "containerMustBeRunningToViewStats": "Die houer moet loop om statistieke te sien", + "failedToFetchStats": "Kon nie houerstatistieke haal nie", + "containerNotRunning": "Houer loop nie", + "startContainerToViewStats": "Begin die houer om statistieke te sien", + "loadingStats": "Laai statistieke...", + "errorLoadingStats": "Fout by die laai van statistieke", + "noStatsAvailable": "Geen statistieke beskikbaar nie", + "cpuUsage": "SVE-gebruik", + "current": "Huidige", + "memoryUsage": "Geheuegebruik", + "usedLimit": "Gebruik / Limiet", + "percentage": "Persentasie", + "networkIo": "Netwerk I/O", + "input": "Invoer", + "output": "Uitset", + "blockIo": "Blok I/O", + "read": "Lees", + "write": "Skryf", + "pids": "PID's", + "containerInformation": "Houerinligting", + "name": "Naam", "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", - "errorMessage": "Error: {{message}}", - "failedToConnect": "Failed to connect to container", - "console": "Console", - "selectShell": "Select shell", + "state": "Staat", + "disconnectedFromContainer": "Ontkoppel van houer", + "containerMustBeRunning": "Die houer moet loop om toegang tot die konsole te verkry", + "authenticationRequired": "Verifikasie vereis", + "verificationCodePrompt": "Voer verifikasiekode in", + "totpVerificationFailed": "TOTP-verifikasie het misluk. Probeer asseblief weer.", + "connectedTo": "Gekoppel aan {{containerName}}", + "disconnected": "Ontkoppel", + "consoleError": "Konsolefout", + "errorMessage": "Fout: {{message}}", + "failedToConnect": "Kon nie aan houer koppel nie", + "console": "Konsole", + "selectShell": "Kies dop", "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" + "sh": "sj", + "ash": "as", + "connecting": "Verbind...", + "connect": "Verbind", + "disconnect": "Ontkoppel", + "notConnected": "Nie gekoppel nie", + "clickToConnect": "Klik verbind om 'n dopsessie te begin", + "connectingTo": "Verbind met {{containerName}}...", + "containerNotFound": "Houer nie gevind nie", + "backToList": "Terug na lys", + "logs": "Logboeke", + "stats": "Statistiek", + "consoleTab": "Konsole", + "startContainerToAccess": "Begin die houer om toegang tot die konsole te verkry" }, "theme": { - "switchToLight": "Switch to Light", - "switchToDark": "Switch to Dark" + "switchToLight": "Skakel oor na Lig", + "switchToDark": "Skakel oor na Donker" } }