From 7c9762562bc51e2eabd60b504cd5275d8221847e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nunzio=20Marf=C3=A8?= Date: Tue, 16 Dec 2025 21:41:59 +0100 Subject: [PATCH] Translations (#447) * Add termix.rb Cask file * Update Termix to version 1.9.0 with new checksum * Update README to remove 'coming soon' notes * Added Italian Language; * Fix translations; Removed duplicate keys, synchronised other languages using English as the source, translated added keys, fixed inaccurate translations. --------- Co-authored-by: Luke Gustafson <88517757+LukeGus@users.noreply.github.com> --- src/locales/de/translation.json | 457 +++++--- src/locales/en/translation.json | 61 +- src/locales/fr/translation.json | 210 +++- src/locales/it/translation.json | 1687 ++++++++++++++++++++++++++++ src/locales/pt-BR/translation.json | 479 ++++++-- src/locales/ru/translation.json | 194 ++-- src/locales/zh/translation.json | 217 +++- 7 files changed, 2827 insertions(+), 478 deletions(-) diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index 08007f87..6adcebfc 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -6,7 +6,7 @@ "createCredential": "Anmeldeinformationen erstellen", "editCredential": "Anmeldeinformationen bearbeiten", "viewCredential": "Anmeldeinformationen anzeigen", - "duplicateCredential": "Doppelte Anmeldeinformationen", + "duplicateCredential": "Anmeldeinformationen duplizieren", "deleteCredential": "Anmeldeinformationen löschen", "updateCredential": "Anmeldedaten aktualisieren", "credentialName": "Name der Anmeldeinformationen", @@ -28,7 +28,7 @@ "failedToFetchCredentials": "Anmeldeinformationen konnten nicht abgerufen werden", "credentialDeletedSuccessfully": "Anmeldeinformationen erfolgreich gelöscht", "failedToDeleteCredential": "Fehler beim Löschen der Anmeldeinformationen", - "confirmDeleteCredential": "Möchten Sie die Anmeldeinformationen „ {{name}} “ wirklich löschen?", + "confirmDeleteCredential": "Möchten Sie die Anmeldeinformationen „{{name}}“ wirklich löschen?", "credentialCreatedSuccessfully": "Anmeldeinformationen erfolgreich erstellt", "credentialUpdatedSuccessfully": "Anmeldeinformationen erfolgreich aktualisiert", "failedToSaveCredential": "Fehler beim Speichern der Anmeldeinformationen", @@ -43,7 +43,7 @@ "refresh": "Aktualisieren", "passwordRequired": "Passwort erforderlich", "sshKeyRequired": "SSH-Schlüssel ist erforderlich", - "credentialAddedSuccessfully": "Anmeldeinformationen „ {{name}} “ erfolgreich hinzugefügt", + "credentialAddedSuccessfully": "Anmeldeinformationen „{{name}}“ erfolgreich hinzugefügt", "general": "Allgemein", "description": "Beschreibung", "folder": "Ordner", @@ -91,11 +91,11 @@ "generateKeyPairDescription": "Generieren Sie ein neues SSH-Schlüsselpaar. Wenn Sie den Schlüssel mit einer Passphrase schützen möchten, geben Sie diese zunächst in das Feld Schlüsselkennwort unten ein.", "deploySSHKey": "SSH-Schlüssel bereitstellen", "deploySSHKeyDescription": "Bereitstellen des öffentlichen Schlüssels auf dem Zielserver", - "sourceCredential": "Quellanmeldeinformationen", + "sourceCredential": "Quell-Anmeldeinformationen", "targetHost": "Ziel-Host", "deploymentProcess": "Bereitstellungsprozess", - "deploymentProcessDescription": "Dadurch wird der öffentliche Schlüssel sicher zur Datei ~\/.ssh\/authorized_keys des Zielhosts hinzugefügt, ohne vorhandene Schlüssel zu überschreiben. Der Vorgang ist umkehrbar.", - "chooseHostToDeploy": "Wählen Sie einen Host für die Bereitstellung aus ...", + "deploymentProcessDescription": "Dadurch wird der öffentliche Schlüssel sicher zur Datei ~/.ssh/authorized_keys des Zielhosts hinzugefügt, ohne vorhandene Schlüssel zu überschreiben. Der Vorgang ist umkehrbar.", + "chooseHostToDeploy": "Wählen Sie einen Host für die Bereitstellung aus...", "deploying": "Bereitstellen...", "name": "Name", "noHostsAvailable": "Keine Hosts verfügbar", @@ -106,13 +106,13 @@ "selectOrCreateFolder": "Ordner auswählen oder erstellen", "noFolder": "Kein Ordner", "orCreateNewFolder": "Oder erstellen Sie einen neuen Ordner", - "addTag": "Schlüsselwort hinzufügen", + "addTag": "Schlagwort hinzufügen", "saving": "Speichern...", "overview": "Überblick", "security": "Sicherheit", "usage": "Verwendung", "securityDetails": "Sicherheitsdetails", - "securityDetailsDescription": "Anzeigen verschlüsselter Anmeldeinformationen", + "securityDetailsDescription": "Verschlüsselte Anmeldeinformationen anzeigen", "credentialSecured": "Anmeldeinformationen gesichert", "credentialSecuredDescription": "Alle sensiblen Daten werden mit AES-256 verschlüsselt", "passwordAuthentication": "Kennwortauthentifizierung", @@ -135,12 +135,12 @@ "listView": "Liste", "folderView": "Ordner", "unknownCredential": "Unbekannt", - "confirmRemoveFromFolder": "Sind Sie sicher, dass Sie \"{{name}}\" aus Ordner \"{{folder}}\" entfernen möchten? Die Zugangsdaten werden in den Bereich \"Nicht kategorisiert\" verschoben.", - "removedFromFolder": "Anmeldeinformationen „ {{name}} “ erfolgreich aus dem Ordner entfernt", + "confirmRemoveFromFolder": "Sind Sie sicher, dass Sie \"{{name}}\" aus Ordner \"{{folder}}\" entfernen möchten? Die Zugangsdaten werden in den Bereich \"Unkategorisiert\" verschoben.", + "removedFromFolder": "Anmeldeinformationen „{{name}}“ erfolgreich aus dem Ordner entfernt", "failedToRemoveFromFolder": "Anmeldeinformationen konnten nicht aus dem Ordner entfernt werden", - "folderRenamed": "Ordner „ {{oldName}} “ erfolgreich in „ {{newName}} “ umbenannt", + "folderRenamed": "Ordner „{{oldName}}“ erfolgreich in „{{newName}}“ umbenannt", "failedToRenameFolder": "Ordner konnte nicht umbenannt werden", - "movedToFolder": "Anmeldeinformationen „ {{name}} “ wurden erfolgreich nach „ {{folder}} “ verschoben.", + "movedToFolder": "Anmeldeinformationen „{{name}}“ wurden erfolgreich nach „{{folder}}“ verschoben.", "failedToMoveToFolder": "Anmeldeinformationen konnten nicht in den Ordner verschoben werden", "sshPublicKey": "Öffentlicher SSH-Schlüssel", "publicKeyNote": "Der öffentliche Schlüssel ist optional, wird jedoch zur Schlüsselvalidierung empfohlen", @@ -153,7 +153,7 @@ "generatePublicKey": "Aus privatem Schlüssel generieren", "publicKeyGeneratedSuccessfully": "Öffentlicher Schlüssel erfolgreich generiert", "detectedKeyType": "Erkannter Schlüsseltyp", - "detectingKeyType": "erkennen...", + "detectingKeyType": "Erkennen...", "optional": "Optional", "generateKeyPairNew": "Neues Schlüsselpaar generieren", "generateEd25519": "Ed25519 generieren", @@ -164,13 +164,14 @@ "generateKeyPairNote": "Generieren Sie direkt ein neues SSH-Schlüsselpaar. Dadurch werden alle vorhandenen Schlüssel im Formular ersetzt.", "invalidKey": "Ungültiger Schlüssel", "detectionError": "Erkennungsfehler", - "unknown": "Unbekannt" + "unknown": "Unbekannt", + "credentialId": "Anmeldedaten ID" }, "dragIndicator": { "error": "Fehler: {{error}}", "dragging": "Ziehen von {{fileName}}", "preparing": "{{fileName}} wird vorbereitet", - "readySingle": "Bereit zum Download {{fileName}}", + "readySingle": "Bereit zum Herunterladen {{fileName}}", "readyMultiple": "Bereit zum Herunterladen von {{count}} Dateien", "batchDrag": "Ziehen Sie {{count}} Dateien auf den Desktop", "dragToDesktop": "Auf den Desktop ziehen", @@ -179,14 +180,14 @@ "sshTools": { "title": "SSH-Tools", "closeTools": "SSH-Tools schließen", - "keyRecording": "Tastenaufzeichnung", - "startKeyRecording": "Tastenaufzeichnung starten", - "stopKeyRecording": "Tastenerfassung stoppen", + "keyRecording": "Tastatureingabe auf allen Terminals", + "startKeyRecording": "Übertragung starten", + "stopKeyRecording": "Übertragung stoppen", "selectTerminals": "Terminals auswählen:", "typeCommands": "Geben Sie Befehle ein (alle Tasten werden unterstützt):", "commandsWillBeSent": "Befehle werden an {{count}} ausgewählte Terminals gesendet.", "settings": "Einstellungen", - "enableRightClickCopyPaste": "Rechtsklick-Kopieren\/Einfügen aktivieren", + "enableRightClickCopyPaste": "Rechtsklick-Kopieren/Einfügen aktivieren", "shareIdeas": "Haben Sie Vorschläge welche weiteren SSH-Tools ergänzt werden sollen? Dann teilen Sie diese gerne mit uns auf" }, "commandHistory": { @@ -225,25 +226,29 @@ "saveError": "Fehler beim Speichern der Konfiguration", "saving": "Speichern...", "saveConfig": "Konfiguration speichern", - "helpText": "Geben Sie die URL ein, unter der Ihr Termix-Server ausgeführt wird (z. B. http:\/\/localhost:30001 oder https:\/\/your-server.com)." + "helpText": "Geben Sie die URL ein, unter der Ihr Termix-Server ausgeführt wird (z. B. http://localhost:30001 oder https://ihr-server.com).", + "changeServer": "Server ändern", + "mustIncludeProtocol": "Server-URL muss mit http:// oder https:// beginnen", + "notValidatedWarning": "URL nicht validiert - stellen Sie sicher, dass sie korrekt ist", + "warning": "Warnung" }, "versionCheck": { "error": "Fehler bei der Versionsprüfung", - "checkFailed": "Suche nach Updates fehlgeschlagen", + "checkFailed": "Suche nach Aktualisierungen fehlgeschlagen", "upToDate": "App ist auf dem neuesten Stand", "currentVersion": "Sie verwenden Version {{version}}", - "updateAvailable": "Update verfügbar", + "updateAvailable": "Aktualisierung verfügbar", "newVersionAvailable": "Eine neue Version ist verfügbar! Sie verwenden {{current}}, aber {{latest}} ist verfügbar.", "releasedOn": "Veröffentlicht am {{date}}", - "downloadUpdate": "Update herunterladen", + "downloadUpdate": "Aktualisierung herunterladen", "dismiss": "Schließen", - "checking": "Suche nach Updates...", - "checkUpdates": "Nach Updates suchen", - "checkingUpdates": "Suche nach Updates...", + "checking": "Suche nach Aktualisierungen...", + "checkUpdates": "Nach Aktualisierungen suchen", + "checkingUpdates": "Suche nach Aktualisierungen...", "refresh": "Aktualisieren", "updateRequired": "Aktualisierung erforderlich", - "updateDismissed": "Update-Benachrichtigung abgelehnt", - "noUpdatesFound": "Keine Updates gefunden" + "updateDismissed": "Aktualisierungs-Benachrichtigung ausgeblendet", + "noUpdatesFound": "Keine Aktualisierungen gefunden" }, "common": { "close": "Schließen", @@ -252,7 +257,7 @@ "offline": "Offline", "continue": "Fortsetzen", "maintenance": "Wartung", - "degraded": "Herabgestuft", + "degraded": "Eingeschränkt", "discord": "Discord", "error": "Fehler", "warning": "Warnung", @@ -262,19 +267,19 @@ "required": "Erforderlich", "optional": "Optional", "clear": "Löschen", - "toggleSidebar": "Seitenleiste ein-\/ausblenden", + "toggleSidebar": "Seitenleiste ein-/ausblenden", "sidebar": "Seitenleiste", "home": "Startseite", "expired": "Abgelaufen", "expiresToday": "Läuft heute ab", "expiresTomorrow": "Läuft morgen ab", "expiresInDays": "Läuft in {{days}} Tagen ab", - "updateAvailable": "Update verfügbar", + "updateAvailable": "Aktualisierung verfügbar", "sshPath": "SSH-Pfad", "localPath": "Lokaler Pfad", "noAuthCredentials": "Für diesen SSH-Host sind keine Anmeldeinformationen verfügbar", "noReleases": "Keine Releases", - "updatesAndReleases": "Updates & Veröffentlichungen", + "updatesAndReleases": "Aktualisierungen & Veröffentlichungen", "newVersionAvailable": "Eine neue Version ({{version}}) ist verfügbar.", "failedToFetchUpdateInfo": "Abrufen der Aktualisierungsinformationen fehlgeschlagen", "preRelease": "Vorabversion", @@ -299,14 +304,14 @@ "username": "Benutzername", "name": "Name", "login": "Anmelden", - "logout": "Ausloggen", + "logout": "Abmelden", "register": "Registrieren", "password": "Passwort", "version": "Version", "confirmPassword": "Passwort bestätigen", "back": "Zurück", "email": "E-Mail", - "submit": "Senden", + "submit": "Absenden", "change": "Ändern", "save": "Speichern", "saving": "Speichern...", @@ -337,7 +342,7 @@ "changeAccountPassword": "Passwort für Ihr Konto ändern", "passwordResetTitle": "Passwort zurücksetzen", "passwordResetDescription": "Sie sind dabei, Ihr Passwort zurückzusetzen. Dadurch werden Sie von allen aktiven Sitzungen abgemeldet.", - "enterSixDigitCode": "Geben Sie den 6-stelligen Code aus den Docker-Container-Protokollen \/ logs für den Benutzer ein:", + "enterSixDigitCode": "Geben Sie den 6-stelligen Code aus den Docker-Container-Protokollen / logs für den Benutzer ein:", "enterNewPassword": "Geben Sie Ihr neues Passwort für den Benutzer ein:", "passwordsDoNotMatch": "Passwörter stimmen nicht überein", "passwordMinLength": "Das Passwort muss mindestens 6 Zeichen lang sein", @@ -358,7 +363,7 @@ "tunnels": "Tunnel", "fileManager": "Dateimanager", "serverStats": "Serverstatus", - "admin": "Administrator", + "admin": "Administration", "userProfile": "Benutzerprofil", "tools": "Werkzeuge", "newTab": "Neuer Tab", @@ -366,11 +371,12 @@ "closeTab": "Tab schließen", "sshManager": "SSH-Manager", "hostManager": "Host-Manager", - "cannotSplitTab": "Diese Registerkarte kann nicht geteilt werden", - "tabNavigation": "Registerkarte Navigation" + "cannotSplitTab": "Dieser Tab kann nicht geteilt werden", + "tabNavigation": "Tab-Navigation", + "snippets": "Snippets" }, "admin": { - "title": "Admin-Einstellungen", + "title": "Administration", "oidc": "OIDC", "users": "Benutzer", "userManagement": "Benutzerverwaltung", @@ -384,14 +390,14 @@ "issuerUrl": "Aussteller-URL", "authorizationUrl": "Autorisierungs-URL", "tokenUrl": "Token-URL", - "updateSettings": "Update-Einstellungen", + "updateSettings": "Einstellungen aktualisieren", "confirmDelete": "Möchten Sie diesen Benutzer wirklich löschen?", - "confirmMakeAdmin": "Sind Sie sicher, dass Sie diesen Benutzer zum Admin machen möchten?", + "confirmMakeAdmin": "Sind Sie sicher, dass Sie diesen Benutzer zum Administrator machen möchten?", "confirmRemoveAdmin": "Möchten Sie die Administratorrechte für diesen Benutzer wirklich entfernen?", "externalAuthentication": "Externe Authentifizierung (OIDC)", - "configureExternalProvider": "Externen Identitätsanbieter für OIDC\/OAuth2-Authentifizierung konfigurieren.", + "configureExternalProvider": "Externen Identitätsanbieter für OIDC/OAuth2-Authentifizierung konfigurieren.", "userIdentifierPath": "Pfad für Benutzerkennung", - "displayNamePath": "Anzeigenamenpfad", + "displayNamePath": "Pfad für Anzeigename", "scopes": "Scopes", "saving": "Speichern...", "saveConfiguration": "Konfiguration speichern", @@ -399,45 +405,65 @@ "success": "Erfolgreich", "loading": "Laden...", "refresh": "Aktualisieren", - "loadingUsers": "Benutzer werden geladen …", + "loadingUsers": "Benutzer werden geladen...", "username": "Benutzername", "type": "Typ", "actions": "Aktionen", "external": "Extern", "local": "Lokal", - "adminManagement": "Admin Verwaltung", + "adminManagement": "Administrator-Verwaltung", "makeUserAdmin": "Benutzer zum Administrator machen", "adding": "Hinzufügen...", "currentAdmins": "Aktuelle Administratoren", - "adminBadge": "Admin", + "adminBadge": "Administrator", "removeAdminButton": "Administrator entfernen", "general": "Allgemein", "userRegistration": "Benutzerregistrierung", "allowNewAccountRegistration": "Registrierung neuer Konten zulassen", + "allowPasswordLogin": "Benutzername/Passwort-Anmeldung zulassen", "missingRequiredFields": "Fehlende Pflichtfelder: {{fields}}", "oidcConfigurationUpdated": "OIDC-Konfiguration erfolgreich aktualisiert!", "failedToFetchOidcConfig": "OIDC-Konfiguration konnte nicht abgerufen werden", "failedToFetchRegistrationStatus": "Abrufen des Registrierungsstatus fehlgeschlagen", + "failedToFetchPasswordLoginStatus": "Abrufen des Passwort-Login-Status fehlgeschlagen", "failedToFetchUsers": "Benutzer konnten nicht abgerufen werden", "oidcConfigurationDisabled": "OIDC-Konfiguration erfolgreich deaktiviert!", "failedToUpdateOidcConfig": "Aktualisierung der OIDC-Konfiguration fehlgeschlagen", "failedToDisableOidcConfig": "OIDC-Konfiguration konnte nicht deaktiviert werden", - "enterUsernameToMakeAdmin": "Geben Sie den Benutzernamen ein, um zum Administrator zu werden", + "enterUsernameToMakeAdmin": "Geben Sie den Benutzernamen ein, um Administrator zu werden", "userIsNowAdmin": "Der Benutzer {{username}} ist jetzt ein Administrator", "failedToMakeUserAdmin": "Fehler beim Festlegen des Benutzers als Administrator", - "removeAdminStatus": "Admin-Status von {{username}} entfernen?", - "adminStatusRemoved": "Admin-Status von {{username}} entfernt", - "failedToRemoveAdminStatus": "Admin-Status konnte nicht entfernt werden", + "removeAdminStatus": "Administrator-Status von {{username}} entfernen?", + "adminStatusRemoved": "Administrator-Status von {{username}} entfernt", + "failedToRemoveAdminStatus": "Administrator-Status konnte nicht entfernt werden", "userDeletedSuccessfully": "Benutzer {{username}} wurde erfolgreich gelöscht", "failedToDeleteUser": "Benutzer konnte nicht gelöscht werden", - "overrideUserInfoUrl": "URL für Benutzerinformationen überschreiben (nicht erforderlich)", + "overrideUserInfoUrl": "URL für Benutzerinformationen überschreiben (optional)", "failedToFetchSessions": "Fehler beim Abrufen der Sitzungen", "sessionRevokedSuccessfully": "Sitzung erfolgreich widerrufen", "failedToRevokeSession": "Sitzung konnte nicht widerrufen werden", - "confirmRevokeSession": "Möchten Sie diese Sitzung wirklich beenden?", - "confirmRevokeAllSessions": "Möchten Sie wirklich alle Sitzungen dieses Benutzers beenden?", + "confirmRevokeSession": "Möchten Sie diese Sitzung wirklich widerrufen?", + "confirmRevokeAllSessions": "Möchten Sie wirklich alle Sitzungen dieses Benutzers widerrufen?", "failedToRevokeSessions": "Sitzungen konnten nicht widerrufen werden", - "sessionsRevokedSuccessfully": "Sitzungen erfolgreich beendet", + "sessionsRevokedSuccessfully": "Sitzungen erfolgreich widerrufen", + "linkToPasswordAccount": "Mit Passwort-Konto verknüpfen", + "linkOIDCDialogTitle": "OIDC-Konto mit Passwort-Konto verknüpfen", + "linkOIDCDialogDescription": "Verknüpfen Sie {{username}} (OIDC-Benutzer) mit einem bestehenden Passwort-Konto. Dies aktiviert die duale Authentifizierung für das Passwort-Konto.", + "linkOIDCWarningTitle": "Warnung: OIDC-Benutzerdaten werden gelöscht", + "linkOIDCActionDeleteUser": "Löschen Sie das OIDC-Benutzerkonto und alle seine Daten", + "linkOIDCActionAddCapability": "Fügen Sie dem Ziel-Passwort-Konto die OIDC-Anmeldefunktion hinzu", + "linkOIDCActionDualAuth": "Erlauben Sie dem Passwort-Konto, sich sowohl mit Passwort als auch mit OIDC anzumelden", + "linkTargetUsernameLabel": "Benutzername des Ziel-Passwort-Kontos", + "linkTargetUsernamePlaceholder": "Geben Sie den Benutzernamen des Passwort-Kontos ein", + "linkAccountsButton": "Konten verknüpfen", + "linkingAccounts": "Verknüpfen...", + "accountsLinkedSuccessfully": "Der OIDC-Benutzer {{oidcUsername}} wurde mit {{targetUsername}} verknüpft", + "failedToLinkAccounts": "Konten konnten nicht verknüpft werden", + "linkTargetUsernameRequired": "Ziel-Benutzername ist erforderlich", + "unlinkOIDCTitle": "OIDC-Authentifizierung trennen", + "unlinkOIDCDescription": "OIDC-Authentifizierung von {{username}} entfernen? Der Benutzer kann sich danach nur noch mit Benutzername/Passwort anmelden.", + "unlinkOIDCSuccess": "OIDC von {{username}} getrennt", + "failedToUnlinkOIDC": "OIDC konnte nicht getrennt werden", "databaseSecurity": "Datenbanksicherheit", "encryptionStatus": "Verschlüsselungsstatus", "encryptionEnabled": "Verschlüsselung aktiviert", @@ -457,7 +483,7 @@ "enableAes256EncryptionWithDeviceBinding": "Aktivieren Sie AES-256-Verschlüsselung mit umgebungsgebundener Master-Schlüssel-Sicherung. Dadurch entsteht Sicherheitsniveau in Unternehmensqualität für SSH-Schlüssel, Passwörter und Authentifizierungs-Token.", "featuresEnabled": "Aktivierte Funktionen:", "aes256GcmAuthenticatedEncryption": "Authentifizierte Verschlüsselung mit AES-256-GCM", - "deviceFingerprintMasterKeyProtection": "Schutz des Master-Schlüssels der Umgebungs-Fingerabdruckkennung (KEK)", + "deviceFingerprintMasterKeyProtection": "Schutz des Master-Schlüssels durch Umgebungs-Fingerabdruck (KEK)", "pbkdf2KeyDerivation": "PBKDF2-Schlüsselableitung mit 100.000 Iterationen", "automaticKeyManagement": "Automatische Schlüsselverwaltung und -rotation", "initializing": "Initialisierung läuft...", @@ -481,8 +507,8 @@ "loadingEncryptionStatus": "Verschlüsselungsstatus wird geladen...", "testMigrationDescription": "Überprüfen, dass vorhandene Daten sicher in ein verschlüsseltes Format migriert werden können, ohne tatsächlich irgendwelche Daten zu ändern", "serverMigrationGuide": "Leitfaden zur Servermigration", - "migrationInstructions": "So migrieren Sie verschlüsselte Daten auf einen neuen Server: 1) Datenbankdateien sichern, 2) Umgebungsvariable DB_ENCRYPTION_KEY=\"your-key\" auf dem neuen Server setzen, 3) Datenbankdateien wiederherstellen", - "environmentProtection": "Umweltschutz", + "migrationInstructions": "So migrieren Sie verschlüsselte Daten auf einen neuen Server: 1) Datenbankdateien sichern, 2) Umgebungsvariable DB_ENCRYPTION_KEY=\"Ihre-schlüssel\" auf dem neuen Server setzen, 3) Datenbankdateien wiederherstellen", + "environmentProtection": "Umgebungsschutz", "environmentProtectionDesc": "Schützt Verschlüsselungsschlüssel basierend auf Serverumgebungsinformationen (Hostname, Pfade usw.), migrierbar über Umgebungsvariablen", "verificationCompleted": "Kompatibilitätsprüfung abgeschlossen – keine Daten wurden geändert", "verificationInProgress": "Überprüfung abgeschlossen", @@ -501,7 +527,7 @@ "stableMacAddressFiltering": "Stabiles MAC-Adressfiltering", "databaseFileEncryption": "Datenbankdatei-Verschlüsselung", "dualLayerProtection": "Dualer Schutz mit zwei Ebenen aktiv", - "bothFieldAndFileEncryptionActive": "Sowohl die Feld- als auch die Datei­ebene sind jetzt verschlüsselt – für maximale Sicherheit", + "bothFieldAndFileEncryptionActive": "Sowohl die Feld- als auch die Dateiebene sind jetzt verschlüsselt – für maximale Sicherheit", "fieldLevelAes256Encryption": "Feldbasierte AES-256-Verschlüsselung für sensible Daten", "fileLevelDatabaseEncryption": "Dateiebene-Datenbankverschlüsselung mit Hardwarebindung", "hardwareBoundFileKeys": "Hardwaregebundene Dateiverschlüsselungsschlüssel", @@ -512,7 +538,7 @@ "encryptedBackupCreatedSuccessfully": "Verschlüsselte Sicherung erfolgreich erstellt", "backupCreationFailed": "Erstellung des Backups fehlgeschlagen", "databaseMigration": "Datenbankmigration", - "exportForMigration": "Export für Migration", + "exportForMigration": "Exportieren für Migration", "exportDatabaseForHardwareMigration": "Datenbank als SQLite-Datei mit entschlüsselten Daten für die Migration auf neue Hardware exportieren", "exportDatabase": "SQLite-Datenbank exportieren", "exporting": "Wird exportiert...", @@ -520,7 +546,7 @@ "exportContainsDecryptedData": "SQLite-Export enthält entschlüsselte Daten – sicher aufbewahren!", "databaseExportedSuccessfully": "SQLite-Datenbank erfolgreich exportiert", "databaseExportFailed": "Export der SQLite-Datenbank fehlgeschlagen", - "importFromMigration": "Import aus Migration", + "importFromMigration": "Importieren aus Migration", "importDatabaseFromAnotherSystem": "SQLite-Datenbank von einem anderen System oder einer anderen Hardware importieren", "importDatabase": "SQLite-Datenbank importieren", "importing": "Importieren...", @@ -529,7 +555,7 @@ "pleaseSelectImportFile": "Bitte wählen Sie eine SQLite-Importdatei aus", "databaseImportedSuccessfully": "SQLite-Datenbank erfolgreich importiert", "databaseImportFailed": "Import der SQLite-Datenbank fehlgeschlagen", - "manageEncryptionAndBackups": "Verschlüsselungsschlüssel, Databasesicherheit und Sicherungsabläufe verwalten", + "manageEncryptionAndBackups": "Verschlüsselungsschlüssel, Datenbanksicherheit und Sicherungsabläufe verwalten", "activeSecurityFeatures": "Derzeit aktive Sicherheitsmaßnahmen und Schutzvorkehrungen", "deviceBindingTechnology": "Fortschrittliche, hardwarebasierte Technologie zum Schutz von Schlüsseln", "backupAndRecovery": "Optionen für die sichere Erstellung von Backups und die Wiederherstellung der Datenbank", @@ -549,11 +575,11 @@ "migrate": "Migrieren", "backup": "Backup", "createBackup": "Backup erstellen", - "exportImport": "Export\/Import", - "export": "Export", - "import": "Import", + "exportImport": "Exportieren/Importieren", + "export": "Exportieren", + "import": "Importieren", "passwordRequired": "Passwort erforderlich", - "confirmExport": "Export bestätigen", + "confirmExport": "Exportieren bestätigen", "exportDescription": "SSH-Hosts und Anmeldedaten als SQLite-Datei exportieren", "importDescription": "SQLite-Datei mit inkrementellem Zusammenführen importieren (überspringt Duplikate)", "criticalWarning": "Kritische Warnung", @@ -565,8 +591,6 @@ "passwordLoginDisabledWarning": "Passwort-Login ist deaktiviert. Stellen Sie sicher, dass OIDC ordnungsgemäß konfiguriert ist, sonst können Sie sich nicht bei Termix anmelden.", "oidcRequiredWarning": "KRITISCH: Passwort-Login ist deaktiviert. Wenn Sie OIDC zurücksetzen oder falsch konfigurieren, verlieren Sie den gesamten Zugriff auf Termix und Ihre Instanz wird unbrauchbar. Fahren Sie nur fort, wenn Sie absolut sicher sind.", "confirmDisableOIDCWarning": "WARNUNG: Sie sind dabei, OIDC zu deaktivieren, während auch die Passwort-Anmeldung deaktiviert ist. Dies macht Ihre Termix-Instanz unbrauchbar und Sie verlieren den gesamten Zugriff. Sind Sie absolut sicher, dass Sie fortfahren möchten?", - "allowPasswordLogin": "Benutzername/Passwort-Anmeldung zulassen", - "failedToFetchPasswordLoginStatus": "Abrufen des Passwort-Login-Status fehlgeschlagen", "failedToUpdatePasswordLoginStatus": "Aktualisierung des Passwort-Login-Status fehlgeschlagen" }, "hosts": { @@ -586,7 +610,7 @@ "downloadSample": "Beispiel herunterladen", "formatGuide": "Formatleitfaden", "exportCredentialWarning": "Warnung: Der Host \"{{name}}\" verwendet eine Anmeldeauthentifizierung. Die exportierte Datei enthält keine Anmeldedaten und muss nach dem Import manuell neu konfiguriert werden. Möchten Sie fortfahren?", - "exportSensitiveDataWarning": "Warnung: Der Host \"{{name}}\" enthält vertrauliche Authentifizierungsdaten (Passwort\/SSH-Schlüssel). Die exportierte Datei wird diese Daten im Klartext enthalten. Bitte bewahren Sie die Datei sicher auf und löschen Sie sie nach der Verwendung. Möchten Sie fortfahren?", + "exportSensitiveDataWarning": "Warnung: Der Host \"{{name}}\" enthält vertrauliche Authentifizierungsdaten (Passwort/SSH-Schlüssel). Die exportierte Datei wird diese Daten im Klartext enthalten. Bitte bewahren Sie die Datei sicher auf und löschen Sie sie nach der Verwendung. Möchten Sie fortfahren?", "uncategorized": "Unkategorisiert", "confirmDelete": "Möchten Sie \"{{name}}\" wirklich löschen?", "failedToDeleteHost": "Host konnte nicht gelöscht werden", @@ -605,26 +629,26 @@ "name": "Name", "username": "Benutzername", "folder": "Ordner", - "tags": "Schlagwörter", - "pin": "PIN", - "passwordRequired": "Bei Verwendung der Kennwortauthentifizierung ist ein Kennwort erforderlich", - "sshKeyRequired": "Bei Verwendung der Schlüsselauthentifizierung ist ein privater SSH-Schlüssel erforderlich", - "keyTypeRequired": "Bei Verwendung der Schlüsselauthentifizierung ist der Schlüsseltyp erforderlich", + "tags": "Tags", + "pin": "Anheften", + "passwordRequired": "Bei Verwendung der Passwort-Authentifizierung ist ein Passwort erforderlich", + "sshKeyRequired": "Bei Verwendung der Schlüssel-Authentifizierung ist ein privater SSH-Schlüssel erforderlich", + "keyTypeRequired": "Bei Verwendung der Schlüssel-Authentifizierung ist der Schlüsseltyp erforderlich", "mustSelectValidSshConfig": "Sie müssen eine gültige SSH-Konfiguration aus der Liste auswählen", "addHost": "Host hinzufügen", "editHost": "Host bearbeiten", "cloneHost": "Host klonen", "updateHost": "Host aktualisieren", - "hostUpdatedSuccessfully": "Host „{{name}}“ wurde erfolgreich aktualisiert!", - "hostAddedSuccessfully": "Host „{{name}}“ wurde erfolgreich hinzugefügt!", - "hostDeletedSuccessfully": "Host „{{name}}“ wurde erfolgreich gelöscht!", + "hostUpdatedSuccessfully": "Host \"{{name}}\" wurde erfolgreich aktualisiert!", + "hostAddedSuccessfully": "Host \"{{name}}\" wurde erfolgreich hinzugefügt!", + "hostDeletedSuccessfully": "Host \"{{name}}\" wurde erfolgreich gelöscht!", "failedToSaveHost": "Host konnte nicht gespeichert werden. Bitte versuchen Sie es erneut.", "enableTerminal": "Terminal aktivieren", - "enableTerminalDesc": "Host-Sichtbarkeit im Terminal-Tab aktivieren\/deaktivieren", + "enableTerminalDesc": "Host-Sichtbarkeit im Terminal-Tab aktivieren/deaktivieren", "enableTunnel": "Tunnel aktivieren", - "enableTunnelDesc": "Sichtbarkeit des Hosts im Tab „Tunnel“ aktivieren\/deaktivieren", + "enableTunnelDesc": "Sichtbarkeit des Hosts im Tab \"Tunnel\" aktivieren/deaktivieren", "enableFileManager": "Dateimanager aktivieren", - "enableFileManagerDesc": "Sichtbarkeit des Hosts im Reiter „Dateimanager“ aktivieren\/deaktivieren", + "enableFileManagerDesc": "Sichtbarkeit des Hosts im Reiter \"Dateimanager\" aktivieren/deaktivieren", "defaultPath": "Standard-Pfad", "defaultPathDesc": "Standardverzeichnis beim Öffnen des Dateimanagers für diesen Host", "tunnelConnections": "Tunnel-Verbindungen", @@ -634,7 +658,7 @@ "sourcePortDesc": " (Quelle bezieht sich auf die aktuellen Verbindungsdetails im Reiter Allgemein)", "endpointPort": "Endpunkt-Port", "endpointSshConfig": "SSH-Konfiguration für Endpunkte", - "tunnelForwardDescription": "Dieser Tunnel leitet den Datenverkehr vom Port {{sourcePort}} auf der Quellmaschine (aktuelle Verbindungsdetails auf der Registerkarte „Allgemein“) an den Port {{endpointPort}} auf der Endpunktmaschine weiter.", + "tunnelForwardDescription": "Dieser Tunnel leitet den Datenverkehr vom Port {{sourcePort}} auf der Quellmaschine (aktuelle Verbindungsdetails auf der Registerkarte \"Allgemein\") an den Port {{endpointPort}} auf der Endpunktmaschine weiter.", "maxRetries": "Max. Wiederholungsversuche", "maxRetriesDescription": "Maximale Anzahl der Wiederholungsversuche für die Tunnelverbindung.", "retryInterval": "Wiederholungsintervall (Sekunden)", @@ -643,11 +667,11 @@ "autoStartDesc": "Diesen Tunnel beim Start des Containers automatisch starten", "addConnection": "Tunnelverbindung hinzufügen", "sshpassRequired": "sshpass erforderlich für die Passwort-Authentifizierung", - "sshpassRequiredDesc": "Für die Passwortauthentifizierung in Tunneln muss sshpass auf dem System installiert sein.", + "sshpassRequiredDesc": "Für die Passwort-Authentifizierung in Tunneln muss sshpass auf dem System installiert sein.", "otherInstallMethods": "Andere Installationsmethoden:", - "debianUbuntuEquivalent": "(Debian\/Ubuntu) oder das entsprechende Pendant für Ihr Betriebssystem.", + "debianUbuntuEquivalent": "(Debian/Ubuntu) oder das entsprechende Pendant für Ihr Betriebssystem.", "or": "oder", - "centosRhelFedora": "CentOS\/RHEL\/Fedora", + "centosRhelFedora": "CentOS/RHEL/Fedora", "macos": "macOS", "windows": "Windows", "sshServerConfigRequired": "SSH-Serverkonfiguration erforderlich", @@ -655,7 +679,7 @@ "gatewayPortsYes": "Remote-Ports an alle Schnittstellen binden", "allowTcpForwardingYes": "Portweiterleitung aktivieren", "permitRootLoginYes": "bei Verwendung des Root-Benutzers für das Tunneling", - "editSshConfig": "Bearbeiten Sie \/etc\/ssh\/sshd_config und starten Sie SSH neu: sudo systemctl restart sshd", + "editSshConfig": "Bearbeiten Sie /etc/ssh/sshd_config und starten Sie SSH neu: sudo systemctl restart sshd", "upload": "Hochladen", "authentication": "Authentifizierung", "password": "Passwort", @@ -664,10 +688,10 @@ "none": "Keine", "selectCredential": "Anmeldeinformationen auswählen", "selectCredentialPlaceholder": "Wähle eine Anmeldedaten aus...", - "credentialRequired": "Für die Anmeldeauthentifizierung ist eine Anmeldeinformation erforderlich", + "credentialRequired": "Für die Anmeldeauthentifizierung sind Anmeldeinformationen erforderlich", "credentialDescription": "Durch die Auswahl einer Anmeldeinformation wird der aktuelle Benutzername überschrieben und die Authentifizierungsdetails der Anmeldeinformation verwendet.", "sshPrivateKey": "Privater SSH-Schlüssel", - "keyPassword": "Schlüsselkennwort", + "keyPassword": "Schlüsselpasswort", "keyType": "Schlüsseltyp", "autoDetect": "Automatische Erkennung", "rsa": "RSA", @@ -682,7 +706,7 @@ "pasteKey": "Schlüssel einfügen", "updateKey": "Schlüssel aktualisieren", "existingKey": "Vorhandener Schlüssel (zum Ändern klicken)", - "existingCredential": "Vorhandenes Anmeldedatum (zum Ändern klicken)", + "existingCredential": "Vorhandene Anmeldedaten (zum Ändern klicken)", "addTagsSpaceToAdd": "Tags hinzufügen (Leertaste zum Hinzufügen)", "terminalBadge": "Terminal", "tunnelBadge": "Tunnel", @@ -695,7 +719,7 @@ "confirmRemoveFromFolder": "Möchten Sie \"{{name}}\" wirklich aus dem Ordner \"{{folder}}\" entfernen? Der Host wird in \"Kein Ordner\" verschoben.", "removedFromFolder": "Host \"{{name}}\" erfolgreich aus dem Ordner entfernt", "failedToRemoveFromFolder": "Host konnte nicht aus dem Ordner entfernt werden", - "folderRenamed": "Ordner „ {{oldName}} “ erfolgreich in „ {{newName}} “ umbenannt", + "folderRenamed": "Ordner \"{{oldName}}\" erfolgreich in \"{{newName}}\" umbenannt", "failedToRenameFolder": "Ordner konnte nicht umbenannt werden", "movedToFolder": "Host \"{{name}}\" wurde erfolgreich nach \"{{folder}}\" verschoben", "failedToMoveToFolder": "Host konnte nicht in den Ordner verschoben werden", @@ -720,7 +744,7 @@ "monitoringDisabledBadge": "Überwachung Aus", "statusMonitoring": "Status", "metricsMonitoring": "Metriken", - "terminalCustomizationNotice": "Hinweis: Terminal-Anpassungen funktionieren nur in der Desktop-Website-Version. Mobile und Electron-Apps verwenden die Standard-Terminaleinstellungen des Systems.", + "terminalCustomizationNotice": "Hinweis: Terminal-Anpassungen funktionieren nur in der Desktop-Webversion. Mobile und Electron-Apps verwenden die Standard-Terminaleinstellungen des Systems.", "terminalCustomization": "Terminal-Anpassung", "appearance": "Aussehen", "behavior": "Verhalten", @@ -749,8 +773,8 @@ "chooseCursorAppearance": "Cursor-Erscheinungsbild wählen", "cursorBlink": "Cursor-Blinken", "enableCursorBlink": "Cursor-Blinkanimation aktivieren", - "scrollbackBuffer": "Rückwärts-Puffer", - "scrollbackBufferValue": "Rückwärts-Puffer: {{value}} Zeilen", + "scrollbackBuffer": "Scrollback-Puffer", + "scrollbackBufferValue": "Scrollback-Puffer: {{value}} Zeilen", "scrollbackBufferDesc": "Anzahl der Zeilen im Rückwärtsverlauf", "bellStyle": "Signalton-Stil", "selectBellStyle": "Signalton-Stil auswählen", @@ -784,9 +808,9 @@ "selectSnippet": "Snippet auswählen", "searchSnippets": "Snippets durchsuchen...", "snippetNone": "Keine", - "noneAuthTitle": "Keyboard-Interactive-Authentifizierung", - "noneAuthDescription": "Diese Authentifizierungsmethode verwendet beim Herstellen der Verbindung zum SSH-Server die Keyboard-Interactive-Authentifizierung.", - "noneAuthDetails": "Keyboard-Interactive-Authentifizierung ermöglicht dem Server, Sie während der Verbindung zur Eingabe von Anmeldeinformationen aufzufordern. Dies ist nützlich für Server, die eine Multi-Faktor-Authentifizierung oder eine dynamische Passworteingabe erfordern.", + "noneAuthTitle": "Tastatur-Interaktive Authentifizierung", + "noneAuthDescription": "Diese Authentifizierungsmethode verwendet beim Herstellen der Verbindung zum SSH-Server die Tastatur-Interaktive Authentifizierung.", + "noneAuthDetails": "Tastatur-Interaktive Authentifizierung ermöglicht dem Server, Sie während der Verbindung zur Eingabe von Anmeldeinformationen aufzufordern. Dies ist nützlich für Server, die eine Multi-Faktor-Authentifizierung oder eine dynamische Passworteingabe erfordern.", "forceKeyboardInteractive": "Tastatur-Interaktiv erzwingen", "forceKeyboardInteractiveDesc": "Erzwingt die Verwendung der tastatur-interaktiven Authentifizierung. Dies ist oft für Server erforderlich, die eine Zwei-Faktor-Authentifizierung (TOTP/2FA) verwenden.", "overrideCredentialUsername": "Benutzernamen der Anmeldedaten überschreiben", @@ -800,8 +824,41 @@ "noServerFound": "Kein Server gefunden", "jumpHostsOrder": "Verbindungen werden in dieser Reihenfolge hergestellt: Jump-Host 1 → Jump-Host 2 → ... → Ziel-Server", "advancedAuthSettings": "Erweiterte Authentifizierungseinstellungen", - "sudoPasswordAutoFill": "Sudo-Passwort automatisch ausfüllen", - "sudoPasswordAutoFillDesc": "Popup anzeigen, um das Passwort bei sudo-Befehlen automatisch einzufügen" + "addQuickAction": "Schnellaktion hinzufügen", + "allHostsInFolderDeleted": "{{count}} Hosts aus dem Ordner \"{{oderdner}}\" erfolgreich gelöscht", + "confirmDeleteAllHostsInFolder": "Sind Sie sicher, dass Sie alle {{count}} Hosts im Ordner \"{{oderdner}}\" löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.", + "customCommands": "Benutzerdefinierte Befehle (Demnächst)", + "customCommandsDesc": "Definieren Sie benutzerdefinierte Befehle zum Herunterfahren und Neustarten für diesen Server", + "deleteAllHostsInFolder": "Alle Hosts im Ordner löschen", + "displayItems": "Elemente anzeigen", + "displayItemsDesc": "Wählen Sie, welche Metriken auf der Server-Statistikseite angezeigt werden sollen", + "editFolderAppearance": "Ordner-Aussehen bearbeiten", + "editFolderAppearanceDesc": "Passen Sie die Farbe und das Symbol für den Ordner an", + "enableCpu": "CPU-Auslastung", + "enableDisk": "Festplatten-Nutzung", + "enableHostname": "Hostname (Demnächst)", + "enableMemory": "Speichernutzung", + "enableNetwork": "Netzwerkstatistiken (Demnächst)", + "enableOs": "Betriebssystem (Demnächst)", + "enableProcesses": "Prozessanzahl (Demnächst)", + "enableServerStats": "Serverstatistiken aktivieren", + "enableServerStatsDesc": "Sammeln von Serverstatistiken für diesen Host aktivieren/deaktivieren", + "enableUptime": "Betriebszeit (Demnächst)", + "failedToDeleteHostsInFolder": "Fehler beim Löschen der Hosts im Ordner", + "failedToUpdateFolderAppearance": "Fehler beim Aktualisieren des Ordner-Aussehens", + "folderAppearanceUpdated": "Ordner-Aussehen erfolgreich aktualisiert", + "folderColor": "Ordnerfarbe", + "folderIcon": "Ordnersymbol", + "noSnippetFound": "Kein Snippet gefunden", + "preview": "Vorschau", + "quickActionName": "Aktionsname", + "quickActions": "Schnellaktionen", + "quickActionsDescription": "Mit Schnellaktionen können Sie benutzerdefinierte Schaltflächen erstellen, die SSH-Snippets auf diesem Server ausführen. Diese Schaltflächen werden oben auf der Server-Statistikseite für schnellen Zugriff angezeigt.", + "quickActionsList": "Liste der Schnellaktionen", + "quickActionsOrder": "Schnellaktions-Schaltflächen werden in der oben aufgeführten Reihenfolge auf der Server-Statistikseite angezeigt", + "rebootCommand": "Neustart-Befehl", + "serverStats": "Server-Statistiken", + "shutdownCommand": "Herunterfahren-Befehl" }, "terminal": { "title": "Terminal", @@ -810,7 +867,7 @@ "clear": "Löschen", "copy": "Kopieren", "paste": "Einfügen", - "find": "Finden", + "find": "Suchen", "fullscreen": "Vollbild", "splitHorizontal": "Horizontal teilen", "splitVertical": "Vertikal teilen", @@ -829,17 +886,17 @@ "messageParseError": "Servernachricht konnte nicht analysiert werden", "websocketError": "WebSocket-Verbindungsfehler", "connecting": "Verbindung wird hergestellt...", - "reconnecting": "Verbindung wird wiederhergestellt... ({{attempt}}\/{{max}})", + "reconnecting": "Verbindung wird wiederhergestellt... ({{attempt}}/{{max}})", "reconnected": "Erfolgreich wiederverbunden", "maxReconnectAttemptsReached": "Maximale Anzahl an Wiederverbindungsversuchen erreicht", "connectionTimeout": "Zeitüberschreitung der Verbindung", "terminalTitle": "Terminal - {{host}}", "terminalWithPath": "Terminal - {{host}} : {{path}}", "runTitle": "Ausführen von {{command}} – {{host}}", - "sudoPasswordPopupTitle": "Passwort einfügen?", - "sudoPasswordPopupHint": "Drücken Sie Enter zum Einfügen, Esc zum Abbrechen", - "sudoPasswordPopupConfirm": "Einfügen", - "sudoPasswordPopupDismiss": "Abbrechen" + "totpCodeLabel": "Bestätigungscode", + "totpPlaceholder": "000000", + "totpRequired": "Zwei-Faktor-Authentifizierung erforderlich", + "totpVerify": "Bestätigen" }, "fileManager": { "title": "Dateimanager", @@ -862,7 +919,7 @@ "deleteItem": "Element löschen", "currentPath": "Aktueller Pfad", "uploadFileTitle": "Datei hochladen", - "maxFileSize": "Max.: 1 GB (JSON) \/ 5 GB (Binär) – Große Dateien werden unterstützt", + "maxFileSize": "Max.: 1 GB (JSON) / 5 GB (Binär) – Große Dateien werden unterstützt", "removeFile": "Datei entfernen", "clickToSelectFile": "Klicken Sie, um eine Datei auszuwählen", "chooseFile": "Datei auswählen", @@ -946,11 +1003,11 @@ "path": "Pfad", "confirmDelete": "Sind Sie sicher, dass Sie {{name}} löschen möchten?", "uploadSuccess": "Datei erfolgreich hochgeladen", - "uploadFailed": "Datei-Upload fehlgeschlagen", + "uploadFailed": "Datei-Hochladen fehlgeschlagen", "downloadSuccess": "Datei erfolgreich heruntergeladen", - "downloadFailed": "Datei-Download fehlgeschlagen", + "downloadFailed": "Datei-Herunterladen fehlgeschlagen", "permissionDenied": "Zugriff verweigert", - "checkDockerLogs": "Überprüfen Sie die Docker-Logs auf detaillierte Fehlerinformationen", + "checkDockerLogs": "Überprüfen Sie die Docker-Protokolle auf detaillierte Fehlerinformationen", "internalServerError": "Interner Serverfehler aufgetreten", "serverError": "Serverfehler", "error": "Fehler", @@ -967,11 +1024,11 @@ "connectToServer": "Mit einem Server verbinden", "selectServerToEdit": "Wähle einen Server in der Seitenleiste aus, um mit der Bearbeitung von Dateien zu beginnen", "fileOperations": "Dateioperationen", - "confirmDeleteMessage": "Möchten Sie {{name}}<\/strong> wirklich löschen?", - "confirmDeleteSingleItem": "Möchten Sie „ {{name}} “ wirklich dauerhaft löschen?", + "confirmDeleteMessage": "Möchten Sie {{name}} wirklich löschen?", + "confirmDeleteSingleItem": "Möchten Sie \"{{name}}\" wirklich dauerhaft löschen?", "confirmDeleteMultipleItems": "Sind Sie sicher, dass Sie {{name}} löschen möchten?", "confirmDeleteMultipleItemsWithFolders": "Möchten Sie wirklich {{count}} Elemente dauerhaft löschen? Dies schließt Ordner und deren Inhalte ein.", - "confirmDeleteFolder": "Möchten Sie den Ordner „ {{name}} “ und seinen gesamten Inhalt wirklich dauerhaft löschen?", + "confirmDeleteFolder": "Möchten Sie den Ordner \"{{name}}\" und seinen gesamten Inhalt wirklich dauerhaft löschen?", "deleteDirectoryWarning": "Dadurch werden der Ordner und sein gesamter Inhalt gelöscht.", "actionCannotBeUndone": "Diese Aktion kann nicht rückgängig gemacht werden.", "permanentDeleteWarning": "Diese Aktion kann nicht rückgängig gemacht werden. Die Elemente werden dauerhaft vom Server gelöscht.", @@ -1004,14 +1061,14 @@ "runningFile": "Wird ausgeführt - {{file}}", "onlyRunExecutableFiles": "Kann nur ausführbare Dateien ausführen", "noHostSelected": "Kein Host ausgewählt", - "starred": "Mit Stern markiert", - "shortcuts": "Kurzbefehle", + "starred": "Favoriten", + "shortcuts": "Verknüpfungen", "directories": "Verzeichnisse", - "removedFromRecentFiles": "„ {{name}} “ aus den zuletzt verwendeten letzten Dateien entfernt", + "removedFromRecentFiles": "\"{{name}}\" aus den zuletzt verwendeten Dateien entfernt", "removeFailed": "Entfernen fehlgeschlagen", - "unpinnedSuccessfully": "\" {{name}} \" erfolgreich gelöst", + "unpinnedSuccessfully": "\"{{name}}\" erfolgreich gelöst", "unpinFailed": "Anheften fehlgeschlagen", - "removedShortcut": "Verknüpfung „ {{name}} “ entfernt", + "removedShortcut": "Verknüpfung \"{{name}}\" entfernt", "removeShortcutFailed": "Verknüpfung entfernen fehlgeschlagen", "clearedAllRecentFiles": "Alle zuletzt verwendeten Dateien gelöscht", "clearFailed": "Löschen fehlgeschlagen", @@ -1021,7 +1078,7 @@ "removeShortcut": "Verknüpfung entfernen", "saveFilesToSystem": "{{count}} Dateien speichern unter...", "pinFile": "Datei anheften", - "addToShortcuts": "Zu Shortcuts hinzufügen", + "addToShortcuts": "Zu Verknüpfungen hinzufügen", "downloadToDefaultLocation": "An Standardort herunterladen", "pasteFailed": "Einfügen fehlgeschlagen", "noUndoableActions": "Keine rückgängig zu machenden Aktionen", @@ -1069,9 +1126,9 @@ "startTyping": "Beginnen Sie mit der Eingabe...", "unknownSize": "Unbekannte Größe", "fileIsEmpty": "Die Datei ist leer", - "largeFileWarning": "Warnung zu großen Dateie(n)", + "largeFileWarning": "Warnung: Große Datei", "largeFileWarningDesc": "Diese Datei hat eine Größe {{size}}, was beim Öffnen als Text zu Leistungsproblemen führen kann.", - "fileNotFoundAndRemoved": "Datei „ {{name}} “ nicht gefunden und aus den letzten\/angehefteten Dateien entfernt", + "fileNotFoundAndRemoved": "Datei \"{{name}}\" nicht gefunden und aus den letzten/angehefteten Dateien entfernt", "failedToLoadFile": "Datei konnte nicht geladen werden: {{error}}", "serverErrorOccurred": "Es ist ein Serverfehler aufgetreten. Bitte versuchen Sie es später noch einmal.", "autoSaveFailed": "Automatisches Speichern fehlgeschlagen", @@ -1083,17 +1140,17 @@ "dragFailed": "Ziehvorgang fehlgeschlagen", "filePinnedSuccessfully": "Datei \"{{name}}\" erfolgreich angeheftet", "pinFileFailed": "Datei konnte nicht angeheftet werden", - "fileUnpinnedSuccessfully": "Datei „ {{name}} “ erfolgreich gelöst", + "fileUnpinnedSuccessfully": "Datei \"{{name}}\" erfolgreich gelöst", "unpinFileFailed": "Fehler beim Lösen der Datei", - "shortcutAddedSuccessfully": "Ordnerverknüpfung „ {{name}} “ erfolgreich hinzugefügt", + "shortcutAddedSuccessfully": "Ordnerverknüpfung \"{{name}}\" erfolgreich hinzugefügt", "addShortcutFailed": "Verknüpfung konnte nicht hinzugefügt werden", "operationCompletedSuccessfully": "{{operation}} {{count}} Element(e) erfolgreich", "operationCompleted": "{{operation}} {{count}} Element(e)", "downloadFileSuccess": "Datei {{name}} erfolgreich heruntergeladen", - "downloadFileFailed": "Download fehlgeschlagen", + "downloadFileFailed": "Herunterladen fehlgeschlagen", "moveTo": "Nach {{name}} verschieben", "diffCompareWith": "Diff-Vergleich mit {{name}}", - "dragOutsideToDownload": "Zum Herunterladen aus dem Fenster ziehen ( {{count}} Dateien)", + "dragOutsideToDownload": "Zum Herunterladen aus dem Fenster ziehen ({{count}} Dateien)", "newFolderDefault": "Neuer Ordner", "newFileDefault": "NeueDatei.txt", "successfullyMovedItems": "{{count}} Elemente erfolgreich nach {{target}} verschoben", @@ -1108,8 +1165,38 @@ "inline": "Inline", "fileComparison": "Dateivergleich: {{file1}} vs {{file2}}", "fileTooLarge": "Datei zu groß: {{error}}", - "sshConnectionFailed": "SSH-Verbindung fehlgeschlagen. Bitte überprüfen Sie Ihre Verbindung zu {{name}} ( {{ip}} : {{port}} )", - "loadFileFailed": "Datei konnte nicht geladen werden: {{error}}" + "sshConnectionFailed": "SSH-Verbindung fehlgeschlagen. Bitte überprüfen Sie Ihre Verbindung zu {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Datei konnte nicht geladen werden: {{error}}", + "andMoreFiles": "und {{count}} weitere...", + "archiveExtractedSuccessfully": "{{name}} erfolgreich extrahiert", + "archiveName": "Archivname", + "changePermissions": "Berechtigungen ändern", + "changePermissionsDesc": "Dateiberechtigungen ändern für", + "compress": "Komprimieren", + "compressFailed": "Komprimierung fehlgeschlagen", + "compressFile": "Datei komprimieren", + "compressFiles": "Dateien komprimieren", + "compressFilesDesc": "Komprimiere {{count}} Elemente in ein Archiv", + "compressingFiles": "{{count}} Elemente werden in {{name}} komprimiert...", + "compressionFormat": "Komprimierungsformat", + "connectedSuccessfully": "Erfolgreich verbunden", + "currentPermissions": "Aktuelle Berechtigungen", + "enterArchiveName": "Archivnamen eingeben...", + "execute": "Ausführen", + "extractArchive": "Archiv extrahieren", + "extractFailed": "Extrahieren fehlgeschlagen", + "extractingArchive": "Extrahiere {{name}}...", + "failedToChangePermissions": "Berechtigungen konnten nicht geändert werden", + "filesCompressedSuccessfully": "{{name}} erfolgreich erstellt", + "group": "Gruppe", + "newPermissions": "Neue Berechtigungen", + "others": "Andere", + "owner": "Eigentümer", + "permissionsChangedSuccessfully": "Berechtigungen erfolgreich geändert", + "read": "Lesen", + "selectedFiles": "Ausgewählte Dateien", + "totpVerificationFailed": "TOTP-Verifizierung fehlgeschlagen", + "write": "Schreiben" }, "tunnels": { "title": "SSH-Tunnel", @@ -1159,7 +1246,7 @@ "portMapping": "Port {{sourcePort}} → {{endpointHost}} : {{endpointPort}}", "endpointHostNotFound": "Endpunkthost nicht gefunden", "discord": "Discord", - "githubIssue": "GitHub-issue", + "githubIssue": "GitHub-Issue", "forHelp": "für Hilfe" }, "serverStats": { @@ -1184,8 +1271,8 @@ "openFileManager": "Dateimanager öffnen", "cpuCores_one": "{{count}} CPU", "cpuCores_other": "{{count}} CPUs", - "naCpus": "N\/A CPU(s)", - "loadAverageNA": "Durchschnitt: N\/A", + "naCpus": "N/A CPU(s)", + "loadAverageNA": "Durchschnitt: N/A", "cpuUsage": "CPU-Auslastung", "memoryUsage": "Speicherauslastung", "diskUsage": "Festplattennutzung", @@ -1201,7 +1288,6 @@ "serverOffline": "Server offline", "cannotFetchMetrics": "Metriken können nicht vom Offline-Server abgerufen werden", "load": "Last", - "available": "Verfügbar", "editLayout": "Layout anpassen", "cancelEdit": "Abbrechen", "addWidget": "Widget hinzufügen", @@ -1209,7 +1295,7 @@ "unsavedChanges": "Ungespeicherte Änderungen", "layoutSaved": "Layout erfolgreich gespeichert", "failedToSaveLayout": "Speichern des Layout fehlgeschlagen", - "systemInfo": "System Information", + "systemInfo": "Systeminformationen", "hostname": "Hostname", "operatingSystem": "Betriebssystem", "kernel": "Kernel", @@ -1226,7 +1312,15 @@ "recentSuccessfulLogins": "Letzte erfolgreiche Anmeldungen", "recentFailedAttempts": "Letzte fehlgeschlagene Versuche", "noRecentLoginData": "Keine aktuellen Anmeldedaten", - "from": "von" + "from": "von", + "executeQuickAction": "Ausführen {{name}}", + "executingQuickAction": "Führe {{name}} aus...", + "quickActionError": "Fehler beim Ausführen von {{name}}", + "quickActionFailed": "{{name}} fehlgeschlagen", + "quickActionSuccess": "{{name}} erfolgreich abgeschlossen", + "quickActions": "Schnellaktionen", + "totpRequired": "TOTP-Authentifizierung erforderlich", + "totpUnavailable": "Serverstatistiken nicht verfügbar für TOTP-aktivierte Server" }, "auth": { "tagline": "SSH SERVER MANAGER", @@ -1239,7 +1333,7 @@ "loginButton": "Anmelden", "registerButton": "Registrieren", "forgotPassword": "Passwort vergessen?", - "rememberMe": "Erinnere dich an mich", + "rememberMe": "Angemeldet bleiben", "noAccount": "Sie haben noch kein Konto?", "hasAccount": "Sie haben bereits ein Konto?", "loginSuccess": "Anmeldung erfolgreich", @@ -1257,7 +1351,7 @@ "enableTwoFactor": "Zwei-Faktor-Authentifizierung aktivieren", "disableTwoFactor": "Zwei-Faktor-Authentifizierung deaktivieren", "scanQRCode": "Scannen Sie diesen QR-Code mit Ihrer Authentifizierungs-App", - "backupCodes": "Sicherungs-Codes", + "backupCodes": "Backup-Codes", "saveBackupCodes": "Bewahren Sie diese Backup-Codes an einem sicheren Ort auf", "twoFactorEnabledSuccess": "Zwei-Faktor-Authentifizierung erfolgreich aktiviert!", "twoFactorDisabled": "Zwei-Faktor-Authentifizierung deaktiviert", @@ -1308,7 +1402,7 @@ "resetCodeDesc": "Geben Sie Ihren Benutzernamen ein, um einen Code zum Zurücksetzen des Passworts zu erhalten. Der Code wird in den Docker-Container-Protokollen angezeigt.", "resetCode": "Code zurücksetzen", "verifyCodeButton": "Code bestätigen", - "enterResetCode": "Geben Sie den 6-stelligen Code aus den Docker-Container-Protokollen \/ logs für den Benutzer ein:", + "enterResetCode": "Geben Sie den 6-stelligen Code aus den Docker-Container-Protokollen für den Benutzer ein:", "goToLogin": "Zum Login", "newPassword": "Neues Passwort", "confirmNewPassword": "Passwort bestätigen", @@ -1318,15 +1412,25 @@ "signUp": "Registrierung", "dataLossWarning": "Wenn Sie Ihr Passwort auf diese Weise zurücksetzen, werden alle Ihre gespeicherten SSH-Hosts, Anmeldeinformationen und andere verschlüsselte Daten gelöscht. Diese Aktion kann nicht rückgängig gemacht werden. Verwenden Sie diese Option nur, wenn Sie Ihr Passwort vergessen haben und nicht angemeldet sind.", "sshAuthenticationRequired": "SSH-Authentifizierung erforderlich", - "sshNoKeyboardInteractive": "Keyboard-Interactive-Authentifizierung nicht verfügbar", + "sshNoKeyboardInteractive": "Tastatur-Interaktive Authentifizierung nicht verfügbar", "sshAuthenticationFailed": "Authentifizierung fehlgeschlagen", "sshAuthenticationTimeout": "Authentifizierungs-Timeout", - "sshNoKeyboardInteractiveDescription": "Der Server unterstützt keine Keyboard-Interactive-Authentifizierung. Bitte geben Sie Ihr Passwort oder Ihren SSH-Schlüssel ein.", + "sshNoKeyboardInteractiveDescription": "Der Server unterstützt keine Tastatur-Interaktive Authentifizierung. Bitte geben Sie Ihr Passwort oder Ihren SSH-Schlüssel ein.", "sshAuthFailedDescription": "Die angegebenen Anmeldeinformationen waren falsch. Bitte versuchen Sie es erneut mit gültigen Anmeldeinformationen.", "sshTimeoutDescription": "Der Authentifizierungsversuch ist abgelaufen. Bitte versuchen Sie es erneut.", "sshProvideCredentialsDescription": "Bitte geben Sie Ihre SSH-Anmeldeinformationen ein, um eine Verbindung zu diesem Server herzustellen.", "sshPasswordDescription": "Geben Sie das Passwort für diese SSH-Verbindung ein.", - "sshKeyPasswordDescription": "Wenn Ihr SSH-Schlüssel verschlüsselt ist, geben Sie hier die Passphrase ein." + "sshKeyPasswordDescription": "Wenn Ihr SSH-Schlüssel verschlüsselt ist, geben Sie hier die Passphrase ein.", + "authenticating": "Authentifizierung läuft...", + "authenticationDisabled": "Authentifizierung deaktiviert", + "authenticationDisabledDesc": "Alle Authentifizierungsmethoden sind derzeit deaktiviert. Bitte kontaktieren Sie Ihren Administrator.", + "desktopApp": "Desktop App", + "loadingServer": "Lade Server...", + "loggingInToDesktopApp": "Anmelden bei der Desktop-App", + "loggingInToDesktopAppViaWeb": "Anmelden bei der Desktop-App über Webinterface", + "loggingInToMobileApp": "Anmelden bei der Mobile-App", + "mobileApp": "Mobile App", + "redirectingToApp": "Weiterleitung zur App..." }, "errors": { "notFound": "Seite nicht gefunden", @@ -1337,9 +1441,9 @@ "databaseConnection": "Es konnte keine Verbindung zur Datenbank hergestellt werden.", "unknownError": "Unbekannter Fehler", "loginFailed": "Anmeldung fehlgeschlagen", - "failedPasswordReset": "Das Zurücksetzen des Kennworts konnte nicht eingeleitet werden.", + "failedPasswordReset": "Das Zurücksetzen des Passworts konnte nicht eingeleitet werden.", "failedVerifyCode": "Reset-Code konnte nicht verifiziert werden", - "failedCompleteReset": "Das Zurücksetzen des Kennworts konnte nicht abgeschlossen werden.", + "failedCompleteReset": "Das Zurücksetzen des Passworts konnte nicht abgeschlossen werden.", "invalidTotpCode": "Ungültiger TOTP-Code", "failedOidcLogin": "Fehler beim Starten der OIDC-Anmeldung", "failedUserInfo": "Fehler beim Abrufen von Benutzerinformationen nach der OIDC-Anmeldung", @@ -1389,7 +1493,7 @@ "title": "Benutzerprofil", "description": "Verwalten Sie Ihre Kontoeinstellungen und Sicherheit", "security": "Sicherheit", - "changePassword": "Kennwort ändern", + "changePassword": "Passwort ändern", "twoFactorAuth": "Zwei-Faktor-Authentifizierung", "accountInfo": "Kontoinformationen", "role": "Rolle", @@ -1399,7 +1503,7 @@ "local": "Lokal", "external": "Extern (OIDC)", "selectPreferredLanguage": "Wählen Sie Ihre bevorzugte Sprache für die Benutzeroberfläche", - "fileColorCoding": "Dateifarb-Codierung", + "fileColorCoding": "Dateifarbcodierung", "fileColorCodingDesc": "Farbcodierung von Dateien nach Typ: Ordner (rot), Dateien (blau), Symlinks (grün)", "commandAutocomplete": "Befehlsautovervollständigung", "commandAutocompleteDesc": "Tab-Taste Autovervollständigung für Terminal-Befehle basierend auf Ihrem Befehlsverlauf aktivieren", @@ -1407,7 +1511,8 @@ "defaultSnippetFoldersCollapsedDesc": "Wenn aktiviert, werden alle Snippet-Ordner beim Öffnen der Snippet-Registerkarte eingeklappt", "currentPassword": "Aktuelles Passwort", "passwordChangedSuccess": "Passwort erfolgreich geändert! Bitte melden Sie sich erneut an.", - "failedToChangePassword": "Passwort konnte nicht geändert werden. Bitte überprüfen Sie Ihr aktuelles Passwort und versuchen Sie es erneut." + "failedToChangePassword": "Passwort konnte nicht geändert werden. Bitte überprüfen Sie Ihr aktuelles Passwort und versuchen Sie es erneut.", + "externalAndLocal": "Dual Auth" }, "user": { "failedToLoadVersionInfo": "Fehler beim Laden der Versionsinformationen" @@ -1423,23 +1528,23 @@ "hostname": "Hostname", "folder": "Ordner", "password": "Passwort", - "keyPassword": "Schlüsselkennwort", + "keyPassword": "Schlüsselpasswort", "pastePrivateKey": "Fügen Sie hier Ihren privaten Schlüssel ein ...", "pastePublicKey": "Fügen Sie hier Ihren öffentlichen Schlüssel ein ...", "credentialName": "Mein SSH-Server", "description": "Beschreibung der SSH-Anmeldeinformationen", "searchCredentials": "Suchen Sie Anmeldeinformationen nach Name, Benutzername oder Tags ...", "sshConfig": "Endpunkt-SSH-Konfiguration", - "homePath": "\/home", + "homePath": "/home", "clientId": "Ihre Client-ID", "clientSecret": "Ihr Client-Geheimnis", - "authUrl": "https:\/\/ihr-anbieter.com\/application\/o\/authorize\/", - "redirectUrl": "https:\/\/ihr-anbieter.com\/application\/o\/termix\/", - "tokenUrl": "https:\/\/ihr-anbieter.com\/application\/o\/token\/", + "authUrl": "https://ihr-anbieter.com/application/o/authorize/", + "redirectUrl": "https://ihr-anbieter.com/application/o/termix/", + "tokenUrl": "https://ihr-anbieter.com/application/o/token/", "userIdField": "sub", "usernameField": "name", "scopes": "openid email profile", - "userinfoUrl": "https:\/\/ihr-anbieter.com\/application\/o\/userinfo\/", + "userinfoUrl": "https://ihr-anbieter.com/application/o/userinfo/", "enterUsername": "Geben Sie den Benutzernamen ein, um zum Administrator zu werden", "searchHosts": "Suchen Sie nach Hosts nach Name, Benutzername, IP, Ordner, Tags usw.", "enterPassword": "Geben Sie Ihr Passwort ein", @@ -1460,7 +1565,7 @@ "failedToDeleteAccount": "Konto konnte nicht gelöscht werden", "failedToMakeUserAdmin": "Fehler beim Festlegen des Benutzers als Administrator", "userIsNowAdmin": "Der Benutzer {{username}} ist jetzt ein Administrator", - "removeAdminConfirm": "Möchten Sie die Administrationsberechtigung von {{username}} wirklich entfernen?", + "removeAdminConfirm": "Möchten Sie die Administratorberechtigung von {{username}} wirklich entfernen?", "deleteUserConfirm": "Möchten Sie den Benutzer {{username}} wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.", "deleteAccount": "Konto löschen", "closeDeleteAccount": "Schließen Konto löschen", @@ -1468,19 +1573,19 @@ "deleteAccountWarningDetails": "Wenn Sie Ihr Konto löschen, werden alle Ihre Daten entfernt, einschließlich SSH-Hosts, Konfigurationen und Einstellungen. Diese Aktion ist nicht rückgängig zu machen.", "deleteAccountWarningShort": "Diese Aktion kann nicht rückgängig gemacht werden und löscht Ihr Konto dauerhaft.", "cannotDeleteAccount": "Konto kann nicht gelöscht werden", - "lastAdminWarning": "Sie sind der letzte Administrator. Sie können Ihr Konto nicht löschen, da das System dann ohne Administratoren wäre. Bitte benennen Sie zunächst einen anderen Benutzer als Administrator oder wenden Sie sich an den Systemsupport.", + "lastAdminWarning": "Sie sind der letzte Administrator. Sie können Ihr Konto nicht löschen, da das System dann ohne Administrator wäre. Bitte benennen Sie zunächst einen anderen Benutzer als Administrator oder wenden Sie sich an den Systemsupport.", "confirmPassword": "Passwort bestätigen", "deleting": "Löschen...", "cancel": "Abbrechen" }, "interface": { "sidebar": "Seitenleiste", - "toggleSidebar": "Seitenleiste ein-\/ausblenden", + "toggleSidebar": "Seitenleiste ein-/ausblenden", "close": "Schließen", "online": "Online", "offline": "Offline", "maintenance": "Wartung", - "degraded": "Herabgestuft", + "degraded": "Eingeschränkt", "noTunnelConnections": "Keine Tunnelverbindungen konfiguriert", "discord": "Discord", "connectToSshForOperations": "Stellen Sie eine SSH-Verbindung her, um Dateivorgänge zu verwenden", @@ -1517,7 +1622,7 @@ "disconnected": "Getrennt", "maxRetriesExhausted": "Maximale Wiederholungsversuche ausgeschöpft", "endpointHostNotFound": "Endpunkthost nicht gefunden", - "administrator": "Admin", + "administrator": "Administrator", "user": "Benutzer", "external": "Extern", "local": "Lokal", @@ -1531,19 +1636,19 @@ "verifyAndEnable": "Überprüfen und Aktivieren", "secretKey": "Geheimer Schlüssel", "totpQrCode": "TOTP-QR-Code", - "passwordRequired": "Bei Verwendung der Kennwortauthentifizierung ist ein Kennwort erforderlich", + "passwordRequired": "Bei Verwendung der Passwort-Authentifizierung ist ein Passwort erforderlich", "sshKeyRequired": "Bei Verwendung der Schlüsselauthentifizierung ist ein privater SSH-Schlüssel erforderlich", "keyTypeRequired": "Bei Verwendung der Schlüsselauthentifizierung ist der Schlüsseltyp erforderlich", "validSshConfigRequired": "Sie müssen eine gültige SSH-Konfiguration aus der Liste auswählen", "updateHost": "Host aktualisieren", "addHost": "Host hinzufügen", "editHost": "Host bearbeiten", - "pinConnection": "Pin-Verbindung", + "pinConnection": "Verbindung anheften", "authentication": "Authentifizierung", "password": "Passwort", "key": "Schlüssel", "sshPrivateKey": "Privater SSH-Schlüssel", - "keyPassword": "Schlüsselkennwort", + "keyPassword": "Schlüsselpasswort", "keyType": "Schlüsseltyp", "enableTerminal": "Terminal aktivieren", "enableTunnel": "Tunnel aktivieren", @@ -1559,9 +1664,9 @@ "developmentFolder": "Entwicklung", "webServerProduction": "Webserver – Produktion", "unknownError": "Unbekannter Fehler", - "failedToInitiatePasswordReset": "Das Zurücksetzen des Kennworts konnte nicht eingeleitet werden.", + "failedToInitiatePasswordReset": "Das Zurücksetzen des Passworts konnte nicht eingeleitet werden.", "failedToVerifyResetCode": "Fehler beim Überprüfen des Reset-Codes", - "failedToCompletePasswordReset": "Das Zurücksetzen des Kennworts konnte nicht abgeschlossen werden.", + "failedToCompletePasswordReset": "Das Zurücksetzen des Passworts konnte nicht abgeschlossen werden.", "invalidTotpCode": "Ungültiger TOTP-Code", "failedToStartOidcLogin": "Fehler beim Starten der OIDC-Anmeldung", "failedToGetUserInfoAfterOidc": "Fehler beim Abrufen von Benutzerinformationen nach der OIDC-Anmeldung", @@ -1596,7 +1701,7 @@ "serverOverview": "Serverübersicht", "version": "Version", "upToDate": "Auf dem neuesten Stand", - "updateAvailable": "Update verfügbar", + "updateAvailable": "Aktualisierung verfügbar", "uptime": "Betriebszeit", "database": "Datenbank", "healthy": "Gesund", @@ -1611,7 +1716,7 @@ "quickActions": "Schnellaktionen", "addHost": "Host hinzufügen", "addCredential": "Anmeldedaten hinzufügen", - "adminSettings": "Admin-Einstellungen", + "adminSettings": "Administratoreinstellungen", "userProfile": "Benutzerprofil", "serverStats": "Serverstatistiken", "loadingServerStats": "Serverstatistiken werden geladen...", @@ -1626,7 +1731,7 @@ "navigation": "Navigation", "addHost": "Host hinzufügen", "addCredential": "Anmeldedaten hinzufügen", - "adminSettings": "Admin-Einstellungen", + "adminSettings": "Administratoreinstellungen", "userProfile": "Benutzerprofil", "updateLog": "Aktualisierungsprotokoll", "hosts": "Hosts", @@ -1642,5 +1747,39 @@ "toToggle": "zum Umschalten", "close": "Schließen", "hostManager": "Host-Manager" + }, + "snippets": { + "content": "Befehl", + "contentPlaceholder": "z.B. sudo systemctl restart nginx", + "contentRequired": "Befehl ist erforderlich", + "copySuccess": "\"{{name}}\" in die Zwischenablage kopiert", + "copyTooltip": "Snippet in die Zwischenablage kopieren", + "create": "Snippet erstellen", + "createDescription": "Erstellen Sie ein neues Befehls-Snippet für die schnelle Ausführung", + "createFailed": "Fehler beim Erstellen des Snippets", + "createSuccess": "Snippet erfolgreich erstellt", + "deleteConfirmDescription": "Sind Sie sicher, dass Sie \"{{name}}\" löschen möchten?", + "deleteConfirmTitle": "Snippet löschen", + "deleteFailed": "Fehler beim Löschen des Snippets", + "deleteSuccess": "Snippet erfolgreich gelöscht", + "deleteTooltip": "Dieses Snippet löschen", + "description": "Beschreibung", + "descriptionPlaceholder": "Optionale Beschreibung", + "edit": "Snippet bearbeiten", + "editDescription": "Dieses Befehls-Snippet bearbeiten", + "editTooltip": "Dieses Snippet bearbeiten", + "empty": "Noch keine Snippets", + "emptyHint": "Erstellen Sie ein Snippet, um häufig verwendete Befehle zu speichern", + "executeSuccess": "Ausführen: {{name}}", + "failedToFetch": "Fehler beim Abrufen der Snippets", + "name": "Name", + "namePlaceholder": "z.B. Restart Nginx", + "nameRequired": "Name ist erforderlich", + "new": "Neues Snippet", + "run": "Ausführen", + "runTooltip": "Dieses Snippet im Terminal ausführen", + "title": "Snippets", + "updateFailed": "Fehler beim Aktualisieren des Snippets", + "updateSuccess": "Snippet erfolgreich aktualisiert" } } \ No newline at end of file diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index e079b50e..f8afc1c4 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -59,7 +59,6 @@ "keyTypeRSA": "RSA", "keyTypeECDSA": "ECDSA", "keyTypeEd25519": "Ed25519", - "updateCredential": "Update Credential", "basicInfo": "Basic Info", "authentication": "Authentication", "organization": "Organization", @@ -119,7 +118,6 @@ "credentialSecuredDescription": "All sensitive data is encrypted with AES-256", "passwordAuthentication": "Password Authentication", "keyAuthentication": "Key Authentication", - "keyType": "Key Type", "securityReminder": "Security Reminder", "securityReminderText": "Never share your credentials. All data is encrypted at rest.", "hostsUsingCredential": "Hosts Using This Credential", @@ -299,7 +297,7 @@ "warning": "Warning", "info": "Info", "success": "Success", - "loading": "Loading", + "loading": "Loading...", "required": "Required", "optional": "Optional", "connect": "Connect", @@ -315,7 +313,6 @@ "updateAvailable": "Update Available", "sshPath": "SSH Path", "localPath": "Local Path", - "loading": "Loading...", "noAuthCredentials": "No authentication credentials available for this SSH host", "noReleases": "No Releases", "updatesAndReleases": "Updates & Releases", @@ -330,13 +327,10 @@ "resetPassword": "Reset Password", "resetCode": "Reset Code", "newPassword": "New Password", - "sshPath": "SSH Path", - "localPath": "Local Path", "folder": "Folder", "file": "File", "renamedSuccessfully": "renamed successfully", "deletedSuccessfully": "deleted successfully", - "noAuthCredentials": "No authentication credentials available for this SSH host", "noTunnelConnections": "No tunnel connections configured", "sshTools": "SSH Tools", "english": "English", @@ -348,14 +342,12 @@ "login": "Login", "logout": "Logout", "register": "Register", - "username": "Username", "password": "Password", "version": "Version", "confirmPassword": "Confirm Password", "back": "Back", "email": "Email", "submit": "Submit", - "cancel": "Cancel", "change": "Change", "save": "Save", "saving": "Saving...", @@ -363,22 +355,15 @@ "edit": "Edit", "add": "Add", "search": "Search", - "loading": "Loading...", - "error": "Error", - "success": "Success", - "warning": "Warning", - "info": "Info", "confirm": "Confirm", "yes": "Yes", "no": "No", "ok": "OK", - "close": "Close", "enabled": "Enabled", "disabled": "Disabled", "important": "Important", "notEnabled": "Not Enabled", "settingUp": "Setting up...", - "back": "Back", "next": "Next", "previous": "Previous", "refresh": "Refresh", @@ -431,7 +416,7 @@ "userManagement": "User Management", "makeAdmin": "Make Admin", "removeAdmin": "Remove Admin", - "deleteUser": "Delete User", + "deleteUser": "Delete user {{username}}? This cannot be undone.", "allowRegistration": "Allow Registration", "oidcSettings": "OIDC Settings", "clientId": "Client ID", @@ -485,7 +470,6 @@ "removeAdminStatus": "Remove admin status from {{username}}?", "adminStatusRemoved": "Admin status removed from {{username}}", "failedToRemoveAdminStatus": "Failed to remove admin status", - "deleteUser": "Delete user {{username}}? This cannot be undone.", "userDeletedSuccessfully": "User {{username}} deleted successfully", "failedToDeleteUser": "Failed to delete user", "overrideUserInfoUrl": "Override User Info URL (not required)", @@ -563,7 +547,6 @@ "verificationCompleted": "Compatibility verification completed - no data was changed", "verificationInProgress": "Verification completed", "dataMigrationCompleted": "Data migration completed successfully!", - "migrationCompleted": "Migration completed", "verificationFailed": "Compatibility verification failed", "migrationFailed": "Migration failed", "runningVerification": "Running compatibility verification...", @@ -641,7 +624,8 @@ "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?" + "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" }, "hosts": { "title": "Host Manager", @@ -1054,7 +1038,6 @@ "copyPaths": "Copy Paths", "delete": "Delete", "properties": "Properties", - "preview": "Preview", "refresh": "Refresh", "downloadFiles": "Download {{count}} files to Browser", "copyFiles": "Copy {{count}} items", @@ -1069,18 +1052,11 @@ "failedToDeleteItem": "Failed to delete item", "itemRenamedSuccessfully": "{{type}} renamed successfully", "failedToRenameItem": "Failed to rename item", - "upload": "Upload", "download": "Download", - "newFile": "New File", - "newFolder": "New Folder", - "rename": "Rename", - "delete": "Delete", "permissions": "Permissions", "size": "Size", "modified": "Modified", "path": "Path", - "fileName": "File Name", - "folderName": "Folder Name", "confirmDelete": "Are you sure you want to delete {{name}}?", "uploadSuccess": "File uploaded successfully", "uploadFailed": "File upload failed", @@ -1100,10 +1076,7 @@ "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", - "folder": "Folder", - "file": "File", "deletedSuccessfully": "deleted successfully", - "failedToDeleteItem": "Failed to delete item", "connectToServer": "Connect to a Server", "selectServerToEdit": "Select a server from the sidebar to start editing files", "fileOperations": "File Operations", @@ -1160,10 +1133,8 @@ "unpinFile": "Unpin file", "removeShortcut": "Remove shortcut", "saveFilesToSystem": "Save {{count}} files as...", - "saveToSystem": "Save as...", "pinFile": "Pin file", "addToShortcuts": "Add to shortcuts", - "selectLocationToSave": "Select location to save", "downloadToDefaultLocation": "Download to default location", "pasteFailed": "Paste failed", "noUndoableActions": "No undoable actions", @@ -1181,7 +1152,6 @@ "editPath": "Edit path", "confirm": "Confirm", "cancel": "Cancel", - "folderName": "Folder name", "find": "Find...", "replaceWith": "Replace with...", "replace": "Replace", @@ -1207,23 +1177,18 @@ "outdent": "Outdent", "autoComplete": "Auto Complete", "imageLoadError": "Failed to load image", - "zoomIn": "Zoom In", - "zoomOut": "Zoom Out", "rotate": "Rotate", "originalSize": "Original Size", "startTyping": "Start typing...", "unknownSize": "Unknown size", "fileIsEmpty": "File is empty", - "modified": "Modified", "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.", - "fileSavedSuccessfully": "File saved successfully", "autoSaveFailed": "Auto-save failed", "fileAutoSaved": "File auto-saved", - "fileDownloadedSuccessfully": "File downloaded successfully", "moveFileFailed": "Failed to move {{name}}", "moveOperationFailed": "Move operation failed", "canOnlyCompareFiles": "Can only compare two files", @@ -1317,17 +1282,8 @@ "local": "Local", "remote": "Remote", "dynamic": "Dynamic", - "noSshTunnels": "No SSH Tunnels", - "createFirstTunnelMessage": "Create your first SSH tunnel to get started. Use the SSH Manager to add hosts with tunnel connections.", "unknownConnectionStatus": "Unknown", - "connected": "Connected", - "connecting": "Connecting...", - "disconnecting": "Disconnecting...", - "disconnected": "Disconnected", "portMapping": "Port {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", - "disconnect": "Disconnect", - "connect": "Connect", - "canceling": "Canceling...", "endpointHostNotFound": "Endpoint host not found", "discord": "Discord", "githubIssue": "GitHub issue", @@ -1340,7 +1296,7 @@ "disk": "Disk", "network": "Network", "uptime": "Uptime", - "loadAverage": "Load Average", + "loadAverage": "Avg: {{avg1}}, {{avg5}}, {{avg15}}", "processes": "Processes", "connections": "Connections", "usage": "Usage", @@ -1356,7 +1312,6 @@ "cpuCores_one": "{{count}} CPU", "cpuCores_other": "{{count}} CPUs", "naCpus": "N/A CPU(s)", - "loadAverage": "Avg: {{avg1}}, {{avg5}}, {{avg15}}", "loadAverageNA": "Avg: N/A", "cpuUsage": "CPU Usage", "memoryUsage": "Memory Usage", @@ -1375,7 +1330,6 @@ "totpRequired": "TOTP Authentication Required", "totpUnavailable": "Server Stats unavailable for TOTP-enabled servers", "load": "Load", - "available": "Available", "editLayout": "Edit Layout", "cancelEdit": "Cancel", "addWidget": "Add Widget", @@ -1514,7 +1468,9 @@ "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." + "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." }, "errors": { "notFound": "Page not found", @@ -1680,7 +1636,6 @@ "deleteItem": "Delete Item", "createNewFile": "Create New File", "createNewFolder": "Create New Folder", - "deleteItem": "Delete Item", "renameItem": "Rename Item", "clickToSelectFile": "Click to select a file", "noSshHosts": "No SSH Hosts", diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json index cda541e5..60bda5bd 100644 --- a/src/locales/fr/translation.json +++ b/src/locales/fr/translation.json @@ -164,7 +164,8 @@ "generateKeyPairNote": "Générez une nouvelle paire de clés SSH directement. Cela remplacera toute clé existante dans le formulaire.", "invalidKey": "Clé invalide", "detectionError": "Erreur de détection", - "unknown": "Inconnu" + "unknown": "Inconnu", + "credentialId": "ID de l'identifiant" }, "dragIndicator": { "error": "Erreur : {{error}}", @@ -385,7 +386,8 @@ "documentation": "Documentation", "retry": "Réessayer", "checking": "Vérification...", - "checkingDatabase": "Vérification de la connexion à la base de données..." + "checkingDatabase": "Vérification de la connexion à la base de données...", + "saving": "Enregistrement..." }, "nav": { "home": "Accueil", @@ -395,7 +397,7 @@ "tunnels": "Tunnels", "fileManager": "Gestionnaire de fichiers", "serverStats": "Statistiques serveur", - "admin": "Admin", + "admin": "Administrateur", "userProfile": "Profil utilisateur", "tools": "Outils", "snippets": "Extraits", @@ -447,7 +449,7 @@ "makeUserAdmin": "Nommer l'utilisateur administrateur", "adding": "Ajout...", "currentAdmins": "Administrateurs actuels", - "adminBadge": "Admin", + "adminBadge": "Administrateur", "removeAdminButton": "Retirer l'administrateur", "general": "Général", "userRegistration": "Inscription utilisateur", @@ -470,7 +472,7 @@ "failedToRemoveAdminStatus": "Échec du retrait du statut d'administrateur", "userDeletedSuccessfully": "Utilisateur {{username}} supprimé avec succès", "failedToDeleteUser": "Échec de la suppression de l'utilisateur", - "overrideUserInfoUrl": "Remplacer l'URL User Info (optionnel)", + "overrideUserInfoUrl": "Remplacer l'URL Utilisateur Info (optionnel)", "failedToFetchSessions": "Échec de la récupération des sessions", "sessionRevokedSuccessfully": "Session révoquée avec succès", "failedToRevokeSession": "Échec de la révocation de la session", @@ -604,7 +606,26 @@ "requiresPasswordLogin": "Nécessite la connexion par mot de passe activée", "passwordLoginDisabledWarning": "La connexion par mot de passe est désactivée. Vérifiez qu'OIDC est correctement configuré sinon vous ne pourrez plus vous connecter à Termix.", "oidcRequiredWarning": "CRITIQUE : la connexion par mot de passe est désactivée. Si vous réinitialisez ou mal configurez OIDC, vous perdrez tout accès à Termix et bloquerez l'instance. Ne continuez que si vous en êtes absolument certain.", - "confirmDisableOIDCWarning": "AVERTISSEMENT : vous êtes sur le point de désactiver OIDC alors que la connexion par mot de passe est désactivée. Cela bloquera votre instance Termix et vous perdrez tout accès. Êtes-vous vraiment sûr de vouloir continuer ?" + "confirmDisableOIDCWarning": "AVERTISSEMENT : vous êtes sur le point de désactiver OIDC alors que la connexion par mot de passe est désactivée. Cela bloquera votre instance Termix et vous perdrez tout accès. Êtes-vous vraiment sûr de vouloir continuer ?", + "accountsLinkedSuccessfully": "Le compte OIDC {{oidcUsername}} a été lié à {{targetUsername}}", + "failedToLinkAccounts": "Impossible de lier les comptes", + "failedToUnlinkOIDC": "Impossible de délier OIDC", + "linkAccountsButton": "Lier les comptes", + "linkOIDCActionAddCapability": "Ajouter la capacité de connexion OIDC au compte mot de passe cible", + "linkOIDCActionDeleteUser": "Supprimer le compte utilisateur OIDC et toutes ses données", + "linkOIDCActionDualAuth": "Autoriser le compte mot de passe à se connecter avec le mot de passe et OIDC", + "linkOIDCDialogDescription": "Lier {{username}} (utilisateur OIDC) à un compte mot de passe existant. Cela activera la double authentification pour le compte mot de passe.", + "linkOIDCDialogTitle": "Lier Compte OIDC au Compte Mot de Passe", + "linkOIDCWarningTitle": "Avertissement : Les données de l'utilisateur OIDC seront supprimées", + "linkTargetUsernameLabel": "Nom d'utilisateur du compte mot de passe cible", + "linkTargetUsernamePlaceholder": "Entrer le nom d'utilisateur du compte mot de passe", + "linkTargetUsernameRequired": "Le nom d'utilisateur cible est requis", + "linkToPasswordAccount": "Lier au Compte Mot de Passe", + "linkingAccounts": "Liaison en cours...", + "unlinkOIDCDescription": "Retirer l'authentification OIDC de {{username}} ? L'utilisateur ne pourra se connecter qu'avec nom d'utilisateur/mot de passe après cela.", + "unlinkOIDCSuccess": "OIDC délié de {{username}}", + "unlinkOIDCTitle": "Délier l'Authentification OIDC", + "failedToUpdatePasswordLoginStatus": "Impossible de mettre à jour le statut de connexion par mot de passe" }, "hosts": { "title": "Gestionnaire d'hôtes", @@ -720,7 +741,7 @@ "updateKey": "Mettre à jour la clé", "existingKey": "Clé existante (cliquez pour modifier)", "existingCredential": "Identifiant existant (cliquez pour modifier)", - "addTagsSpaceToAdd": "ajouter des labels (espace pour valider)", + "addTagsSpaceToAdd": "Ajouter des labels (espace pour valider)", "terminalBadge": "Terminal", "tunnelBadge": "Tunnel", "fileManagerBadge": "Gestionnaire de fichiers", @@ -791,8 +812,87 @@ "noServerFound": "Aucun serveur trouvé", "jumpHostsOrder": "Les connexions seront établies dans l'ordre : Serveur de rebond 1 → Serveur de rebond 2 → ... → Serveur cible", "advancedAuthSettings": "Paramètres d'authentification avancés", - "sudoPasswordAutoFill": "Remplissage automatique du mot de passe sudo", - "sudoPasswordAutoFillDesc": "Proposer automatiquement d’insérer le mot de passe SSH lorsque sudo demande un mot de passe" + "addQuickAction": "Ajouter une action rapide", + "adjustFontSize": "Ajuster la taille de la police du terminal", + "adjustLetterSpacing": "Ajuster l'espacement des lettres", + "adjustLineHeight": "Ajuster l'espacement des lignes", + "advanced": "Avancé", + "allHostsInFolderDeleted": "{{count}} hôtes supprimés du dossier \"{{folder}}\" avec succès", + "appearance": "Apparence", + "backspaceMode": "Mode retour arrière (Backspace)", + "backspaceModeControlH": "Control-H (^H)", + "backspaceModeDesc": "Comportement de la touche retour arrière pour la compatibilité", + "backspaceModeNormal": "Normal (DEL)", + "behavior": "Comportement", + "bellStyle": "Style de la cloche (Bell)", + "bellStyleBoth": "Les deux", + "bellStyleDesc": "Comment gérer la cloche du terminal (caractère BEL, \\x07). Les programmes déclenchent ceci lors de la fin de tâches, d'erreurs ou pour les notifications. \"Son\" joue un bip audio, \"Visuel\" fait clignoter l'écran brièvement, \"Les deux\" fait les deux, \"Aucun\" désactive les alertes.", + "bellStyleNone": "Aucun", + "bellStyleSound": "Son", + "bellStyleVisual": "Visuel", + "chooseColorTheme": "Choisir un thème de couleur pour le terminal", + "chooseCursorAppearance": "Choisir l'apparence du curseur", + "confirmDeleteAllHostsInFolder": "Êtes-vous sûr de vouloir supprimer les {{count}} hôtes du dossier \"{{folder}}\" ? Cette action ne peut pas être annulée.", + "cursorBlink": "Clignotement du curseur", + "cursorStyle": "Style du curseur", + "cursorStyleBar": "Barre", + "cursorStyleBlock": "Bloc", + "cursorStyleUnderline": "Souligné", + "deleteAllHostsInFolder": "Supprimer tous les hôtes du dossier", + "editFolderAppearance": "Modifier l'apparence du dossier", + "editFolderAppearanceDesc": "Personnalisez la couleur et l'icône du dossier", + "enableCursorBlink": "Activer l'animation de clignotement du curseur", + "failedToDeleteHostsInFolder": "Impossible de supprimer les hôtes du dossier", + "failedToUpdateFolderAppearance": "Impossible de mettre à jour l'apparence du dossier", + "fastScrollModifier": "Touche de défilement rapide", + "fastScrollModifierDesc": "Touche modificatrice pour le défilement rapide", + "fastScrollSensitivity": "Sensibilité du défilement rapide", + "fastScrollSensitivityDesc": "Multiplicateur de vitesse de défilement lorsque la touche est maintenue", + "fastScrollSensitivityValue": "Sensibilité du défilement rapide : {{value}}", + "folderAppearanceUpdated": "Apparence du dossier mise à jour avec succès", + "folderColor": "Couleur du dossier", + "folderIcon": "Icône du dossier", + "fontFamily": "Famille de police", + "fontSize": "Taille de police", + "fontSizeValue": "Taille de police : {{value}}px", + "letterSpacing": "Espacement des lettres", + "letterSpacingValue": "Espacement des lettres : {{value}}px", + "lineHeight": "Hauteur de ligne", + "lineHeightValue": "Hauteur de ligne : {{value}}", + "minimumContrastRatio": "Ratio de contraste minimum", + "minimumContrastRatioDesc": "Ajuster automatiquement les couleurs pour une meilleure lisibilité", + "minimumContrastRatioValue": "Ratio de contraste minimum : {{value}}", + "modifierAlt": "Alt", + "modifierCtrl": "Ctrl", + "modifierShift": "Shift", + "noSnippetFound": "Aucun extrait trouvé", + "preview": "Aperçu", + "quickActionName": "Nom de l'action", + "quickActions": "Actions rapides", + "quickActionsDescription": "Les actions rapides vous permettent de créer des boutons personnalisés qui exécutent des extraits SSH sur ce serveur. Ces boutons apparaîtront en haut de la page Statistiques Serveur pour un accès rapide.", + "quickActionsList": "Liste des actions rapides", + "quickActionsOrder": "Les boutons d'action rapide apparaîtront dans l'ordre indiqué ci-dessus sur la page Statistiques Serveur", + "rightClickSelectsWord": "Clic droit sélectionne le mot", + "rightClickSelectsWordDesc": "Le clic droit sélectionne le mot sous le curseur", + "scrollbackBuffer": "Tampon de défilement", + "scrollbackBufferDesc": "Nombre de lignes à conserver dans l'historique de défilement", + "scrollbackBufferValue": "Tampon de défilement : {{value}} lignes", + "searchSnippets": "Rechercher des extraits...", + "selectBackspaceMode": "Sélectionner le mode retour arrière", + "selectBellStyle": "Sélectionner le style de cloche", + "selectCursorStyle": "Sélectionner le style de curseur", + "selectFont": "Sélectionner la police", + "selectFontDesc": "Sélectionner la police à utiliser dans le terminal", + "selectModifier": "Sélectionner la touche modificatrice", + "selectSnippet": "Sélectionner un extrait", + "selectTheme": "Sélectionner un thème", + "snippetNone": "Aucun", + "sshAgentForwarding": "Transfert d'agent SSH", + "sshAgentForwardingDesc": "Transférer l'agent d'authentification SSH à l'hôte distant", + "startupSnippet": "Extrait au démarrage", + "terminalCustomization": "Personnalisation du terminal", + "theme": "Thème", + "themePreview": "Aperçu du thème" }, "terminal": { "title": "Terminal", @@ -949,7 +1049,7 @@ "internalServerError": "Une erreur interne du serveur est survenue", "serverError": "Erreur serveur", "error": "Erreur", - "requestFailed": "Réquête échouée avec le code", + "requestFailed": "Requête échouée avec le code", "unknownFileError": "Erreur de fichier inconnue", "cannotReadFile": "Impossible de lire le fichier", "noSshSessionId": "Aucun ID de session SSH", @@ -1106,7 +1206,35 @@ "sshConnectionFailed": "La connexion SSH a échoué. Vérifiez votre connexion à {{name}} ({{ip}}:{{port}})", "loadFileFailed": "Échec du chargement du fichier : {{error}}", "connectedSuccessfully": "Connexion réussie", - "totpVerificationFailed": "Échec de la vérification TOTP" + "totpVerificationFailed": "Échec de la vérification TOTP", + "andMoreFiles": "et {{count}} plus...", + "archiveExtractedSuccessfully": "{{name}} extrait avec succès", + "archiveName": "Nom de l'archive", + "changePermissions": "Modifier les permissions", + "changePermissionsDesc": "Modifier les permissions du fichier pour", + "compress": "Compresser", + "compressFailed": "Échec de la compression", + "compressFile": "Compresser le fichier", + "compressFiles": "Compresser les fichiers", + "compressFilesDesc": "Compresser {{count}} éléments dans une archive", + "compressingFiles": "Compression de {{count}} éléments dans {{name}}...", + "compressionFormat": "Format de compression", + "currentPermissions": "Permissions actuelles", + "enterArchiveName": "Entrer le nom de l'archive...", + "execute": "Exécuter", + "extractArchive": "Extraire l'archive", + "extractFailed": "Échec de l'extraction", + "extractingArchive": "Extraction de {{name}}...", + "failedToChangePermissions": "Impossible de modifier les permissions", + "filesCompressedSuccessfully": "{{name}} créé avec succès", + "group": "Groupe", + "newPermissions": "Nouvelles permissions", + "others": "Autres", + "owner": "Propriétaire", + "permissionsChangedSuccessfully": "Permissions modifiées avec succès", + "read": "Lecture", + "selectedFiles": "Fichiers sélectionnés", + "write": "Écriture" }, "tunnels": { "title": "Tunnels SSH", @@ -1217,7 +1345,20 @@ "noInterfacesFound": "Aucune interface trouvée", "totalProcesses": "Processus totaux", "running": "En cours d'exécution", - "noProcessesFound": "Aucun processus trouvé" + "noProcessesFound": "Aucun processus trouvé", + "executeQuickAction": "Exécuter {{name}}", + "executingQuickAction": "Exécution de {{name}}...", + "from": "de", + "loginStats": "Statistiques de connexion SSH", + "noRecentLoginData": "Aucune donnée de connexion récente", + "quickActionError": "Impossible d'exécuter {{name}}", + "quickActionFailed": "{{name}} a échoué", + "quickActionSuccess": "{{name}} terminé avec succès", + "quickActions": "Actions rapides", + "recentFailedAttempts": "Tentatives échouées récentes", + "recentSuccessfulLogins": "Connexions réussies récentes", + "totalLogins": "Total des connexions", + "uniqueIPs": "IP uniques" }, "auth": { "loginTitle": "Connexion à Termix", @@ -1320,7 +1461,14 @@ "authenticating": "Authentification...", "dataLossWarning": "Réinitialiser votre mot de passe de cette manière supprimera tous vos hôtes, identifiants et autres données chiffrées. Action irréversible. À utiliser uniquement si vous avez oublié votre mot de passe et n'êtes pas connecté.", "authenticationDisabled": "Authentification désactivée", - "authenticationDisabledDesc": "Toutes les méthodes d'authentification sont actuellement désactivées. Contactez votre administrateur." + "authenticationDisabledDesc": "Toutes les méthodes d'authentification sont actuellement désactivées. Contactez votre administrateur.", + "continueExternal": "Continuer avec un fournisseur externe", + "createAccount": "Créer votre compte TERMIX", + "description": "Gestion de connexions SSH sécurisée, puissante et intuitive", + "tagline": "GESTIONNAIRE DE SERVEURS SSH", + "welcomeBack": "Bon retour sur TERMIX", + "passwordResetSuccess": "Réinitialisation du mot de passe réussie", + "passwordResetSuccessDesc": "Votre mot de passe a été réinitialisé avec succès. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe." }, "errors": { "notFound": "Page introuvable", @@ -1401,7 +1549,8 @@ "defaultSnippetFoldersCollapsedDesc": "Lorsque cette option est activée, tous les dossiers de snippets seront réduits à l'ouverture de l'onglet snippets", "currentPassword": "Mot de passe actuel", "passwordChangedSuccess": "Mot de passe modifié avec succès ! Veuillez vous reconnecter.", - "failedToChangePassword": "Échec de la modification du mot de passe. Vérifiez votre mot de passe actuel et réessayez." + "failedToChangePassword": "Échec de la modification du mot de passe. Vérifiez votre mot de passe actuel et réessayez.", + "externalAndLocal": "Double Auth" }, "user": { "failedToLoadVersionInfo": "Échec du chargement des informations de version" @@ -1413,11 +1562,11 @@ "maxRetries": "3", "retryInterval": "10", "language": "Langue", - "username": "nom d'utilisateur", - "hostname": "nom d'hôte", - "folder": "dossier", - "password": "mot de passe", - "keyPassword": "mot de passe de la clé", + "username": "Nom d'utilisateur", + "hostname": "Nom d'hôte", + "folder": "Dossier", + "password": "Mot de passe", + "keyPassword": "Mot de passe de la clé", "pastePrivateKey": "Collez votre clé privée ici...", "pastePublicKey": "Collez votre clé publique ici...", "credentialName": "Mon serveur SSH", @@ -1613,5 +1762,28 @@ "cpu": "Processeur (CPU)", "ram": "Mémoire (RAM)", "notAvailable": "N/D" + }, + "commandPalette": { + "addCredential": "Ajouter Identifiant", + "addHost": "Ajouter Hôte", + "adminSettings": "Paramètres Administrateur", + "close": "Fermer", + "discord": "Discord", + "donate": "Faire un don", + "edit": "Modifier", + "github": "GitHub", + "hostManager": "Gestionnaire d'hôtes", + "hosts": "Hôtes", + "links": "Liens", + "navigation": "Navigation", + "openFileManager": "Ouvrir Gestionnaire de fichiers", + "openServerDetails": "Ouvrir Détails Serveur", + "press": "Appuyer", + "recentActivity": "Activité Récente", + "searchPlaceholder": "Rechercher hôtes ou actions rapides...", + "support": "Support", + "toToggle": "pour basculer", + "updateLog": "Journal de mise à jour", + "userProfile": "Profil utilisateur" } } \ No newline at end of file diff --git a/src/locales/it/translation.json b/src/locales/it/translation.json index b2f06e0d..1924b0f2 100644 --- a/src/locales/it/translation.json +++ b/src/locales/it/translation.json @@ -1,5 +1,60 @@ { "credentials": { + "credentialsViewer": "Visualizzatore Credenziali", + "manageYourSSHCredentials": "Gestisci le tue credenziali SSH in modo sicuro", + "addCredential": "Aggiungi Credenziale", + "createCredential": "Crea Credenziale", + "editCredential": "Modifica Credenziale", + "viewCredential": "Visualizza Credenziale", + "duplicateCredential": "Duplica Credenziale", + "deleteCredential": "Elimina Credenziale", + "updateCredential": "Aggiorna Credenziale", + "credentialName": "Nome Credenziale", + "credentialDescription": "Descrizione", + "username": "Nome Utente", + "searchCredentials": "Cerca credenziali...", + "selectFolder": "Seleziona Cartella", + "selectAuthType": "Seleziona Tipo Autenticazione", + "allFolders": "Tutte le Cartelle", + "allAuthTypes": "Tutti i Tipi di Autenticazione", + "uncategorized": "Non Categorizzata", + "totalCredentials": "Totale", + "keyBased": "Basata su Chiave", + "passwordBased": "Basata su Password", + "folders": "Cartelle", + "noCredentialsMatchFilters": "Nessuna credenziale corrisponde ai filtri", + "noCredentialsYet": "Nessuna credenziale creata", + "createFirstCredential": "Crea la tua prima credenziale", + "failedToFetchCredentials": "Impossibile recuperare le credenziali", + "credentialDeletedSuccessfully": "Credenziale eliminata con successo", + "failedToDeleteCredential": "Impossibile eliminare la credenziale", + "confirmDeleteCredential": "Sei sicuro di voler eliminare la credenziale \"{{name}}\"?", + "credentialCreatedSuccessfully": "Credenziale creata con successo", + "credentialUpdatedSuccessfully": "Credenziale aggiornata con successo", + "failedToSaveCredential": "Impossibile salvare la credenziale", + "failedToFetchCredentialDetails": "Impossibile recuperare i dettagli della credenziale", + "failedToFetchHostsUsing": "Impossibile recuperare gli host che usano questa credenziale", + "loadingCredentials": "Caricamento credenziali...", + "retry": "Riprova", + "noCredentials": "Nessuna Credenziale", + "noCredentialsMessage": "Non hai ancora aggiunto credenziali. Clicca \"Aggiungi Credenziale\" per iniziare.", + "sshCredentials": "Credenziali SSH", + "credentialsCount": "{{count}} credenziali", + "refresh": "Aggiorna", + "passwordRequired": "La password è obbligatoria", + "sshKeyRequired": "La chiave SSH è obbligatoria", + "credentialAddedSuccessfully": "Credenziale \"{{name}}\" aggiunta con successo", + "general": "Generale", + "description": "Descrizione", + "folder": "Cartella", + "tags": "Tag", + "addTagsSpaceToAdd": "Aggiungi tag (premi spazio per aggiungere)", + "password": "Password", + "key": "Chiave", + "sshPrivateKey": "Chiave Privata SSH", + "upload": "Carica", + "updateKey": "Aggiorna Chiave", + "keyPassword": "Password Chiave", "credentialsViewer": "Vèualizzaae Credenziali", "manageYourSSHCredentials": "Gestèci le tue credenziali SSH in mofare sicuro", "addCredential": "Aggiungi Credenziale", @@ -59,6 +114,103 @@ "keyTypeRSA": "RSA", "keyTypeECDSA": "ECDSA", "keyTypeEd25519": "Ed25519", + "basicInfo": "Info Base", + "authentication": "Autenticazione", + "organization": "Organizzazione", + "basicInformation": "Informazioni di Base", + "basicInformationDescription": "Inserisci le informazioni di base per questa credenziale", + "authenticationMethod": "Metodo di Autenticazione", + "authenticationMethodDescription": "Scegli come autenticarti con i server SSH", + "organizationDescription": "Organizza le tue credenziali con cartelle e tag", + "enterCredentialName": "Inserisci nome credenziale", + "enterCredentialDescription": "Inserisci descrizione (opzionale)", + "enterUsername": "Inserisci nome utente", + "nameIsRequired": "Il nome della credenziale è obbligatorio", + "usernameIsRequired": "Il nome utente è obbligatorio", + "authenticationType": "Tipo di Autenticazione", + "passwordAuthDescription": "Usa autenticazione con password", + "sshKeyAuthDescription": "Usa autenticazione con chiave SSH", + "passwordIsRequired": "La password è obbligatoria", + "sshKeyIsRequired": "La chiave SSH è obbligatoria", + "sshKeyType": "Tipo Chiave SSH", + "privateKey": "Chiave Privata", + "enterPassword": "Inserisci password", + "enterPrivateKey": "Inserisci chiave privata", + "keyPassphrase": "Passphrase Chiave", + "enterKeyPassphrase": "Inserisci passphrase chiave (opzionale)", + "keyPassphraseOptional": "Opzionale: lascia vuoto se la chiave non ha passphrase", + "leaveEmptyToKeepCurrent": "Lascia vuoto per mantenere il valore attuale", + "uploadKeyFile": "Carica File Chiave", + "generateKeyPairButton": "Genera Coppia di Chiavi", + "generateKeyPair": "Genera Coppia di Chiavi", + "generateKeyPairDescription": "Genera una nuova coppia di chiavi SSH. Se vuoi proteggere la chiave con una passphrase, inseriscila prima nel campo Password Chiave.", + "deploySSHKey": "Distribuisci Chiave SSH", + "deploySSHKeyDescription": "Distribuisci la chiave pubblica sul server di destinazione", + "sourceCredential": "Credenziale Sorgente", + "targetHost": "Host di Destinazione", + "deploymentProcess": "Processo di Distribuzione", + "deploymentProcessDescription": "Questo aggiungerà in modo sicuro la chiave pubblica al file ~/.ssh/authorized_keys dell'host di destinazione senza sovrascrivere le chiavi esistenti. L'operazione è reversibile.", + "chooseHostToDeploy": "Scegli un host su cui distribuire...", + "deploying": "Distribuzione in corso...", + "name": "Nome", + "noHostsAvailable": "Nessun host disponibile", + "noHostsMatchSearch": "Nessun host corrisponde alla ricerca", + "sshKeyGenerationNotImplemented": "Funzione generazione chiave SSH in arrivo", + "connectionTestingNotImplemented": "Funzione test connessione in arrivo", + "testConnection": "Testa Connessione", + "selectOrCreateFolder": "Seleziona o crea cartella", + "noFolder": "Nessuna cartella", + "orCreateNewFolder": "O crea nuova cartella", + "addTag": "Aggiungi tag", + "saving": "Salvataggio...", + "credentialId": "ID Credenziale", + "overview": "Panoramica", + "security": "Sicurezza", + "usage": "Utilizzo", + "securityDetails": "Dettagli Sicurezza", + "securityDetailsDescription": "Visualizza informazioni credenziali criptate", + "credentialSecured": "Credenziale Protetta", + "credentialSecuredDescription": "Tutti i dati sensibili sono criptati con AES-256", + "passwordAuthentication": "Autenticazione Password", + "keyAuthentication": "Autenticazione Chiave", + "securityReminder": "Promemoria Sicurezza", + "securityReminderText": "Non condividere mai le tue credenziali. Tutti i dati sono criptati a riposo.", + "hostsUsingCredential": "Host che Usano Questa Credenziale", + "noHostsUsingCredential": "Nessun host sta usando questa credenziale", + "timesUsed": "Volte Utilizzata", + "lastUsed": "Ultimo Utilizzo", + "connectedHosts": "Host Connessi", + "created": "Creata", + "lastModified": "Ultima Modifica", + "usageStatistics": "Statistiche di Utilizzo", + "copiedToClipboard": "{{field}} copiato negli appunti", + "failedToCopy": "Impossibile copiare negli appunti", + "sshKey": "Chiave SSH", + "createCredentialDescription": "Crea una nuova credenziale SSH per accesso sicuro", + "editCredentialDescription": "Aggiorna le informazioni della credenziale", + "listView": "Lista", + "folderView": "Cartelle", + "unknownCredential": "Sconosciuta", + "confirmRemoveFromFolder": "Sei sicuro di voler rimuovere \"{{name}}\" dalla cartella \"{{folder}}\"? La credenziale sarà spostata in \"Non Categorizzata\".", + "removedFromFolder": "Credenziale \"{{name}}\" rimossa dalla cartella con successo", + "failedToRemoveFromFolder": "Impossibile rimuovere la credenziale dalla cartella", + "folderRenamed": "Cartella \"{{oldName}}\" rinominata in \"{{newName}}\" con successo", + "failedToRenameFolder": "Impossibile rinominare la cartella", + "movedToFolder": "Credenziale \"{{name}}\" spostata in \"{{folder}}\" con successo", + "failedToMoveToFolder": "Impossibile spostare la credenziale nella cartella", + "sshPublicKey": "Chiave Pubblica SSH", + "publicKeyNote": "La chiave pubblica è opzionale ma raccomandata per la validazione", + "publicKeyUploaded": "Chiave Pubblica Caricata", + "uploadPublicKey": "Carica Chiave Pubblica", + "uploadPrivateKeyFile": "Carica File Chiave Privata", + "uploadPublicKeyFile": "Carica File Chiave Pubblica", + "privateKeyRequiredForGeneration": "La chiave privata è necessaria per generare la chiave pubblica", + "failedToGeneratePublicKey": "Impossibile generare la chiave pubblica", + "generatePublicKey": "Genera da Chiave Privata", + "publicKeyGeneratedSuccessfully": "Chiave pubblica generata con successo", + "detectedKeyType": "Tipo chiave rilevato", + "detectingKeyType": "rilevamento...", + "optional": "Opzionale", "basicInfo": "Info Bcomee", "authentication": "Autenticazèue", "organization": "Organizzazèue", @@ -160,6 +312,22 @@ "generateEd25519": "Genera Ed25519", "generateECDSA": "Genera ECDSA", "generateRSA": "Genera RSA", + "keyPairGeneratedSuccessfully": "Coppia di chiavi {{keyType}} generata con successo", + "failedToGenerateKeyPair": "Impossibile generare la coppia di chiavi", + "generateKeyPairNote": "Genera una nuova coppia di chiavi SSH direttamente. Questo sostituirà le chiavi esistenti nel modulo.", + "invalidKey": "Chiave Non Valida", + "detectionError": "Errore di Rilevamento", + "unknown": "Sconosciuto" + }, + "dragIndicator": { + "error": "Errore: {{error}}", + "dragging": "Trascinando {{fileName}}", + "preparing": "Preparazione {{fileName}}", + "readySingle": "Pronto per scaricare {{fileName}}", + "readyMultiple": "Pronto per scaricare {{count}} file", + "batchDrag": "Trascina {{count}} file sul desktop", + "dragToDesktop": "Trascina sul desktop", + "canDragAnywhere": "Puoi trascinare i file ovunque sul desktop" "keyPairGeneratedSuccessfully": "Coppia di chiavi {{chiaveTipo}} generaa csu successoo", "failedToGenerateKeyPair": "Impossibile generssuo la coppia di chiavi", "generateKeyPairNote": "Genera una nuova coppia di chiavi SSH direttamente. Quesa sostituirà le chiavi esètenti nel modulo.", @@ -180,6 +348,15 @@ "sshTools": { "title": "Strumenti SSH", "closeTools": "Chiudi Strumenti SSH", + "keyRecording": "Registrazione Tasti", + "startKeyRecording": "Avvia Registrazione Tasti", + "stopKeyRecording": "Ferma Registrazione Tasti", + "selectTerminals": "Seleziona terminali:", + "typeCommands": "Digita comandi (tutti i tasti supportati):", + "commandsWillBeSent": "I comandi saranno inviati a {{count}} terminale/i selezionato/i.", + "settings": "Impostazioni", + "enableRightClickCopyPaste": "Abilita copia/incolla con tasto destro", + "shareIdeas": "Hai idee per le prossime funzionalità degli strumenti SSH? Condividile su" "keyRecording": "Regètrazèue Tcometi", "startKeyRecording": "Avvia Regètrazèue Tcometi", "stopKeyRecording": "Ferma Regètrazèue Tcometi", @@ -197,6 +374,141 @@ "edit": "Modifica Snippet", "run": "Esegui", "empty": "Nessuno snippet", + "emptyHint": "Crea uno snippet per salvare i comandi usati frequentemente", + "name": "Nome", + "description": "Descrizione", + "content": "Comando", + "namePlaceholder": "es. Riavvia Nginx", + "descriptionPlaceholder": "Descrizione opzionale", + "contentPlaceholder": "es. sudo systemctl restart nginx", + "nameRequired": "Il nome è obbligatorio", + "contentRequired": "Il comando è obbligatorio", + "createDescription": "Crea un nuovo snippet di comando per esecuzione rapida", + "editDescription": "Modifica questo snippet di comando", + "deleteConfirmTitle": "Elimina Snippet", + "deleteConfirmDescription": "Sei sicuro di voler eliminare \"{{name}}\"?", + "createSuccess": "Snippet creato con successo", + "updateSuccess": "Snippet aggiornato con successo", + "deleteSuccess": "Snippet eliminato con successo", + "createFailed": "Impossibile creare lo snippet", + "updateFailed": "Impossibile aggiornare lo snippet", + "deleteFailed": "Impossibile eliminare lo snippet", + "failedToFetch": "Impossibile recuperare gli snippet", + "executeSuccess": "Esecuzione: {{name}}", + "copySuccess": "\"{{name}}\" copiato negli appunti", + "runTooltip": "Esegui questo snippet nel terminale", + "copyTooltip": "Copia snippet negli appunti", + "editTooltip": "Modifica questo snippet", + "deleteTooltip": "Elimina questo snippet" + }, + "commandHistory": { + "title": "Cronologia", + "searchPlaceholder": "Cerca comandi...", + "noTerminal": "Nessun terminale attivo", + "noTerminalHint": "Apri un terminale per vedere la sua cronologia comandi.", + "empty": "Nessun comando nella cronologia", + "emptyHint": "Esegui comandi nel terminale attivo per costruire la cronologia.", + "noResults": "Nessun comando trovato", + "noResultsHint": "Nessun comando corrispondente a \"{{query}}\"", + "deleteSuccess": "Comando eliminato dalla cronologia", + "deleteFailed": "Impossibile eliminare il comando.", + "deleteTooltip": "Elimina comando", + "tabHint": "Usa Tab nel terminale per autocompletare dalla cronologia" + }, + "homepage": { + "loggedInTitle": "Accesso effettuato!", + "loggedInMessage": "Hai effettuato l'accesso! Usa la barra laterale per accedere a tutti gli strumenti disponibili. Per iniziare, crea un Host SSH nella scheda Gestione SSH. Una volta creato, puoi connetterti usando le altre app nella barra laterale.", + "failedToLoadAlerts": "Impossibile caricare gli avvisi", + "failedToDismissAlert": "Impossibile chiudere l'avviso" + }, + "serverConfig": { + "title": "Configurazione Server", + "description": "Configura l'URL del server Termix per connetterti ai servizi backend", + "serverUrl": "URL Server", + "enterServerUrl": "Inserisci un URL del server", + "testConnectionFirst": "Testa prima la connessione", + "connectionSuccess": "Connessione riuscita!", + "connectionFailed": "Connessione fallita", + "connectionError": "Si è verificato un errore di connessione", + "connected": "Connesso", + "disconnected": "Disconnesso", + "configSaved": "Configurazione salvata con successo", + "saveFailed": "Impossibile salvare la configurazione", + "saveError": "Errore nel salvataggio della configurazione", + "saving": "Salvataggio...", + "saveConfig": "Salva Configurazione", + "helpText": "Inserisci l'URL dove il tuo server Termix è in esecuzione (es. http://localhost:30001 o https://tuo-server.com)", + "warning": "Avviso", + "notValidatedWarning": "URL non validata - assicurati che sia corretta", + "changeServer": "Cambia Server", + "mustIncludeProtocol": "L'URL del server deve iniziare con http:// o https://" + }, + "versionCheck": { + "error": "Errore Controllo Versione", + "checkFailed": "Impossibile controllare gli aggiornamenti", + "upToDate": "App Aggiornata", + "currentVersion": "Stai usando la versione {{version}}", + "updateAvailable": "Aggiornamento Disponibile", + "newVersionAvailable": "È disponibile una nuova versione! Stai usando {{current}}, ma {{latest}} è disponibile.", + "releasedOn": "Rilasciata il {{date}}", + "downloadUpdate": "Scarica Aggiornamento", + "dismiss": "Chiudi", + "checking": "Controllo aggiornamenti...", + "checkUpdates": "Controlla Aggiornamenti", + "checkingUpdates": "Controllo aggiornamenti...", + "refresh": "Aggiorna", + "updateRequired": "Aggiornamento Richiesto", + "updateDismissed": "Notifica aggiornamento chiusa", + "noUpdatesFound": "Nessun aggiornamento trovato" + }, + "common": { + "close": "Chiudi", + "minimize": "Riduci a icona", + "online": "Online", + "offline": "Offline", + "continue": "Continua", + "maintenance": "Manutenzione", + "degraded": "Degradato", + "discord": "Discord", + "error": "Errore", + "warning": "Avviso", + "info": "Info", + "success": "Successo", + "loading": "Caricamento...", + "required": "Obbligatorio", + "optional": "Opzionale", + "connect": "Connetti", + "connecting": "Connessione...", + "clear": "Pulisci", + "toggleSidebar": "Mostra/Nascondi Barra Laterale", + "sidebar": "Barra Laterale", + "home": "Home", + "expired": "Scaduto", + "expiresToday": "Scade oggi", + "expiresTomorrow": "Scade domani", + "expiresInDays": "Scade tra {{days}} giorni", + "updateAvailable": "Aggiornamento Disponibile", + "sshPath": "Percorso SSH", + "localPath": "Percorso Locale", + "noAuthCredentials": "Nessuna credenziale di autenticazione disponibile per questo host SSH", + "noReleases": "Nessuna Release", + "updatesAndReleases": "Aggiornamenti e Release", + "newVersionAvailable": "È disponibile una nuova versione ({{version}}).", + "failedToFetchUpdateInfo": "Impossibile recuperare le informazioni sull'aggiornamento", + "preRelease": "Pre-release", + "loginFailed": "Accesso fallito", + "noReleasesFound": "Nessuna release trovata.", + "yourBackupCodes": "I Tuoi Codici di Backup", + "sendResetCode": "Invia Codice di Reset", + "verifyCode": "Verifica Codice", + "resetPassword": "Reimposta Password", + "resetCode": "Codice di Reset", + "newPassword": "Nuova Password", + "folder": "Cartella", + "file": "File", + "renamedSuccessfully": "rinominato con successo", + "deletedSuccessfully": "eliminato con successo", + "noTunnelConnections": "Nessuna connessione tunnel configurata", "emptyHint": "Crea uno snippet per salvssuo i comei usai frequentemente", "name": "Nome", "description": "Descrizèue", @@ -341,6 +653,10 @@ "name": "Nome", "login": "Accedi", "logout": "Esci", + "register": "Registrati", + "password": "Password", + "version": "Versione", + "confirmPassword": "Conferma Password", "register": "Regètrai", "password": "Pcomeswod", "version": "Versèue", @@ -350,11 +666,45 @@ "submit": "Invia", "change": "Modifica", "save": "Salva", + "saving": "Salvataggio...", "saving": "Salvaaggio...", "delete": "Elimina", "edit": "Modifica", "add": "Aggiungi", "search": "Cerca", + "confirm": "Conferma", + "yes": "Sì", + "no": "No", + "ok": "OK", + "enabled": "Abilitato", + "disabled": "Disabilitato", + "important": "Importante", + "notEnabled": "Non Abilitato", + "settingUp": "Configurazione...", + "next": "Avanti", + "previous": "Precedente", + "refresh": "Aggiorna", + "settings": "Impostazioni", + "profile": "Profilo", + "help": "Aiuto", + "about": "Informazioni", + "language": "Lingua", + "autoDetect": "Rileva automaticamente", + "changeAccountPassword": "Cambia la password del tuo account", + "passwordResetTitle": "Reimposta Password", + "passwordResetDescription": "Stai per reimpostare la tua password. Questo ti disconnetterà da tutte le sessioni attive.", + "enterSixDigitCode": "Inserisci il codice a 6 cifre dai log del container docker per l'utente:", + "enterNewPassword": "Inserisci la tua nuova password per l'utente:", + "passwordsDoNotMatch": "Le password non corrispondono", + "passwordMinLength": "La password deve avere almeno 6 caratteri", + "passwordResetSuccess": "Password reimpostata con successo! Ora puoi accedere con la nuova password.", + "failedToInitiatePasswordReset": "Impossibile avviare il reset della password", + "failedToVerifyResetCode": "Impossibile verificare il codice di reset", + "failedToCompletePasswordReset": "Impossibile completare il reset della password", + "documentation": "Documentazione", + "retry": "Riprova", + "checking": "Controllo...", + "checkingDatabase": "Controllo connessione database..." "confirm": "Csuferma", "yes": "Sì", "no": "No", @@ -393,6 +743,273 @@ "home": "Home", "hosts": "Host", "credentials": "Credenziali", + "terminal": "Terminale", + "tunnels": "Tunnel", + "fileManager": "Gestione File", + "serverStats": "Statistiche Server", + "admin": "Amministrazione", + "userProfile": "Profilo Utente", + "tools": "Strumenti", + "snippets": "Snippet", + "newTab": "Nuova Scheda", + "splitScreen": "Schermo Diviso", + "closeTab": "Chiudi Scheda", + "sshManager": "Gestione SSH", + "hostManager": "Gestione Host", + "cannotSplitTab": "Impossibile dividere questa scheda", + "tabNavigation": "Navigazione Schede" + }, + "admin": { + "title": "Impostazioni Amministratore", + "oidc": "OIDC", + "users": "Utenti", + "userManagement": "Gestione Utenti", + "makeAdmin": "Rendi Amministratore", + "removeAdmin": "Rimuovi Amministratore", + "deleteUser": "Eliminare l'utente {{username}}? Questa operazione non può essere annullata.", + "allowRegistration": "Consenti Registrazione", + "oidcSettings": "Impostazioni OIDC", + "clientId": "ID Client", + "clientSecret": "Segreto Client", + "issuerUrl": "URL Issuer", + "authorizationUrl": "URL Autorizzazione", + "tokenUrl": "URL Token", + "updateSettings": "Aggiorna Impostazioni", + "confirmDelete": "Sei sicuro di voler eliminare questo utente?", + "confirmMakeAdmin": "Sei sicuro di voler rendere questo utente amministratore?", + "confirmRemoveAdmin": "Sei sicuro di voler rimuovere i privilegi di amministratore da questo utente?", + "externalAuthentication": "Autenticazione Esterna (OIDC)", + "configureExternalProvider": "Configura il provider di identità esterno per l'autenticazione OIDC/OAuth2.", + "userIdentifierPath": "Percorso Identificatore Utente", + "displayNamePath": "Percorso Nome Visualizzato", + "scopes": "Scope", + "saving": "Salvataggio...", + "saveConfiguration": "Salva Configurazione", + "reset": "Ripristina", + "success": "Successo", + "loading": "Caricamento...", + "refresh": "Aggiorna", + "loadingUsers": "Caricamento utenti...", + "username": "Nome Utente", + "type": "Tipo", + "actions": "Azioni", + "external": "Esterno", + "local": "Locale", + "adminManagement": "Gestione Amministratori", + "makeUserAdmin": "Rendi Utente Amministratore", + "adding": "Aggiunta...", + "currentAdmins": "Amministratori Attuali", + "adminBadge": "Amministratore", + "removeAdminButton": "Rimuovi Amministratore", + "general": "Generale", + "userRegistration": "Registrazione Utenti", + "allowNewAccountRegistration": "Consenti registrazione nuovi account", + "allowPasswordLogin": "Consenti login con nome utente/password", + "missingRequiredFields": "Campi obbligatori mancanti: {{fields}}", + "oidcConfigurationUpdated": "Configurazione OIDC aggiornata con successo!", + "failedToFetchOidcConfig": "Impossibile recuperare la configurazione OIDC", + "failedToFetchRegistrationStatus": "Impossibile recuperare lo stato della registrazione", + "failedToFetchPasswordLoginStatus": "Impossibile recuperare lo stato del login con password", + "failedToFetchUsers": "Impossibile recuperare gli utenti", + "oidcConfigurationDisabled": "Configurazione OIDC disabilitata con successo!", + "failedToUpdateOidcConfig": "Impossibile aggiornare la configurazione OIDC", + "failedToDisableOidcConfig": "Impossibile disabilitare la configurazione OIDC", + "enterUsernameToMakeAdmin": "Inserisci nome utente da rendere amministratore", + "userIsNowAdmin": "L'utente {{username}} è ora amministratore", + "failedToMakeUserAdmin": "Impossibile rendere l'utente amministratore", + "removeAdminStatus": "Rimuovere lo stato di amministratore da {{username}}?", + "adminStatusRemoved": "Stato di amministratore rimosso da {{username}}", + "failedToRemoveAdminStatus": "Impossibile rimuovere lo stato di amministratore", + "userDeletedSuccessfully": "Utente {{username}} eliminato con successo", + "failedToDeleteUser": "Impossibile eliminare l'utente", + "overrideUserInfoUrl": "Sovrascrivi URL Utente Info (non obbligatorio)", + "failedToFetchSessions": "Impossibile recuperare le sessioni", + "sessionRevokedSuccessfully": "Sessione revocata con successo", + "failedToRevokeSession": "Impossibile revocare la sessione", + "confirmRevokeSession": "Sei sicuro di voler revocare questa sessione?", + "confirmRevokeAllSessions": "Sei sicuro di voler revocare tutte le sessioni per questo utente?", + "failedToRevokeSessions": "Impossibile revocare le sessioni", + "sessionsRevokedSuccessfully": "Sessioni revocate con successo", + "linkToPasswordAccount": "Collega ad Account con Password", + "linkOIDCDialogTitle": "Collega Account OIDC ad Account con Password", + "linkOIDCDialogDescription": "Collega {{username}} (utente OIDC) a un account con password esistente. Questo abiliterà l'autenticazione doppia per l'account con password.", + "linkOIDCWarningTitle": "Attenzione: I Dati dell'Utente OIDC Saranno Eliminati", + "linkOIDCActionDeleteUser": "Elimina l'account utente OIDC e tutti i suoi dati", + "linkOIDCActionAddCapability": "Aggiungi la capacità di login OIDC all'account con password di destinazione", + "linkOIDCActionDualAuth": "Consenti all'account con password di accedere sia con password che con OIDC", + "linkTargetUsernameLabel": "Nome Utente Account Password di Destinazione", + "linkTargetUsernamePlaceholder": "Inserisci nome utente dell'account con password", + "linkAccountsButton": "Collega Account", + "linkingAccounts": "Collegamento...", + "accountsLinkedSuccessfully": "L'utente OIDC {{oidcUsername}} è stato collegato a {{targetUsername}}", + "failedToLinkAccounts": "Impossibile collegare gli account", + "linkTargetUsernameRequired": "Il nome utente di destinazione è obbligatorio", + "unlinkOIDCTitle": "Scollega Autenticazione OIDC", + "unlinkOIDCDescription": "Rimuovere l'autenticazione OIDC da {{username}}? L'utente potrà accedere solo con nome utente/password dopo questa operazione.", + "unlinkOIDCSuccess": "OIDC scollegato da {{username}}", + "failedToUnlinkOIDC": "Impossibile scollegare OIDC", + "databaseSecurity": "Sicurezza Database", + "encryptionStatus": "Stato Crittografia", + "encryptionEnabled": "Crittografia Abilitata", + "enabled": "Abilitato", + "disabled": "Disabilitato", + "keyId": "ID Chiave", + "created": "Creata", + "migrationStatus": "Stato Migrazione", + "migrationCompleted": "Migrazione completata", + "migrationRequired": "Migrazione richiesta", + "deviceProtectedMasterKey": "Chiave Master Protetta dall'Ambiente", + "legacyKeyStorage": "Storage Chiave Legacy", + "masterKeyEncryptedWithDeviceFingerprint": "Chiave master criptata con fingerprint ambiente (protezione KEK attiva)", + "keyNotProtectedByDeviceBinding": "Chiave non protetta dal binding ambiente (aggiornamento consigliato)", + "valid": "Valido", + "initializeDatabaseEncryption": "Inizializza Crittografia Database", + "enableAes256EncryptionWithDeviceBinding": "Abilita crittografia AES-256 con protezione chiave master legata all'ambiente. Questo crea sicurezza di livello enterprise per chiavi SSH, password e token di autenticazione.", + "featuresEnabled": "Funzionalità abilitate:", + "aes256GcmAuthenticatedEncryption": "Crittografia autenticata AES-256-GCM", + "deviceFingerprintMasterKeyProtection": "Protezione chiave master con fingerprint ambiente (KEK)", + "pbkdf2KeyDerivation": "Derivazione chiave PBKDF2 con 100K iterazioni", + "automaticKeyManagement": "Gestione automatica chiavi e rotazione", + "initializing": "Inizializzazione...", + "initializeEnterpriseEncryption": "Inizializza Crittografia Enterprise", + "migrateExistingData": "Migra Dati Esistenti", + "encryptExistingUnprotectedData": "Cripta i dati esistenti non protetti nel tuo database. Questo processo è sicuro e crea backup automatici.", + "testMigrationDryRun": "Verifica Compatibilità Crittografia", + "migrating": "Migrazione...", + "migrateData": "Migra Dati", + "securityInformation": "Informazioni Sicurezza", + "sshPrivateKeysEncryptedWithAes256": "Le chiavi private SSH e le password sono criptate con AES-256-GCM", + "userAuthTokensProtected": "I token di autenticazione utente e i segreti 2FA sono protetti", + "masterKeysProtectedByDeviceFingerprint": "Le chiavi master di crittografia sono protette dal fingerprint del dispositivo (KEK)", + "keysBoundToServerInstance": "Le chiavi sono legate all'ambiente server corrente (migrabile tramite variabili d'ambiente)", + "pbkdf2HkdfKeyDerivation": "Derivazione chiave PBKDF2 + HKDF con 100K iterazioni", + "backwardCompatibleMigration": "Tutti i dati rimangono retrocompatibili durante la migrazione", + "enterpriseGradeSecurityActive": "Sicurezza di Livello Enterprise Attiva", + "masterKeysProtectedByDeviceBinding": "Le tue chiavi master di crittografia sono protette dal fingerprinting dell'ambiente. Questo usa hostname del server, percorsi e altre info ambiente per generare chiavi di protezione. Per migrare i server, imposta la variabile d'ambiente DB_ENCRYPTION_KEY sul nuovo server.", + "important": "Importante", + "keepEncryptionKeysSecure": "Assicura la sicurezza dei dati: esegui regolarmente backup del file database e della configurazione server. Per migrare a un nuovo server, imposta la variabile d'ambiente DB_ENCRYPTION_KEY sul nuovo ambiente, o mantieni lo stesso hostname e struttura directory.", + "loadingEncryptionStatus": "Caricamento stato crittografia...", + "testMigrationDescription": "Verifica che i dati esistenti possano essere migrati in modo sicuro al formato criptato senza modificare effettivamente alcun dato", + "serverMigrationGuide": "Guida Migrazione Server", + "migrationInstructions": "Per migrare dati criptati a un nuovo server: 1) Backup file database, 2) Imposta variabile d'ambiente DB_ENCRYPTION_KEY=\"tua-chiave\" sul nuovo server, 3) Ripristina file database", + "environmentProtection": "Protezione Ambiente", + "environmentProtectionDesc": "Protegge le chiavi di crittografia basandosi sulle info ambiente del server (hostname, percorsi, ecc.), migrabile tramite variabili d'ambiente", + "verificationCompleted": "Verifica compatibilità completata - nessun dato modificato", + "verificationInProgress": "Verifica completata", + "dataMigrationCompleted": "Migrazione dati completata con successo!", + "verificationFailed": "Verifica compatibilità fallita", + "migrationFailed": "Migrazione fallita", + "runningVerification": "Esecuzione verifica compatibilità...", + "startingMigration": "Avvio migrazione...", + "hardwareFingerprintSecurity": "Sicurezza Fingerprint Hardware", + "hardwareBoundEncryption": "Crittografia Legata all'Hardware Attiva", + "masterKeysNowProtectedByHardwareFingerprint": "Le chiavi master sono ora protette dal fingerprinting hardware reale invece delle variabili d'ambiente", + "cpuSerialNumberDetection": "Rilevamento numero seriale CPU", + "motherboardUuidIdentification": "Identificazione UUID scheda madre", + "diskSerialNumberVerification": "Verifica numero seriale disco", + "biosSerialNumberCheck": "Controllo numero seriale BIOS", + "stableMacAddressFiltering": "Filtraggio indirizzo MAC stabile", + "databaseFileEncryption": "Crittografia File Database", + "dualLayerProtection": "Protezione a Doppio Livello Attiva", + "bothFieldAndFileEncryptionActive": "Sia la crittografia a livello di campo che quella a livello di file sono ora attive per la massima sicurezza", + "fieldLevelAes256Encryption": "Crittografia AES-256 a livello di campo per dati sensibili", + "fileLevelDatabaseEncryption": "Crittografia a livello di file del database con binding hardware", + "hardwareBoundFileKeys": "Chiavi di crittografia file legate all'hardware", + "automaticEncryptedBackups": "Creazione automatica backup criptati", + "createEncryptedBackup": "Crea Backup Criptato", + "creatingBackup": "Creazione Backup...", + "backupCreated": "Backup Creato", + "encryptedBackupCreatedSuccessfully": "Backup criptato creato con successo", + "backupCreationFailed": "Creazione backup fallita", + "databaseMigration": "Migrazione Database", + "exportForMigration": "Esporta per Migrazione", + "exportDatabaseForHardwareMigration": "Esporta database come file SQLite con dati decriptati per migrazione a nuovo hardware", + "exportDatabase": "Esporta Database SQLite", + "exporting": "Esportazione...", + "exportCreated": "Esportazione SQLite Creata", + "exportContainsDecryptedData": "L'esportazione SQLite contiene dati decriptati - mantienila sicura!", + "databaseExportedSuccessfully": "Database SQLite esportato con successo", + "databaseExportFailed": "Esportazione database SQLite fallita", + "importFromMigration": "Importa da Migrazione", + "importDatabaseFromAnotherSystem": "Importa database SQLite da un altro sistema o hardware", + "importDatabase": "Importa Database SQLite", + "importing": "Importazione...", + "selectedFile": "File SQLite Selezionato", + "importWillReplaceExistingData": "L'importazione SQLite sostituirà i dati esistenti - backup consigliato!", + "pleaseSelectImportFile": "Seleziona un file di importazione SQLite", + "databaseImportedSuccessfully": "Database SQLite importato con successo", + "databaseImportFailed": "Importazione database SQLite fallita", + "manageEncryptionAndBackups": "Gestisci chiavi di crittografia, sicurezza database e operazioni di backup", + "activeSecurityFeatures": "Misure di sicurezza e protezioni attualmente attive", + "deviceBindingTechnology": "Tecnologia avanzata di protezione chiavi basata su hardware", + "backupAndRecovery": "Creazione backup sicuri e opzioni di recupero database", + "crossSystemDataTransfer": "Esporta e importa database tra sistemi diversi", + "noMigrationNeeded": "Nessuna migrazione necessaria", + "encryptionKey": "Chiave di Crittografia", + "keyProtection": "Protezione Chiave", + "active": "Attivo", + "legacy": "Legacy", + "dataStatus": "Stato Dati", + "encrypted": "Criptato", + "needsMigration": "Richiede Migrazione", + "ready": "Pronto", + "initializeEncryption": "Inizializza Crittografia", + "initialize": "Inizializza", + "test": "Testa", + "migrate": "Migra", + "backup": "Backup", + "createBackup": "Crea Backup", + "exportImport": "Esporta/Importa", + "export": "Esporta", + "import": "Importa", + "passwordRequired": "Password obbligatoria", + "confirmExport": "Conferma Esportazione", + "exportDescription": "Esporta host SSH e credenziali come file SQLite", + "importDescription": "Importa file SQLite con merge incrementale (salta i duplicati)", + "criticalWarning": "Avviso Critico", + "cannotDisablePasswordLoginWithoutOIDC": "Impossibile disabilitare il login con password senza OIDC configurato! Devi configurare l'autenticazione OIDC prima di disabilitare il login con password, altrimenti perderai l'accesso a Termix.", + "confirmDisablePasswordLogin": "Sei sicuro di voler disabilitare il login con password? Assicurati che OIDC sia correttamente configurato e funzionante prima di procedere, altrimenti perderai l'accesso alla tua istanza Termix.", + "passwordLoginDisabled": "Login con password disabilitato con successo", + "passwordLoginAndRegistrationDisabled": "Login con password e registrazione nuovi account disabilitati con successo", + "requiresPasswordLogin": "Richiede login con password abilitato", + "passwordLoginDisabledWarning": "Il login con password è disabilitato. Assicurati che OIDC sia configurato correttamente o non potrai accedere a Termix.", + "oidcRequiredWarning": "CRITICO: Il login con password è disabilitato. Se resetti o configuri male OIDC, perderai tutti gli accessi a Termix e la tua istanza diventerà inaccessibile. Procedi solo se sei assolutamente sicuro.", + "confirmDisableOIDCWarning": "ATTENZIONE: Stai per disabilitare OIDC mentre il login con password è anche disabilitato. Questo renderà inaccessibile la tua istanza Termix e perderai tutti gli accessi. Sei assolutamente sicuro di voler procedere?", + "failedToUpdatePasswordLoginStatus": "Impossibile aggiornare lo stato del login con password" + }, + "hosts": { + "title": "Gestione Host", + "sshHosts": "Host SSH", + "noHosts": "Nessun Host SSH", + "noHostsMessage": "Non hai ancora aggiunto host SSH. Clicca \"Aggiungi Host\" per iniziare.", + "loadingHosts": "Caricamento host...", + "failedToLoadHosts": "Impossibile caricare gli host", + "retry": "Riprova", + "refresh": "Aggiorna", + "hostsCount": "{{count}} host", + "importJson": "Importa JSON", + "importing": "Importazione...", + "importJsonTitle": "Importa Host SSH da JSON", + "importJsonDesc": "Carica un file JSON per importare host SSH in blocco (max 100).", + "downloadSample": "Scarica Esempio", + "formatGuide": "Guida Formato", + "exportCredentialWarning": "Attenzione: L'host \"{{name}}\" usa autenticazione con credenziale. Il file esportato non includerà i dati della credenziale e dovrà essere riconfigurato manualmente dopo l'importazione. Vuoi continuare?", + "exportSensitiveDataWarning": "Attenzione: L'host \"{{name}}\" contiene dati di autenticazione sensibili (password/chiave SSH). Il file esportato includerà questi dati in testo semplice. Mantieni il file sicuro ed eliminalo dopo l'uso. Vuoi continuare?", + "uncategorized": "Non Categorizzata", + "confirmDelete": "Sei sicuro di voler eliminare \"{{name}}\"?", + "failedToDeleteHost": "Impossibile eliminare l'host", + "failedToExportHost": "Impossibile esportare l'host. Assicurati di aver effettuato l'accesso e di avere accesso ai dati dell'host.", + "jsonMustContainHosts": "Il JSON deve contenere un array \"host\" o essere un array di host", + "noHostsInJson": "Nessun host trovato nel file JSON", + "maxHostsAllowed": "Massimo 100 host consentiti per importazione", + "importCompleted": "Importazione completata: {{success}} riusciti, {{failed}} falliti", + "importFailed": "Importazione fallita", + "importError": "Errore di importazione", + "failedToImportJson": "Impossibile importare il file JSON", + "connectionDetails": "Dettagli Connessione", + "organization": "Organizzazione", + "ipAddress": "Indirizzo IP", + "port": "Porta", "terminal": "Terminalee", "tunnels": "Tunnel", "fileManager": "Gestèue File", @@ -664,6 +1281,70 @@ "username": "Nome Utente", "folder": "Cartella", "tags": "Tag", + "pin": "Fissa", + "passwordRequired": "La password è obbligatoria quando si usa l'autenticazione con password", + "sshKeyRequired": "La chiave privata SSH è obbligatoria quando si usa l'autenticazione con chiave", + "keyTypeRequired": "Il tipo di chiave è obbligatorio quando si usa l'autenticazione con chiave", + "mustSelectValidSshConfig": "Devi selezionare una configurazione SSH valida dalla lista", + "addHost": "Aggiungi Host", + "editHost": "Modifica Host", + "cloneHost": "Clona Host", + "updateHost": "Aggiorna Host", + "hostUpdatedSuccessfully": "Host \"{{name}}\" aggiornato con successo!", + "hostAddedSuccessfully": "Host \"{{name}}\" aggiunto con successo!", + "hostDeletedSuccessfully": "Host \"{{name}}\" eliminato con successo!", + "failedToSaveHost": "Impossibile salvare l'host. Riprova.", + "enableTerminal": "Abilita Terminale", + "enableTerminalDesc": "Abilita/disabilita la visibilità dell'host nella scheda Terminale", + "enableTunnel": "Abilita Tunnel", + "enableTunnelDesc": "Abilita/disabilita la visibilità dell'host nella scheda Tunnel", + "enableFileManager": "Abilita Gestione File", + "enableFileManagerDesc": "Abilita/disabilita la visibilità dell'host nella scheda Gestione File", + "defaultPath": "Percorso Predefinito", + "defaultPathDesc": "Directory predefinita quando si apre la gestione file per questo host", + "tunnelConnections": "Connessioni Tunnel", + "connection": "Connessione", + "remove": "Rimuovi", + "sourcePort": "Porta Sorgente", + "sourcePortDesc": " (Sorgente si riferisce ai Dettagli Connessione Corrente nella scheda Generale)", + "endpointPort": "Porta Endpoint", + "endpointSshConfig": "Configurazione SSH Endpoint", + "tunnelForwardDescription": "Questo tunnel inoltrerà il traffico dalla porta {{sourcePort}} sulla macchina sorgente (dettagli connessione corrente nella scheda generale) alla porta {{endpointPort}} sulla macchina endpoint.", + "maxRetries": "Tentativi Massimi", + "maxRetriesDescription": "Numero massimo di tentativi per la connessione tunnel.", + "retryInterval": "Intervallo Tentativi (secondi)", + "retryIntervalDescription": "Tempo di attesa tra i tentativi.", + "autoStartContainer": "Avvio Automatico all'Avvio del Container", + "autoStartDesc": "Avvia automaticamente questo tunnel quando il container si avvia", + "addConnection": "Aggiungi Connessione Tunnel", + "sshpassRequired": "Sshpass Richiesto per Autenticazione Password", + "sshpassRequiredDesc": "Per l'autenticazione con password nei tunnel, sshpass deve essere installato sul sistema.", + "otherInstallMethods": "Altri metodi di installazione:", + "debianUbuntuEquivalent": "(Debian/Ubuntu) o l'equivalente per il tuo OS.", + "or": "o", + "centosRhelFedora": "CentOS/RHEL/Fedora", + "macos": "macOS", + "windows": "Windows", + "sshServerConfigRequired": "Configurazione Server SSH Richiesta", + "sshServerConfigDesc": "Per le connessioni tunnel, il server SSH deve essere configurato per consentire il port forwarding:", + "gatewayPortsYes": "per vincolare le porte remote a tutte le interfacce", + "allowTcpForwardingYes": "per abilitare il port forwarding", + "permitRootLoginYes": "se usi l'utente root per il tunneling", + "editSshConfig": "Modifica /etc/ssh/sshd_config e riavvia SSH: sudo systemctl restart sshd", + "upload": "Carica", + "authentication": "Autenticazione", + "password": "Password", + "key": "Chiave", + "credential": "Credenziale", + "none": "Nessuno", + "selectCredential": "Seleziona Credenziale", + "selectCredentialPlaceholder": "Scegli una credenziale...", + "credentialRequired": "La credenziale è obbligatoria quando si usa l'autenticazione con credenziale", + "credentialDescription": "Selezionare una credenziale sovrascriverà il nome utente corrente e userà i dettagli di autenticazione della credenziale.", + "sshPrivateKey": "Chiave Privata SSH", + "keyPassword": "Password Chiave", + "keyType": "Tipo Chiave", + "autoDetect": "Rileva automaticamente", "pin": "Fèsa", "passwordRequired": "La pcomeswod è obbligaaia queo si usa l'autenticazèue csu pcomeswod", "sshKeyRequired": "La chiave privaa SSH è obbligaaia queo si usa l'autenticazèue csu chiave", @@ -738,6 +1419,167 @@ "rsaSha2512": "RSA SHA2-512", "uploadFile": "Carica File", "pasteKey": "Incolla Chiave", + "updateKey": "Aggiorna Chiave", + "existingKey": "Chiave esistente (clicca per cambiare)", + "existingCredential": "Credenziale esistente (clicca per cambiare)", + "addTagsSpaceToAdd": "aggiungi tag (spazio per aggiungere)", + "terminalBadge": "Terminale", + "tunnelBadge": "Tunnel", + "fileManagerBadge": "Gestione File", + "general": "Generale", + "terminal": "Terminale", + "tunnel": "Tunnel", + "fileManager": "Gestione File", + "serverStats": "Statistiche Server", + "hostViewer": "Visualizzatore Host", + "enableServerStats": "Abilita Statistiche Server", + "enableServerStatsDesc": "Abilita/disabilita la raccolta statistiche server per questo host", + "displayItems": "Elementi da Visualizzare", + "displayItemsDesc": "Scegli quali metriche visualizzare nella pagina statistiche server", + "enableCpu": "Utilizzo CPU", + "enableMemory": "Utilizzo Memoria", + "enableDisk": "Utilizzo Disco", + "enableNetwork": "Statistiche Rete (Prossimamente)", + "enableProcesses": "Conteggio Processi (Prossimamente)", + "enableUptime": "Tempo di Attività (Prossimamente)", + "enableHostname": "Nome Host (Prossimamente)", + "enableOs": "Sistema Operativo (Prossimamente)", + "customCommands": "Comandi Personalizzati (Prossimamente)", + "customCommandsDesc": "Definisci comandi personalizzati di spegnimento e riavvio per questo server", + "shutdownCommand": "Comando Spegnimento", + "rebootCommand": "Comando Riavvio", + "confirmRemoveFromFolder": "Sei sicuro di voler rimuovere \"{{name}}\" dalla cartella \"{{folder}}\"? L'host sarà spostato in \"Nessuna Cartella\".", + "removedFromFolder": "Host \"{{name}}\" rimosso dalla cartella con successo", + "failedToRemoveFromFolder": "Impossibile rimuovere l'host dalla cartella", + "folderRenamed": "Cartella \"{{oldName}}\" rinominata in \"{{newName}}\" con successo", + "failedToRenameFolder": "Impossibile rinominare la cartella", + "editFolderAppearance": "Modifica Aspetto Cartella", + "editFolderAppearanceDesc": "Personalizza il colore e l'icona della cartella", + "folderColor": "Colore Cartella", + "folderIcon": "Icona Cartella", + "preview": "Anteprima", + "folderAppearanceUpdated": "Aspetto cartella aggiornato con successo", + "failedToUpdateFolderAppearance": "Impossibile aggiornare l'aspetto della cartella", + "deleteAllHostsInFolder": "Elimina Tutti gli Host nella Cartella", + "confirmDeleteAllHostsInFolder": "Sei sicuro di voler eliminare tutti i {{count}} host nella cartella \"{{folder}}\"? Questa operazione non può essere annullata.", + "allHostsInFolderDeleted": "Eliminati {{count}} host dalla cartella \"{{folder}}\" con successo", + "failedToDeleteHostsInFolder": "Impossibile eliminare gli host nella cartella", + "movedToFolder": "Host \"{{name}}\" spostato in \"{{folder}}\" con successo", + "failedToMoveToFolder": "Impossibile spostare l'host nella cartella", + "statistics": "Statistiche", + "enabledWidgets": "Widget Abilitati", + "enabledWidgetsDesc": "Seleziona quali widget statistiche visualizzare per questo host", + "monitoringConfiguration": "Configurazione Monitoraggio", + "monitoringConfigurationDesc": "Configura con quale frequenza vengono controllati statistiche e stato del server", + "statusCheckEnabled": "Abilita Monitoraggio Stato", + "statusCheckEnabledDesc": "Controlla se il server è online o offline", + "statusCheckInterval": "Intervallo Controllo Stato", + "statusCheckIntervalDesc": "Con quale frequenza controllare se l'host è online (5s - 1h)", + "metricsEnabled": "Abilita Monitoraggio Metriche", + "metricsEnabledDesc": "Raccogli statistiche CPU, RAM, disco e altri dati di sistema", + "metricsInterval": "Intervallo Raccolta Metriche", + "metricsIntervalDesc": "Con quale frequenza raccogliere le statistiche del server (5s - 1h)", + "intervalSeconds": "secondi", + "intervalMinutes": "minuti", + "intervalValidation": "Gli intervalli di monitoraggio devono essere tra 5 secondi e 1 ora (3600 secondi)", + "monitoringDisabled": "Il monitoraggio del server è disabilitato per questo host", + "enableMonitoring": "Abilita il monitoraggio in Gestione Host → scheda Statistiche", + "monitoringDisabledBadge": "Monitoraggio Disattivato", + "statusMonitoring": "Stato", + "metricsMonitoring": "Metriche", + "terminalCustomizationNotice": "Nota: Le personalizzazioni del terminale funzionano solo su desktop (sito web e app Electron). Le app mobile e il sito web mobile usano le impostazioni predefinite del sistema.", + "terminalCustomization": "Personalizzazione Terminale", + "appearance": "Aspetto", + "behavior": "Comportamento", + "advanced": "Avanzate", + "themePreview": "Anteprima Tema", + "theme": "Tema", + "selectTheme": "Seleziona tema", + "chooseColorTheme": "Scegli un tema colore per il terminale", + "fontFamily": "Famiglia Font", + "selectFont": "Seleziona font", + "selectFontDesc": "Seleziona il font da usare nel terminale", + "fontSize": "Dimensione Font", + "fontSizeValue": "Dimensione Font: {{value}}px", + "adjustFontSize": "Regola la dimensione del font del terminale", + "letterSpacing": "Spaziatura Lettere", + "letterSpacingValue": "Spaziatura Lettere: {{value}}px", + "adjustLetterSpacing": "Regola la spaziatura tra i caratteri", + "lineHeight": "Altezza Riga", + "lineHeightValue": "Altezza Riga: {{value}}", + "adjustLineHeight": "Regola la spaziatura tra le righe", + "cursorStyle": "Stile Cursore", + "selectCursorStyle": "Seleziona stile cursore", + "cursorStyleBlock": "Blocco", + "cursorStyleUnderline": "Sottolineato", + "cursorStyleBar": "Barra", + "chooseCursorAppearance": "Scegli l'aspetto del cursore", + "cursorBlink": "Lampeggio Cursore", + "enableCursorBlink": "Abilita animazione lampeggio cursore", + "scrollbackBuffer": "Scrollback Buffer", + "scrollbackBufferValue": "Scrollback Buffer: {{value}} righe", + "scrollbackBufferDesc": "Numero di righe da mantenere nella cronologia di scorrimento", + "bellStyle": "Stile Campanella", + "selectBellStyle": "Seleziona stile campanella", + "bellStyleNone": "Nessuno", + "bellStyleSound": "Suono", + "bellStyleVisual": "Visivo", + "bellStyleBoth": "Entrambi", + "bellStyleDesc": "Come notificare quando il terminale emette un campanello", + "rightClickSelectsWord": "Tasto destro seleziona parola", + "rightClickSelectsWordDesc": "Abilita la selezione della parola sotto il cursore con tasto destro", + "fastScrollModifier": "Modificatore Scorrimento Veloce", + "selectModifier": "Seleziona modificatore", + "modifierAlt": "Alt", + "modifierCtrl": "Ctrl", + "modifierShift": "Shift", + "fastScrollModifierDesc": "Tasto da tenere premuto per scorrimento veloce", + "fastScrollSensitivity": "Sensibilità Scorrimento Veloce", + "fastScrollSensitivityValue": "Sensibilità Scorrimento Veloce: {{value}}", + "fastScrollSensitivityDesc": "Quanto più veloce è lo scorrimento veloce", + "minimumContrastRatio": "Rapporto Contrasto Minimo", + "minimumContrastRatioValue": "Rapporto Contrasto Minimo: {{value}}", + "minimumContrastRatioDesc": "Regola automaticamente i colori per migliorare la leggibilità", + "sshAgentForwarding": "Inoltro SSH Agent", + "sshAgentForwardingDesc": "Inoltra l'agente di autenticazione SSH all'host remoto", + "backspaceMode": "Modalità Backspace", + "selectBackspaceMode": "Seleziona modalità backspace", + "backspaceModeNormal": "Normale (DEL)", + "backspaceModeControlH": "Control-H", + "backspaceModeDesc": "Comportamento tasto Backspace per compatibilità", + "startupSnippet": "Snippet di Avvio", + "selectSnippet": "Seleziona Snippet", + "searchSnippets": "Cerca snippet...", + "snippetNone": "Nessuno", + "noneAuthTitle": "Autenticazione Keyboard-Interactive", + "noneAuthDescription": "Questo metodo di autenticazione userà l'autenticazione keyboard-interactive quando ci si connette al server SSH.", + "noneAuthDetails": "L'autenticazione keyboard-interactive consente al server di chiederti le credenziali durante la connessione. Questo è utile per server che richiedono autenticazione a più fattori o se non vuoi salvare le credenziali localmente.", + "forceKeyboardInteractive": "Forza Autenticazione Interattiva", + "forceKeyboardInteractiveDesc": "Forza l'autenticazione keyboard-interactive per i server che la richiedono", + "overrideCredentialUsername": "Sovrascrivi Nome Utente Credenziale", + "overrideCredentialUsernameDesc": "Usa un nome utente diverso da quello salvato nella credenziale. Questo ti permette di usare la stessa credenziale con nomi utente diversi.", + "jumpHosts": "Host di Salto", + "jumpHostsDescription": "Gli host di salto (conosciuti anche come bastion host) ti permettono di connetterti a un server di destinazione attraverso uno o più server intermedi. Questo è utile per accedere a server dietro firewall o in reti private.", + "jumpHostChain": "Catena Host di Salto", + "addJumpHost": "Aggiungi Host di Salto", + "selectServer": "Seleziona Server", + "searchServers": "Cerca server...", + "noServerFound": "Nessun server trovato", + "jumpHostsOrder": "Le connessioni saranno effettuate nell'ordine: Host di Salto 1 → Host di Salto 2 → ... → Server di Destinazione", + "quickActions": "Azioni Rapide", + "quickActionsDescription": "Le azioni rapide ti permettono di creare macro personalizzate che eseguono snippet SSH su questo server. Queste macro appariranno nella parte superiore della pagina Stato Server per un accesso rapido.", + "quickActionsList": "Lista Azioni Rapide", + "addQuickAction": "Aggiungi Azione Rapida", + "quickActionName": "Nome Azione", + "noSnippetFound": "Nessuno snippet trovato", + "quickActionsOrder": "Le macro azioni rapide appariranno nell'ordine elencato sopra nella pagina Stato Server", + "advancedAuthSettings": "Impostazioni Autenticazione Avanzate" + }, + "terminal": { + "title": "Terminale", + "connect": "Connetti all'Host", + "disconnect": "Disconnetti", + "clear": "Pulisci", "updateKey": "Aggèua Chiave", "existingKey": "Chiave esètente (clicca per cambèsuo)", "existingCredential": "Credenziale esètente (clicca per cambèsuo)", @@ -903,6 +1745,31 @@ "paste": "Incolla", "find": "Trova", "fullscreen": "Schermo Intero", + "splitHorizontal": "Dividi Orizzontalmente", + "splitVertical": "Dividi Verticalmente", + "closePanel": "Chiudi Pannello", + "reconnect": "Riconnetti", + "sessionEnded": "Sessione Terminata", + "connectionLost": "Connessione Persa", + "error": "ERRORE: {{message}}", + "disconnected": "Disconnesso", + "connectionClosed": "Connessione Chiusa", + "connectionError": "Errore Connessione: {{message}}", + "connected": "Connesso", + "sshConnected": "Connessione SSH stabilita", + "authError": "Autenticazione fallita: {{message}}", + "unknownError": "Errore Sconosciuto", + "messageParseError": "Impossibile analizzare il messaggio del server", + "websocketError": "Errore connessione WebSocket", + "connecting": "Connessione...", + "reconnecting": "Riconnessione... ({{attempt}}/{{max}})", + "reconnected": "Riconnesso", + "maxReconnectAttemptsReached": "Raggiunto il numero massimo di tentativi di riconnessione", + "connectionTimeout": "Timeout connessione", + "terminalTitle": "Terminale - {{host}}", + "terminalWithPath": "Terminale - {{host}}:{{path}}", + "runTitle": "Esecuzione {{command}} - {{host}}", + "totpRequired": "Autenticazione a Due Fattori Richiesta", "splitHorizontal": "Split Hoizsutal", "splitVertical": "Split Vertical", "closePanel": "Chiudi Panel", @@ -933,6 +1800,361 @@ "totpVerify": "Verifica" }, "fileManager": { + "title": "Gestione File", + "file": "File", + "folder": "Cartella", + "connectToSsh": "Connettiti a SSH per usare le operazioni sui file", + "uploadFile": "Carica File", + "downloadFile": "Scarica", + "extractArchive": "Estrai Archivio", + "extractingArchive": "Estrazione {{name}}...", + "archiveExtractedSuccessfully": "{{name}} estratto con successo", + "extractFailed": "Estrazione fallita", + "compressFile": "Comprimi File", + "compressFiles": "Comprimi File", + "compressFilesDesc": "Comprimi {{count}} elementi in un archivio", + "archiveName": "Nome Archivio", + "enterArchiveName": "Inserisci nome archivio...", + "compressionFormat": "Formato Compressione", + "selectedFiles": "File selezionati", + "andMoreFiles": "e {{count}} altri...", + "compress": "Comprimi", + "compressingFiles": "Compressione {{count}} elementi in {{name}}...", + "filesCompressedSuccessfully": "{{name}} creato con successo", + "compressFailed": "Compressione fallita", + "edit": "Modifica", + "preview": "Anteprima", + "previous": "Precedente", + "next": "Successivo", + "pageXOfY": "Pagina {{current}} di {{total}}", + "zoomOut": "Riduci", + "zoomIn": "Ingrandisci", + "newFile": "Nuovo File", + "newFolder": "Nuova Cartella", + "rename": "Rinomina", + "renameItem": "Rinomina Elemento", + "deleteItem": "Elimina Elemento", + "currentPath": "Percorso Corrente", + "uploadFileTitle": "Carica File", + "maxFileSize": "Max: 1GB (JSON) / 5GB (Binario) - File grandi supportati", + "removeFile": "Rimuovi File", + "clickToSelectFile": "Clicca per selezionare un file", + "chooseFile": "Scegli File", + "uploading": "Caricamento...", + "downloading": "Scaricamento...", + "uploadingFile": "Caricamento {{name}}...", + "uploadingLargeFile": "Caricamento file grande {{name}} ({{size}})...", + "downloadingFile": "Scaricamento {{name}}...", + "creatingFile": "Creazione {{name}}...", + "creatingFolder": "Creazione {{name}}...", + "deletingItem": "Eliminazione {{type}} {{name}}...", + "renamingItem": "Rinomina {{type}} {{oldName}} in {{newName}}...", + "createNewFile": "Crea Nuovo File", + "fileName": "Nome File", + "creating": "Creazione...", + "createFile": "Crea File", + "createNewFolder": "Crea Nuova Cartella", + "folderName": "Nome Cartella", + "createFolder": "Crea Cartella", + "warningCannotUndo": "Avviso: Questa operazione non può essere annullata", + "itemPath": "Percorso Elemento", + "thisIsDirectory": "Questa è una directory (sarà eliminata ricorsivamente)", + "deleting": "Eliminazione...", + "currentPathLabel": "Percorso Corrente", + "newName": "Nuovo Nome", + "thisIsDirectoryRename": "Questa è una directory", + "renaming": "Rinomina...", + "fileUploadedSuccessfully": "File caricato con successo", + "failedToUploadFile": "Impossibile caricare il file", + "fileDownloadedSuccessfully": "File \"{{name}}\" scaricato con successo", + "failedToDownloadFile": "Impossibile scaricare il file", + "noFileContent": "Nessun contenuto file ricevuto", + "filePath": "Percorso File", + "fileCreatedSuccessfully": "File creato con successo", + "failedToCreateFile": "Impossibile creare il file", + "folderCreatedSuccessfully": "Cartella creata con successo", + "failedToCreateFolder": "Impossibile creare la cartella", + "failedToCreateItem": "Impossibile creare l'elemento", + "operationFailed": "Operazione {{operation}} fallita per {{name}}: {{error}}", + "failedToResolveSymlink": "Impossibile risolvere collegamento simbolico", + "itemDeletedSuccessfully": "{{type}} eliminato con successo", + "itemsDeletedSuccessfully": "{{count}} elementi eliminati con successo", + "failedToDeleteItems": "Impossibile eliminare elementi", + "dragFilesToUpload": "Trascina i file qui per caricare", + "emptyFolder": "Questa cartella è vuota", + "itemCount": "{{count}} elementi", + "selectedCount": "{{count}} selezionati", + "searchFiles": "Cerca file...", + "upload": "Carica", + "selectHostToStart": "Seleziona un host per iniziare la gestione file", + "failedToConnect": "Impossibile connettersi a SSH", + "failedToLoadDirectory": "Impossibile caricare la directory", + "noSSHConnection": "Nessuna connessione SSH disponibile", + "enterFolderName": "Inserisci nome cartella", + "enterFileName": "Inserisci nome file", + "copy": "Copia", + "cut": "Taglia", + "paste": "Incolla", + "copyPath": "Copia Percorso", + "copyPaths": "Copia Percorsi", + "delete": "Elimina", + "properties": "Proprietà", + "refresh": "Aggiorna", + "downloadFiles": "Scarica {{count}} file nel Browser", + "copyFiles": "Copia {{count}} elementi", + "cutFiles": "Taglia {{count}} elementi", + "deleteFiles": "Elimina {{count}} elementi", + "filesCopiedToClipboard": "{{count}} elementi copiati negli appunti", + "filesCutToClipboard": "{{count}} elementi tagliati negli appunti", + "pathCopiedToClipboard": "Percorso copiato negli appunti", + "pathsCopiedToClipboard": "{{count}} percorsi copiati negli appunti", + "failedToCopyPath": "Impossibile copiare il percorso negli appunti", + "movedItems": "Spostati {{count}} elementi", + "failedToDeleteItem": "Impossibile eliminare l'elemento", + "itemRenamedSuccessfully": "{{type}} rinominato con successo", + "failedToRenameItem": "Impossibile rinominare l'elemento", + "download": "Scarica", + "permissions": "Permessi", + "size": "Dimensione", + "modified": "Modificato", + "path": "Percorso", + "confirmDelete": "Sei sicuro di voler eliminare {{count}} elemento/i?", + "uploadSuccess": "Caricamento completato", + "uploadFailed": "Caricamento fallito", + "downloadSuccess": "Scaricamento completato", + "downloadFailed": "Scaricamento fallito", + "permissionDenied": "Permesso negato", + "checkDockerLogs": "Controlla i log di Docker per informazioni dettagliate sull'errore", + "internalServerError": "Si è verificato un errore interno del server", + "serverError": "Errore del Server", + "error": "Errore", + "requestFailed": "Richiesta fallita con codice di stato", + "unknownFileError": "sconosciuto", + "cannotReadFile": "Impossibile leggere il file", + "noSshSessionId": "Nessun ID sessione SSH disponibile", + "noFilePath": "Nessun percorso file disponibile", + "noCurrentHost": "Nessun host corrente disponibile", + "fileSavedSuccessfully": "File salvato con successo", + "saveTimeout": "Operazione di salvataggio scaduta. Il file potrebbe essere stato salvato con successo, ma l'operazione ha richiesto troppo tempo. Controlla i log di Docker per confermare.", + "failedToSaveFile": "Impossibile salvare il file", + "deletedSuccessfully": "Eliminato con successo", + "connectToServer": "Connettiti a un Server", + "selectServerToEdit": "Seleziona un server dalla barra laterale per iniziare a modificare i file", + "fileOperations": "Operazioni File", + "confirmDeleteMessage": "Sei sicuro di voler eliminare {{name}}?", + "confirmDeleteSingleItem": "Sei sicuro di voler eliminare definitivamente \"{{name}}\"?", + "confirmDeleteMultipleItems": "Sei sicuro di voler eliminare definitivamente {{count}} elementi?", + "confirmDeleteMultipleItemsWithFolders": "Sei sicuro di voler eliminare definitivamente {{count}} elementi? Questo include cartelle e il loro contenuto.", + "confirmDeleteFolder": "Sei sicuro di voler eliminare la cartella \"{{name}}\" e tutto il suo contenuto?", + "deleteDirectoryWarning": "Questo eliminerà la cartella e tutto il suo contenuto.", + "actionCannotBeUndone": "Questa operazione non può essere annullata.", + "permanentDeleteWarning": "Questa operazione non può essere annullata. Gli elementi saranno eliminati definitivamente dal server.", + "recent": "Recenti", + "pinned": "Fissati", + "folderShortcuts": "Scorciatoie Cartelle", + "noRecentFiles": "Nessun file recente.", + "noPinnedFiles": "Nessun file fissato.", + "enterFolderPath": "Inserisci percorso cartella", + "noShortcuts": "Nessuna scorciatoia.", + "searchFilesAndFolders": "Cerca file e cartelle...", + "noFilesOrFoldersFound": "Nessun file o cartella trovato.", + "failedToConnectSSH": "Impossibile connettersi a SSH", + "failedToReconnectSSH": "Impossibile riconnettere sessione SSH", + "failedToListFiles": "Impossibile elencare i file", + "fetchHomeDataTimeout": "Recupero dati home scaduto", + "sshStatusCheckTimeout": "Controllo stato SSH scaduto", + "sshReconnectionTimeout": "Riconnessione SSH scaduta", + "saveOperationTimeout": "Operazione salvataggio scaduta", + "cannotSaveFile": "Impossibile salvare file", + "dragSystemFilesToUpload": "Trascina file di sistema qui per caricare", + "dragFilesToWindowToDownload": "Trascina file fuori dalla finestra per scaricare", + "openTerminalHere": "Apri Terminale Qui", + "run": "Esegui", + "saveToSystem": "Salva nel Sistema", + "selectLocationToSave": "Seleziona posizione per salvare", + "openTerminalInFolder": "Apri Terminale in Questa Cartella", + "openTerminalInFileLocation": "Apri Terminale nella Posizione del File", + "terminalWithPath": "Terminale - {{host}}:{{path}}", + "runningFile": "Esecuzione - {{file}}", + "onlyRunExecutableFiles": "Puoi eseguire solo file eseguibili", + "noHostSelected": "Nessun host selezionato", + "starred": "Preferiti", + "shortcuts": "Scorciatoie", + "directories": "Directory", + "removedFromRecentFiles": "Rimosso dai file recenti", + "removeFailed": "Rimozione fallita", + "unpinnedSuccessfully": "Rimossa spunta da \"{{name}}\" con successo", + "unpinFailed": "Rimozione spunta fallita", + "removedShortcut": "Rimosso scorciatoia \"{{name}}\"", + "removeShortcutFailed": "Rimozione scorciatoia fallita", + "clearedAllRecentFiles": "Cancellati tutti i file recenti", + "clearFailed": "Cancellazione fallita", + "removeFromRecentFiles": "Rimuovi dai file recenti", + "clearAllRecentFiles": "Cancella tutti i file recenti", + "unpinFile": "Rimuovi spunta file", + "removeShortcut": "Rimuovi scorciatoia", + "saveFilesToSystem": "Salva {{count}} file come...", + "pinFile": "Fissa file", + "addToShortcuts": "Aggiungi a scorciatoie", + "downloadToDefaultLocation": "Scarica in posizione predefinita", + "pasteFailed": "Impossibile incollare", + "noUndoableActions": "Nessuna azione da annullare", + "undoCopySuccess": "Annulla operazione copia: Eliminati {{count}} file copiati", + "undoCopyFailedDelete": "Annullamento fallito: Impossibile eliminare i file copiati", + "undoCopyFailedNoInfo": "Annullamento fallito: Trovate informazioni file copiati mancanti", + "undoMoveSuccess": "Annulla operazione spostamento: Spostati {{count}} file indietro alla posizione originale", + "undoMoveFailedMove": "Annullamento fallito: Impossibile spostare i file indietro", + "undoMoveFailedNoInfo": "Annullamento fallito: Trovate informazioni file spostati mancanti", + "undoDeleteNotSupported": "Operazione elimina non può essere annullata: I file sono stati eliminati definitivamente dal server", + "undoTypeNotSupported": "Tipo operazione annulla non supportato", + "undoOperationFailed": "Operazione annulla fallita", + "unknownError": "Errore sconosciuto", + "enterPath": "Inserisci percorso", + "editPath": "Modifica percorso", + "confirm": "Conferma", + "cancel": "Annulla", + "find": "Trova", + "replaceWith": "Sostituisci con...", + "replace": "Sostituisci", + "replaceAll": "Sostituisci Tutto", + "downloadInstead": "Scarica Invece", + "keyboardShortcuts": "Scorciatoie Tastiera", + "searchAndReplace": "Cerca & Sostituisci", + "editing": "Modifica", + "navigation": "Navigazione", + "code": "Codice", + "search": "Cerca", + "findNext": "Trova Successivo", + "findPrevious": "Trova Precedente", + "save": "Salva", + "selectAll": "Seleziona Tutto", + "undo": "Annulla", + "redo": "Ripeti", + "goToLine": "Vai alla riga", + "moveLineUp": "Sposta Riga Su", + "moveLineDown": "Sposta Riga Giù", + "toggleComment": "Attiva/disattiva commento", + "indent": "Aumenta indentazione", + "outdent": "Riduci indentazione", + "autoComplete": "Completamento Automatico", + "imageLoadError": "Impossibile caricare immagine", + "rotate": "Ruota", + "originalSize": "Dimensione Originale", + "startTyping": "Inizia a digitare...", + "unknownSize": "Dimensione sconosciuta", + "fileIsEmpty": "Il file è vuoto", + "largeFileWarning": "Avviso File Grande", + "largeFileWarningDesc": "Questo file è grande {{size}}, il che può causare problemi di prestazioni se aperto come testo.", + "fileNotFoundAndRemoved": "File \"{{name}}\" non trovato ed è stato rimosso dai file recenti/fissati", + "failedToLoadFile": "Impossibile caricare il file: {{error}}", + "serverErrorOccurred": "Si è verificato un errore del server. Riprova più tardi.", + "autoSaveFailed": "Salvataggio automatico fallito", + "fileAutoSaved": "File salvato automaticamente", + "moveFileFailed": "Impossibile spostare {{name}}", + "moveOperationFailed": "Operazione spostamento fallita", + "canOnlyCompareFiles": "Puoi confrontare solo due file", + "comparingFiles": "Confronto file: {{file1}} e {{file2}}", + "dragFailed": "Operazione trascinamento fallita", + "filePinnedSuccessfully": "File \"{{name}}\" fissato con successo", + "pinFileFailed": "Impossibile fissare il file", + "fileUnpinnedSuccessfully": "File \"{{name}}\" rimosso dai fissati con successo", + "unpinFileFailed": "Impossibile rimuovere il file dai fissati", + "shortcutAddedSuccessfully": "Scorciatoia cartella \"{{name}}\" aggiunta con successo", + "addShortcutFailed": "Impossibile aggiungere scorciatoia", + "operationCompletedSuccessfully": "{{operation}} {{count}} elementi con successo", + "operationCompleted": "{{operation}} {{count}} elementi", + "downloadFileSuccess": "File {{name}} scaricato con successo", + "downloadFileFailed": "Scaricamento fallito", + "moveTo": "Sposta in {{name}}", + "diffCompareWith": "Confronta Diff con {{name}}", + "dragOutsideToDownload": "Trascina fuori dalla finestra per scaricare ({{count}} file)", + "newFolderDefault": "NuovaCartella", + "newFileDefault": "NuovoFile.txt", + "successfullyMovedItems": "Spostati con successo {{count}} elementi in {{target}}", + "move": "Sposta", + "searchInFile": "Cerca nel file (Ctrl+F)", + "showKeyboardShortcuts": "Mostra scorciatoie tastiera", + "startWritingMarkdown": "Inizia a scrivere il tuo contenuto markdown...", + "loadingFileComparison": "Caricamento confronto file...", + "reload": "Ricarica", + "compare": "Confronta", + "sideBySide": "Fianco a Fianco", + "inline": "In linea", + "fileComparison": "Confronto File: {{file1}} vs {{file2}}", + "fileTooLarge": "File troppo grande: {{error}}", + "sshConnectionFailed": "Connessione SSH fallita. Per favore controlla la tua connessione a {{name}} ({{ip}}:{{port}})", + "loadFileFailed": "Impossibile caricare file: {{error}}", + "connectedSuccessfully": "Connesso con successo", + "totpVerificationFailed": "Verifica TOTP fallita", + "changePermissions": "Cambia Permessi", + "changePermissionsDesc": "Modifica permessi file per", + "currentPermissions": "Permessi Correnti", + "newPermissions": "Nuovi Permessi", + "owner": "Proprietario", + "group": "Gruppo", + "others": "Altri", + "read": "Lettura", + "write": "Scrittura", + "execute": "Esecuzione", + "permissionsChangedSuccessfully": "Permessi modificati con successo", + "failedToChangePermissions": "Impossibile modificare i permessi" + }, + "tunnels": { + "title": "Tunnel SSH", + "noSshTunnels": "Nessun Tunnel SSH", + "createFirstTunnelMessage": "Crea il tuo primo tunnel SSH per iniziare. Usa la Gestione Host per aggiungere host con configurazione tunnel.", + "connected": "Connesso", + "disconnected": "Disconnesso", + "connecting": "Connessione...", + "disconnecting": "Disconnessione...", + "unknownTunnelStatus": "Sconosciuto", + "unknown": "Sconosciuto", + "error": "Errore", + "failed": "Fallito", + "retrying": "Riprovo...", + "waiting": "In attesa...", + "waitingForRetry": "In attesa di riprovare", + "retryingConnection": "Nuovo tentativo di connessione", + "canceling": "Annullamento...", + "connect": "Connetti", + "disconnect": "Disconnetti", + "cancel": "Annulla", + "port": "Porta", + "attempt": "Tentativo {{current}} di {{max}}", + "nextRetryIn": "Prossimo tentativo in {{seconds}} secondi", + "checkDockerLogs": "Controlla i tuoi log Docker per la ragione dell'errore, unisciti al", + "noTunnelConnections": "Nessuna connessione tunnel configurata", + "tunnelConnections": "Connessioni Tunnel", + "addTunnel": "Aggiungi Tunnel", + "editTunnel": "Modifica Tunnel", + "deleteTunnel": "Elimina Tunnel", + "tunnelName": "Nome Tunnel", + "localPort": "Porta Locale", + "remoteHost": "Host Remoto", + "remotePort": "Porta Remota", + "autoStart": "Avvio Auomatico", + "status": "Stato", + "active": "Attivo", + "inactive": "Inattivo", + "start": "Avvia", + "stop": "Ferma", + "restart": "Riavvia", + "connectionType": "Tipo Connessione", + "local": "Locale", + "remote": "Remoto", + "dynamic": "Dinamico", + "unknownConnectionStatus": "Sconosciuto", + "portMapping": "Porta {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", + "endpointHostNotFound": "Host endpoint non trovato", + "discord": "Discord", + "githubIssue": "Issue GitHub", + "forHelp": "per aiuto" + }, + "serverStats": { + "title": "Statistiche Server", + "cpu": "CPU", + "memory": "Memoria", + "disk": "Disco", "title": "Gestèue File", "file": "File", "folder": "Cartella", @@ -1292,6 +2514,38 @@ "uptime": "Tempo di Attività", "loadAverage": "Carico Medio", "processes": "Processi", + "connections": "Connessioni", + "usage": "Utilizzo", + "available": "Disponibile", + "total": "Totale", + "free": "Libero", + "used": "Usata", + "percentage": "Percentuale", + "refreshStatusAndMetrics": "Aggiorna stato e metriche", + "refreshStatus": "Aggiorna Stato", + "fileManagerAlreadyOpen": "Gestione File già aperta per questo host", + "openFileManager": "Apri Gestione File", + "cpuCores_one": "{{count}} CPU", + "cpuCores_other": "{{count}} CPU", + "naCpus": "N/D CPU", + "loadAverageNA": "Media: N/D", + "cpuUsage": "Uso CPU", + "memoryUsage": "Uso Memoria", + "diskUsage": "Uso Disco", + "rootStorageSpace": "Spazio di Archiviazione Root", + "of": "di", + "feedbackMessage": "Hai idee per cosa dovrebbe arrivare dopo per la gestione server? Condividile su", + "failedToFetchHostConfig": "Impossibile recuperare configurazione host", + "failedToFetchStatus": "Impossibile recuperare stato server", + "failedToFetchMetrics": "Impossibile recuperare metriche server", + "failedToFetchHomeData": "Impossibile recuperare dati home", + "loadingMetrics": "Caricamento metriche...", + "refreshing": "Aggiornamento...", + "serverOffline": "Server Offline", + "cannotFetchMetrics": "Impossibile recuperare metriche da server offline", + "totpRequired": "Autenticazione TOTP Richiesta", + "totpUnavailable": "Stato Server non disponibile per server con TOTP abilitato", + "load": "Carico", "connections": "Csunessèui", "usage": "Utilizzo", "available": "Dèpsuibile", @@ -1328,6 +2582,226 @@ "cancelEdit": "Annulla", "addWidget": "Aggiungi Widget", "saveLayout": "Salva Layout", + "unsavedChanges": "Modifiche non salvate", + "layoutSaved": "Layout salvato con successo", + "failedToSaveLayout": "Impossibile salvare il layout", + "systemInfo": "Informazioni Sistema", + "hostname": "Nome Host", + "operatingSystem": "Sistema Operativo", + "kernel": "Kernel", + "totalUptime": "Tempo di Attività Totale", + "seconds": "secondi", + "networkInterfaces": "Interfacce di Rete", + "noInterfacesFound": "Nessuna interfaccia di rete trovata", + "totalProcesses": "Processi Totali", + "running": "In esecuzione", + "noProcessesFound": "Nessun processo trovato", + "loginStats": "Statistiche Accessi", + "totalLogins": "Accessi Totali", + "uniqueIPs": "IP Unici", + "recentSuccessfulLogins": "Accessi Riusciti Recenti", + "recentFailedAttempts": "Tentativi Falliti Recenti", + "noRecentLoginData": "Nessun dato di accesso recente", + "from": "da", + "quickActions": "Azioni Rapide", + "executeQuickAction": "Esegui {{name}}", + "executingQuickAction": "Esecuzione {{name}}...", + "quickActionSuccess": "{{name}} completata con successo", + "quickActionFailed": "{{name}} fallita", + "quickActionError": "Impossibile eseguire {{name}}" + }, + "auth": { + "tagline": "GESTORE SERVER SSH", + "description": "Gestione connessioni SSH sicura, potente e intuitiva", + "welcomeBack": "Bentornato su TERMIX", + "createAccount": "Crea il tuo account TERMIX", + "continueExternal": "Continua con provider esterno", + "loginTitle": "Accedi a Termix", + "registerTitle": "Crea Account", + "loginButton": "Accedi", + "registerButton": "Registrati", + "forgotPassword": "Password Dimenticata?", + "rememberMe": "Ricordami", + "noAccount": "Non hai un account?", + "hasAccount": "Hai già un account?", + "loginSuccess": "Accesso effettuato con successo", + "loginFailed": "Accesso fallito", + "registerSuccess": "Registrazione completata con successo", + "registerFailed": "Registrazione fallita", + "logoutSuccess": "Disconnessione effettuata con successo", + "invalidCredentials": "Credenziali non valide", + "accountCreated": "Account creato con successo", + "passwordReset": "Link reimpostazione password inviato", + "twoFactorAuth": "Autenticazione a Due Fattori", + "enterCode": "Inserisci codice", + "backupCode": "O usa codice di backup", + "verifyCode": "Verifica Codice", + "redirectingToApp": "Reindirizzamento all'app...", + "enableTwoFactor": "Abilita Autenticazione a Due Fattori", + "disableTwoFactor": "Disabilita Autenticazione a Due Fattori", + "scanQRCode": "Scansiona il codice QR", + "backupCodes": "Codici di Backup", + "saveBackupCodes": "Salva questi codici di backup in un luogo sicuro", + "twoFactorEnabledSuccess": "Autenticazione a due fattori abilitata con successo!", + "twoFactorDisabled": "Autenticazione a due fattori disabilitata", + "newBackupCodesGenerated": "Nuovi codici di backup generati", + "backupCodesDownloaded": "Codici di backup scaricati", + "pleaseEnterSixDigitCode": "Per favore inserisci un codice a 6 cifre", + "invalidVerificationCode": "Codice di verifica non valido", + "failedToDisableTotp": "Impossibile disabilitare TOTP", + "failedToGenerateBackupCodes": "Impossibile generare codici di backup", + "enterPassword": "Inserisci password", + "lockedOidcAuth": "Bloccato (Auth OIDC)", + "twoFactorTitle": "Autenticazione a Due Fattori", + "twoFactorProtected": "Il tuo account è protetto con autenticazione a due fattori", + "twoFactorActive": "L'autenticazione a due fattori è attualmente attiva sul tuo account", + "disable2FA": "Disabilita 2FA", + "disableTwoFactorWarning": "Disabilitare l'autenticazione a due fattori renderà il tuo account meno sicuro", + "passwordOrTotpCode": "Password o Codice TOTP", + "or": "O", + "generateNewBackupCodesText": "Genera nuovi codici di backup se hai perso quelli esistenti", + "generateNewBackupCodes": "Genera Nuovi Codici di Backup", + "yourBackupCodes": "I Tuoi Codici di Backup", + "download": "Scarica", + "setupTwoFactorTitle": "Configura Autenticazione a Due Fattori", + "sshAuthenticationRequired": "Autenticazione SSH Obbligatoria", + "sshNoKeyboardInteractive": "Autenticazione Keyboard-Interactive Non Disponibile", + "sshAuthenticationFailed": "Autenticazione Fallita", + "sshAuthenticationTimeout": "Timeout Autenticazione", + "sshNoKeyboardInteractiveDescription": "Il server non supporta l'autenticazione keyboard-interactive. Per favore fornisci la tua password o chiave SSH.", + "sshAuthFailedDescription": "Le credenziali fornite non erano corrette. Riprova con credenziali valide.", + "sshTimeoutDescription": "Il tentativo di autenticazione è scaduto. Riprova.", + "sshProvideCredentialsDescription": "Per favore fornisci le tue credenziali SSH per connetterti a questo server.", + "sshPasswordDescription": "Inserisci la password per questa connessione SSH.", + "sshKeyPasswordDescription": "Se la tua chiave SSH è criptata, inserisci la passphrase qui.", + "step1ScanQR": "Passo 1: Scansiona il codice QR con la tua app authenticator", + "manualEntryCode": "Inserimento Manuale Codice", + "cannotScanQRText": "Se non puoi scansionare il codice QR, inserisci questo codice manualmente nella tua app authenticator", + "nextVerifyCode": "Avanti: Verifica Codice", + "verifyAuthenticator": "Verifica il tuo Authenticator", + "step2EnterCode": "Passo 2: Inserisci il codice a 6 cifre dalla tua app authenticator", + "verificationCode": "Codice Verifica", + "back": "Indietro", + "verifyAndEnable": "Verifica e Abilita", + "saveBackupCodesTitle": "Salva i Tuoi Codici di Backup", + "step3StoreCodesSecurely": "Passo 3: Salva questi codici in un luogo sicuro", + "importantBackupCodesText": "Salva questi codici di backup in una posizione sicura. Puoi usarli per accedere al tuo account se perdi il tuo dispositivo authenticator.", + "completeSetup": "Completa Configurazione", + "notEnabledText": "L'autenticazione a due fattori aggiunge un livello extra di sicurezza richiedendo un codice dalla tua app authenticator durante l'accesso.", + "enableTwoFactorButton": "Abilita Autenticazione a Due Fattori", + "addExtraSecurityLayer": "Aggiungi un livello extra di sicurezza al tuo account", + "firstUser": "Primo Utente", + "firstUserMessage": "Sei il primo utente e sarai reso amministratore. Puoi visualizzare le impostazioni amministratore nel menu utente della barra laterale. Se pensi che questo sia un errore, controlla i log del container docker, o crea una GitHub issue.", + "external": "Esterno", + "loginWithExternal": "Accedi con Provider Esterno", + "loginWithExternalDesc": "Accedi usando il tuo provider di identità esterno configurato", + "externalNotSupportedInElectron": "L'autenticazione esterna non è ancora supportata nell'app Electron. Per favore usa la versione web per il login OIDC.", + "resetPasswordButton": "Reimposta Password", + "sendResetCode": "Invia Codice di Reset", + "resetCodeDesc": "Inserisci il tuo nome utente per ricevere un codice di reset password. Il codice sarà registrato nei log del container docker.", + "resetCode": "Codice di Reset", + "verifyCodeButton": "Verifica Codice", + "enterResetCode": "Inserisci il codice a 6 cifre dai log del container docker per l'utente:", + "goToLogin": "Vai al Login", + "newPassword": "Nuova Password", + "confirmNewPassword": "Conferma Password", + "enterNewPassword": "Inserisci nuova password", + "signUp": "Registrati", + "mobileApp": "App Mobile", + "loggingInToMobileApp": "Accesso all'app mobile", + "desktopApp": "App Desktop", + "loggingInToDesktopApp": "Accesso all'app desktop", + "loggingInToDesktopAppViaWeb": "Accesso all'app desktop via interfaccia web", + "loadingServer": "Caricamento server...", + "authenticating": "Autenticazione...", + "dataLossWarning": "Reimpostare la password in questo modo eliminerà tutti i tuoi host SSH salvati, credenziali, e altri dati criptati. Questa operazione non può essere annullata. Usa questa opzione solo se hai dimenticato la password e non sei loggato.", + "authenticationDisabled": "Autenticazione Disabilitata", + "authenticationDisabledDesc": "Tutti i metodi di autenticazione sono attualmente disabilitati. Per favore contatta il tuo amministratore.", + "passwordResetSuccess": "Password reimpostata con successo", + "passwordResetSuccessDesc": "La tua password è stata reimpostata con successo. Ora puoi accedere con la nuova password." + }, + "errors": { + "notFound": "Non trovato", + "unauthorized": "Non autorizzato", + "forbidden": "Accesso negato", + "serverError": "Errore del server", + "networkError": "Errore di rete", + "databaseConnection": "Impossibile connettersi al database", + "unknownError": "Errore sconosciuto", + "loginFailed": "Accesso fallito", + "failedPasswordReset": "Impossibile avviare il reset della password", + "failedVerifyCode": "Impossibile verificare il codice di reset", + "failedCompleteReset": "Impossibile completare il reset della password", + "invalidTotpCode": "Codice TOTP non valido", + "failedOidcLogin": "Impossibile avviare login OIDC", + "failedUserInfo": "Impossibile ottenere info utente dopo login OIDC", + "oidcAuthFailed": "Autenticazione OIDC fallita", + "noTokenReceived": "Nessun token ricevuto dal login", + "invalidAuthUrl": "URL autorizzazione non valido ricevuto dal backend", + "invalidInput": "Input non valido", + "requiredField": "Campo obbligatorio", + "minLength": "Lunghezza minima è {{min}}", + "maxLength": "Lunghezza massima è {{max}}", + "invalidEmail": "Indirizzo email non valido", + "passwordMismatch": "Le password non corrispondono", + "passwordLoginDisabled": "Il login nome utente/password è attualmente disabilitato", + "weakPassword": "Password troppo debole", + "usernameExists": "Il nome utente esiste già", + "emailExists": "L'email esiste già", + "loadFailed": "Impossibile caricare i dati", + "saveError": "Impossibile salvare", + "sessionExpired": "Sessione scaduta" + }, + "messages": { + "saveSuccess": "Salvato con successo", + "saveError": "Impossibile salvare", + "deleteSuccess": "Eliminato con successo", + "deleteError": "Impossibile eliminare", + "updateSuccess": "Aggiornato con successo", + "updateError": "Impossibile aggiornare", + "copySuccess": "Copiato negli appunti", + "copyError": "Impossibile copiare", + "copiedToClipboard": "Copiato negli appunti", + "connectionEstablished": "Connessione stabilita", + "connectionClosed": "Connessione chiusa", + "reconnecting": "Riconnessione...", + "processing": "Elaborazione...", + "pleaseWait": "Attendere...", + "registrationDisabled": "La registrazione di nuovi account è attualmente disabilitata da un amministratore. Per favore accedi o contatta un amministratore.", + "databaseConnected": "Database connesso con successo", + "databaseConnectionFailed": "Impossibile connettersi al server database", + "checkServerConnection": "Per favore controlla la connessione al server e riprova", + "resetCodeSent": "Codice di reset inviato ai log Docker", + "codeVerified": "Codice verificato con successo", + "passwordResetSuccess": "Password reimpostata con successo", + "loginSuccess": "Accesso effettuato con successo", + "registrationSuccess": "Registrazione completata con successo" + }, + "profile": { + "title": "Profilo Utente", + "description": "Gestisci le impostazioni del tuo account e la sicurezza", + "security": "Sicurezza", + "changePassword": "Cambia Password", + "twoFactorAuth": "Autenticazione a Due Fattori", + "accountInfo": "Informazioni Account", + "role": "Ruolo", + "admin": "Amministratore", + "user": "Utente", + "authMethod": "Metodo Autenticazione", + "local": "Locale", + "external": "Esterno (OIDC)", + "externalAndLocal": "Doppia Autenticazione", + "selectPreferredLanguage": "Seleziona la tua lingua preferita per l'interfaccia", + "fileColorCoding": "Colorazione File", + "fileColorCodingDesc": "Colora file per tipo: cartelle (rosso), file (blu), link simbolici (verde)", + "commandAutocomplete": "Autocompletamento Comandi", + "commandAutocompleteDesc": "Abilita suggerimenti autocompletamento tasto Tab per i comandi terminale basati sulla tua cronologia comandi", + "currentPassword": "Password Attuale", + "passwordChangedSuccess": "Password cambiata con successo! Per favore accedi di nuovo.", + "failedToChangePassword": "Impossibile cambiare la password. Per favore controlla la tua password attuale e riprova." + }, + "user": { + "failedToLoadVersionInfo": "Impossibile caricare informazioni versione" "unsavedChanges": "Unsalvad changes", "layoutSaved": "Layout salvad csu successoo", "failedToSaveLayout": "Impossibile salva layout", @@ -1555,6 +3029,72 @@ "port": "22", "maxRetries": "3", "retryInterval": "10", + "language": "Lingua", + "username": "nome utente", + "hostname": "nome host", + "folder": "Cartella", + "password": "password", + "keyPassword": "password chiave", + "pastePrivateKey": "Incolla la tua chiave privata qui...", + "pastePublicKey": "Incolla la tua chiave pubblica qui...", + "credentialName": "Mio Server SSH", + "description": "Descrizione (opzionale)", + "searchCredentials": "Cerca credenziali per nome, utente o tag...", + "sshConfig": "configurazione ssh endpoint", + "homePath": "/home", + "clientId": "client-id", + "clientSecret": "client-secret", + "authUrl": "https://tuo-provider.com/applicazione/o/authorize/", + "redirectUrl": "https://tuo-provider.com/applicazione/o/termix/", + "tokenUrl": "https://tuo-provider.com/applicazione/o/token/", + "userIdField": "sub", + "usernameField": "name", + "scopes": "openid email profile", + "userinfoUrl": "https://tuo-provider.com/applicazione/o/userinfo/", + "enterUsername": "Inserisci nome utente da rendere amministratore", + "searchHosts": "Cerca host per nome, nome utente, IP, cartella, tag...", + "enterPassword": "Inserisci la tua password", + "totpCode": "Codice TOTP a 6 cifre", + "searchHostsAny": "Cerca host per qualsiasi info...", + "confirmPassword": "Inserisci la tua password per conferma", + "typeHere": "Scrivi qui", + "fileName": "Inserisci nome file (es. esempio.txt)", + "folderName": "Inserisci nome cartella", + "fullPath": "Inserisci percorso completo", + "currentPath": "Inserisci percorso corrente", + "newName": "Inserisci nuovo nome" + }, + "leftSidebar": { + "failedToLoadHosts": "Impossibile caricare gli host", + "noFolder": "Nessuna Cartella", + "passwordRequired": "La password è obbligatoria", + "failedToDeleteAccount": "Impossibile eliminare l'account", + "failedToMakeUserAdmin": "Impossibile rendere l'utente amministratore", + "userIsNowAdmin": "L'utente {{username}} è ora amministratore", + "removeAdminConfirm": "Sei sicuro di voler rimuovere lo stato di amministratore da {{username}}?", + "deleteUserConfirm": "Sei sicuro di voler eliminare l'utente {{username}}? Questa operazione non può essere annullata.", + "deleteAccount": "Elimina Account", + "closeDeleteAccount": "Chiudi Elimina Account", + "deleteAccountWarning": "Questa operazione non può essere annullata. Questo eliminerà permanentemente il tuo account e tutti i dati associati.", + "deleteAccountWarningDetails": "Eliminare il tuo account rimuoverà tutti i tuoi dati inclusi host SSH, configurazioni e impostazioni. Questa operazione è irreversibile.", + "deleteAccountWarningShort": "Questa operazione non è reversibile e eliminerà permanentemente il tuo account.", + "cannotDeleteAccount": "Impossibile Eliminare Account", + "lastAdminWarning": "Sei l'ultimo utente amministratore. Non puoi eliminare il tuo account perché questo lascerebbe il sistema senza amministratori. Rendi prima un altro utente amministratore, o contatta il supporto di sistema.", + "confirmPassword": "Conferma Password", + "deleting": "Eliminazione...", + "cancel": "Annulla" + }, + "interface": { + "sidebar": "Barra Laterale", + "toggleSidebar": "Mostra/Nascondi Barra Laterale", + "close": "Chiudi", + "online": "Online", + "offline": "Offline", + "maintenance": "Manutenzione", + "degraded": "Degradato", + "noTunnelConnections": "Nessuna connessione tunnel configurata", + "discord": "Discord", + "connectToSshForOperations": "Connettiti a SSH per usare le operazioni file", "language": "Language", "username": "nome utente", "hostname": "host nome", @@ -1625,6 +3165,45 @@ "newFile": "Nuovo File", "newFolder": "Nuova Cartella", "rename": "Rinomina", + "deleteItem": "Elimina Elemento", + "createNewFile": "Crea Nuovo File", + "createNewFolder": "Crea Nuova Cartella", + "renameItem": "Rinomina Elemento", + "clickToSelectFile": "Clicca per selezionare un file", + "noSshHosts": "Nessun Host SSH", + "sshHosts": "Host SSH", + "importSshHosts": "Importa Host SSH da JSON", + "clientId": "ID Client", + "clientSecret": "Segreto Client", + "error": "Errore", + "warning": "Avviso", + "deleteAccount": "Elimina Account", + "closeDeleteAccount": "Chiudi Elimina Account", + "cannotDeleteAccount": "Impossibile Eliminare Account", + "confirmPassword": "Conferma Password", + "deleting": "Eliminazione...", + "externalAuth": "Autenticazione Esterna (OIDC)", + "configureExternalProvider": "Configura provider identità esterno per", + "waitingForRetry": "In attesa di riprovare", + "retryingConnection": "Nuovo tentativo di connessione", + "resetSplitSizes": "Ripristina dimensioni divisione", + "sshManagerAlreadyOpen": "Gestore SSH già aperto", + "disabledDuringSplitScreen": "Disabilitato durante schermo diviso", + "unknown": "Sconosciuto", + "connected": "Connesso", + "disconnected": "Disconnesso", + "maxRetriesExhausted": "Tentativi massimi esauriti", + "endpointHostNotFound": "Host endpoint non trovato", + "administrator": "Amministratore", + "user": "Utente", + "external": "Esterno", + "local": "Locale", + "saving": "Salvataggio...", + "saveConfiguration": "Salva Configurazione", + "loading": "Caricamento...", + "refresh": "Aggiorna", + "adding": "Aggiunta...", + "makeAdmin": "Rendi Amministratore", "deleteItem": "Elimina Elemena", "createNewFile": "Crea Nuovo File", "createNewFolder": "Crea Nuova Cartella", @@ -1668,6 +3247,91 @@ "verifyAndEnable": "Verifica e Abilita", "secretKey": "Chiave segreta", "totpQrCode": "Codice QR TOTP", + "passwordRequired": "La password è obbligatoria quando si usa l'autenticazione con password", + "sshKeyRequired": "La chiave privata SSH è obbligatoria quando si usa l'autenticazione con chiave", + "keyTypeRequired": "Il tipo di chiave è obbligatorio quando si usa l'autenticazione con chiave", + "validSshConfigRequired": "Devi selezionare una configurazione SSH valida dalla lista", + "updateHost": "Aggiorna Host", + "addHost": "Aggiungi Host", + "editHost": "Modifica Host", + "pinConnection": "Fissa Connessione", + "authentication": "Autenticazione", + "password": "Password", + "key": "Chiave", + "sshPrivateKey": "Chiave Privata SSH", + "keyPassword": "Password Chiave", + "keyType": "Tipo Chiave", + "enableTerminal": "Abilita Terminale", + "enableTunnel": "Abilita Tunnel", + "enableFileManager": "Abilita Gestione File", + "defaultPath": "Percorso Predefinito", + "tunnelConnections": "Connessioni Tunnel", + "maxRetries": "Tentativi Massimi", + "upload": "Carica", + "updateKey": "Aggiorna Chiave", + "productionFolder": "Produzione", + "databaseServer": "Server Database", + "developmentServer": "Server Sviluppo", + "developmentFolder": "Sviluppo", + "webServerProduction": "Web Server - Produzione", + "unknownError": "Errore sconosciuto", + "failedToInitiatePasswordReset": "Impossibile avviare il reset della password", + "failedToVerifyResetCode": "Impossibile verificare il codice di reset", + "failedToCompletePasswordReset": "Impossibile completare il reset della password", + "invalidTotpCode": "Codice TOTP non valido", + "failedToStartOidcLogin": "Impossibile avviare il login OIDC", + "failedToGetUserInfoAfterOidc": "Impossibile ottenere info utente dopo login OIDC", + "loginWithExternalProvider": "Accedi con provider esterno", + "loginWithExternal": "Accedi con Provider Esterno", + "sendResetCode": "Invia Codice di Reset", + "verifyCode": "Verifica Codice", + "resetPassword": "Reimposta Password", + "login": "Accedi", + "signUp": "Registrati", + "failedToUpdateOidcConfig": "Impossibile aggiornare la configurazione OIDC", + "failedToMakeUserAdmin": "Impossibile rendere l'utente amministratore", + "failedToStartTotpSetup": "Impossibile avviare la configurazione TOTP", + "invalidVerificationCode": "Codice di verifica non valido", + "failedToDisableTotp": "Impossibile disabilitare TOTP", + "failedToGenerateBackupCodes": "Impossibile generare i codici di backup" + }, + "mobile": { + "selectHostToStart": "Seleziona un host per iniziare la sessione terminale", + "limitedSupportMessage": "Il supporto mobile per il sito web è ancora in sviluppo. Usa l'app mobile per un'esperienza migliore.", + "mobileAppInProgress": "App mobile in sviluppo", + "mobileAppInProgressDesc": "Stiamo lavorando a un'app mobile dedicata per fornire un'esperienza migliore sui dispositivi mobili.", + "viewMobileAppDocs": "Installa App Mobile", + "mobileAppDocumentation": "Documentazione App Mobile" + }, + "dashboard": { + "title": "Dashboard", + "github": "GitHub", + "support": "Supporto", + "discord": "Discord", + "donate": "Dona", + "serverOverview": "Panoramica Server", + "version": "Versione", + "upToDate": "Aggiornato", + "updateAvailable": "Aggiornamento Disponibile", + "uptime": "Tempo di Attività", + "database": "Database", + "healthy": "Sano", + "error": "Errore", + "totalServers": "Server Totali", + "totalTunnels": "Tunnel Totali", + "totalCredentials": "Credenziali Totali", + "recentActivity": "Attività Recenti", + "reset": "Ripristina", + "loadingRecentActivity": "Caricamento attività recenti...", + "noRecentActivity": "Nessuna attività recente", + "quickActions": "Azioni Rapide", + "addHost": "Aggiungi Host", + "addCredential": "Aggiungi Credenziale", + "adminSettings": "Impostazioni Amministratore", + "userProfile": "Profilo Utente", + "serverStats": "Statistiche Server", + "loadingServerStats": "Caricamento statistiche server...", + "noServerData": "Nessun dato server disponibile", "passwordRequired": "La pcomeswod è obbligaaia queo si usa l'autenticazèue csu pcomeswod", "sshKeyRequired": "La chiave privaa SSH è obbligaaia queo si usa l'autenticazèue csu chiave", "keyTypeRequired": "Il tipo di chiave è obbligaaio queo si usa l'autenticazèue csu chiave", @@ -1758,6 +3422,29 @@ "notAvailable": "N/D" }, "commandPalette": { + "searchPlaceholder": "Cerca host o azioni rapide...", + "recentActivity": "Attività Recenti", + "navigation": "Navigazione", + "addHost": "Aggiungi Host", + "addCredential": "Aggiungi Credenziale", + "adminSettings": "Impostazioni Amministratore", + "userProfile": "Profilo Utente", + "updateLog": "Log Aggiornamenti", + "hosts": "Host", + "openServerDetails": "Apri Dettagli Server", + "openFileManager": "Apri Gestione File", + "edit": "Modifica", + "links": "Link", + "github": "GitHub", + "support": "Supporto", + "discord": "Discord", + "donate": "Dona", + "press": "Premi", + "toToggle": "per aprire/chiudere", + "close": "Chiudi", + "hostManager": "Gestione Host" + } +} "searchPlaceholder": "Cerca host o azèui rapide...", "recentActivity": "Attività Recentii", "navigation": "Navigazèue", diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index d91383c7..71623d95 100644 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -59,7 +59,6 @@ "keyTypeRSA": "RSA", "keyTypeECDSA": "ECDSA", "keyTypeEd25519": "Ed25519", - "updateCredential": "Atualizar Credencial", "basicInfo": "Informações básicas", "authentication": "Autenticação", "organization": "Organização", @@ -93,7 +92,7 @@ "deploySSHKey": "Implantar Chave SSH", "deploySSHKeyDescription": "Implantar chave pública no servidor de destino", "sourceCredential": "Credencial de Origem", - "targetHost": "Host de Destino", + "targetHost": "Host de Destinenhum", "deploymentProcess": "Processo de Implantação", "deploymentProcessDescription": "Isso adicionará com segurança a chave pública ao arquivo ~/.ssh/authorized_keys do host de destino sem sobrescrever chaves existentes. A operação é reversível.", "chooseHostToDeploy": "Escolha um host para implantar...", @@ -118,7 +117,6 @@ "credentialSecuredDescription": "Todos os dados sensíveis são criptografados com AES-256", "passwordAuthentication": "Autenticação por senha", "keyAuthentication": "Autenticação por chave", - "keyType": "Tipo de chave", "securityReminder": "Lembrete de segurança", "securityReminderText": "Nunca compartilhe suas credenciais. Todos os dados são criptografados em repouso.", "hostsUsingCredential": "Hosts usando esta credencial", @@ -166,7 +164,8 @@ "generateKeyPairNote": "Gere um novo par de chaves SSH diretamente. Isso substituirá quaisquer chaves existentes no formulário.", "invalidKey": "Chave inválida", "detectionError": "Erro de detecção", - "unknown": "Desconhecido" + "unknown": "Desconhecido", + "credentialId": "Credencial ID" }, "dragIndicator": { "error": "Erro: {{error}}", @@ -201,7 +200,7 @@ "noResults": "Nenhum comando encontrado", "noResultsHint": "Nenhum comando correspondente a \"{{query}}\"", "deleteSuccess": "Comando removido do histórico", - "deleteFailed": "Falha ao excluir comando.", + "deleteFailed": "Falha ao excluir comeo.", "deleteTooltip": "Excluir comando", "tabHint": "Use Tab no Terminal para autocompletar do histórico de comandos" }, @@ -219,21 +218,25 @@ "testConnectionFirst": "Por favor, teste a conexão primeiro", "connectionSuccess": "Conexão bem-sucedida!", "connectionFailed": "Conexão falhou", - "connectionError": "Ocorreu um erro de conexão", + "connectionError": "Ocoureu um erro de conexão", "connected": "Conectado", "disconnected": "Desconectado", "configSaved": "Configuração salva com sucesso", "saveFailed": "Falha ao salvar configuração", "saveError": "Erro ao salvar configuração", - "saving": "Salvando...", + "saving": "Salveo...", "saveConfig": "Salvar Configuração", - "helpText": "Digite a URL onde seu servidor Termix está rodando (ex.: http://localhost:30001 ou https://seu-servidor.com)" + "helpText": "Digite a URL onde seu servidor Termix está rodando (ex.: http://localhost:30001 ou https://seu-servidor.com)", + "changeServer": "Alterar Servidor", + "mustIncludeProtocol": "URL do Servidor deve começar com http:// ou https://", + "notValidatedWarning": "URL não validada - verifique se está correta", + "warning": "Aviso" }, "versionCheck": { "error": "Erro na verificação de versão", "checkFailed": "Falha ao verificar atualizações", "upToDate": "Aplicativo atualizado", - "currentVersion": "Você está usando a versão {{version}}", + "currentVersion": "Você está useo a versão {{version}}", "updateAvailable": "Atualização disponível", "newVersionAvailable": "Uma nova versão está disponível! Você está usando {{current}}, mas {{latest}} está disponível.", "releasedOn": "Lançada em {{date}}", @@ -255,12 +258,12 @@ "continue": "Continuar", "maintenance": "Manutenção", "degraded": "Degradado", - "discord": "Discord", + "discord": "Discoud", "error": "Erro", "warning": "Aviso", "info": "Info", "success": "Sucesso", - "loading": "Carregando", + "loading": "Carregando...", "required": "Obrigatório", "optional": "Opcional", "clear": "Limpar", @@ -274,14 +277,13 @@ "updateAvailable": "Atualização Disponível", "sshPath": "Caminho SSH", "localPath": "Caminho Local", - "loading": "Carregando...", "noAuthCredentials": "Não há credenciais de autenticação disponíveis para este host SSH", "noReleases": "Sem Versões", "updatesAndReleases": "Atualizações e Versões", "newVersionAvailable": "Uma nova versão ({{version}}) está disponível.", "failedToFetchUpdateInfo": "Falha ao buscar informações de atualização", "preRelease": "Pré-lançamento", - "loginFailed": "Falha no login", + "loginFailed": "Falha nenhum login", "noReleasesFound": "Nenhuma versão encontrada.", "yourBackupCodes": "Seus Códigos de Backup", "sendResetCode": "Enviar Código de Redefinição", @@ -289,13 +291,10 @@ "resetPassword": "Redefinir Senha", "resetCode": "Código de Redefinição", "newPassword": "Nova Senha", - "sshPath": "Caminho SSH", - "localPath": "Caminho Local", "folder": "Pasta", "file": "Arquivo", "renamedSuccessfully": "renomeado com sucesso", "deletedSuccessfully": "excluído com sucesso", - "noAuthCredentials": "Não há credenciais de autenticação disponíveis para este host SSH", "noTunnelConnections": "Não há conexões de túnel configuradas", "sshTools": "Ferramentas SSH", "english": "Inglês", @@ -307,36 +306,27 @@ "login": "Entrar", "logout": "Sair", "register": "Registrar", - "username": "Usuário", "password": "Senha", "version": "Versão", "confirmPassword": "Confirmar Senha", "back": "Voltar", "email": "Email", "submit": "Enviar", - "cancel": "Cancelar", "change": "Alterar", "save": "Salvar", "delete": "Excluir", "edit": "Editar", "add": "Adicionar", "search": "Buscar", - "loading": "Carregando...", - "error": "Erro", - "success": "Sucesso", - "warning": "Aviso", - "info": "Info", "confirm": "Confirmar", "yes": "Sim", "no": "Não", "ok": "OK", - "close": "Fechar", "enabled": "Habilitado", "disabled": "Desabilitado", "important": "Importante", "notEnabled": "Não Habilitado", "settingUp": "Configurando...", - "back": "Voltar", "next": "Próximo", "previous": "Anterior", "refresh": "Atualizar", @@ -353,7 +343,7 @@ "passwordResetDescription": "Você está prestes a redefinir sua senha. Isso fará com que você seja desconectado de todas as sessões ativas.", "enterSixDigitCode": "Digite o código de 6 dígitos dos logs do container docker para o usuário:", "enterNewPassword": "Digite sua nova senha para o usuário:", - "passwordsDoNotMatch": "As senhas não correspondem", + "passwordsDoNotMatch": "As senhas não courespondem", "passwordMinLength": "A senha deve ter pelo menos 6 caracteres", "passwordResetSuccess": "Senha redefinida com sucesso! Você pode agora entrar com sua nova senha.", "failedToInitiatePasswordReset": "Falha ao iniciar redefinição de senha", @@ -362,7 +352,8 @@ "documentation": "Documentação", "retry": "Tentar Novamente", "checking": "Verificando...", - "checkingDatabase": "Verificando conexão com o banco de dados..." + "checkingDatabase": "Verificando conexão com o banco de dados...", + "saving": "Salveo..." }, "nav": { "home": "Início", @@ -372,7 +363,7 @@ "tunnels": "Túneis", "fileManager": "Gerenciador de Arquivos", "serverStats": "Estatísticas do Servidor", - "admin": "Admin", + "admin": "Administrador", "userProfile": "Perfil do Usuário", "tools": "Ferramentas", "newTab": "Nova Aba", @@ -381,15 +372,16 @@ "sshManager": "Gerenciador SSH", "hostManager": "Gerenciador de Hosts", "cannotSplitTab": "Não é possível dividir esta aba", - "tabNavigation": "Navegação de Abas" + "tabNavigation": "Navegação de Abas", + "snippets": "Snippets" }, "admin": { - "title": "Configurações de Admin", + "title": "Configurações de Administrador", "oidc": "OIDC", "users": "Usuários", "userManagement": "Gerenciamento de Usuários", - "makeAdmin": "Tornar Admin", - "removeAdmin": "Remover Admin", + "makeAdmin": "Tornar Administrador", + "removeAdmin": "Remover Administrador", "deleteUser": "Excluir Usuário", "allowRegistration": "Permitir Registro", "oidcSettings": "Configurações OIDC", @@ -400,11 +392,11 @@ "tokenUrl": "URL do Token", "updateSettings": "Atualizar Configurações", "confirmDelete": "Tem certeza que deseja excluir este usuário?", - "confirmMakeAdmin": "Tem certeza que deseja tornar este usuário um admin?", - "confirmRemoveAdmin": "Tem certeza que deseja remover os privilégios de admin deste usuário?", + "confirmMakeAdmin": "Tem certeza que deseja tornar este usuário um administrador?", + "confirmRemoveAdmin": "Tem certeza que deseja remover os privilégios de administrador deste usuário?", "externalAuthentication": "Autenticação Externa (OIDC)", "configureExternalProvider": "Configure o provedor de identidade externo para autenticação OIDC/OAuth2.", - "userIdentifierPath": "Caminho do Identificador do Usuário", + "userIdentifierPath": "Caminho do Identificadou do Usuário", "displayNamePath": "Caminho do Nome de Exibição", "scopes": "Escopos", "saving": "Salvando...", @@ -419,12 +411,12 @@ "actions": "Ações", "external": "Externo", "local": "Local", - "adminManagement": "Gerenciamento de Admin", - "makeUserAdmin": "Tornar Usuário Admin", + "adminManagement": "Gerenciamento de Administrador", + "makeUserAdmin": "Tornar Usuário Administrador", "adding": "Adicionando...", - "currentAdmins": "Admins Atuais", - "adminBadge": "Admin", - "removeAdminButton": "Remover Admin", + "currentAdmins": "Administradores Atuais", + "adminBadge": "Administrador", + "removeAdminButton": "Remover Administrador", "general": "Geral", "userRegistration": "Registro de Usuário", "allowNewAccountRegistration": "Permitir registro de novas contas", @@ -436,13 +428,12 @@ "oidcConfigurationDisabled": "Configuração OIDC desativada com sucesso!", "failedToUpdateOidcConfig": "Falha ao atualizar configuração OIDC", "failedToDisableOidcConfig": "Falha ao desativar configuração OIDC", - "enterUsernameToMakeAdmin": "Insira o nome de usuário para tornar admin", + "enterUsernameToMakeAdmin": "Insira o nome de usuário para tornar administrador", "userIsNowAdmin": "O usuário {{username}} agora é um administrador", "failedToMakeUserAdmin": "Falha ao tornar o usuário administrador", "removeAdminStatus": "Remover status de administrador de {{username}}?", "adminStatusRemoved": "Status de administrador removido de {{username}}", "failedToRemoveAdminStatus": "Falha ao remover o status de administrador", - "confirmDeleteUser": "Excluir usuário {{username}}? Esta ação não pode ser desfeita.", "userDeletedSuccessfully": "Usuário {{username}} excluído com sucesso", "failedToDeleteUser": "Falha ao excluir usuário", "overrideUserInfoUrl": "Sobrescrever URL de informações do usuário (não obrigatório)", @@ -495,7 +486,6 @@ "verificationCompleted": "Verificação de compatibilidade concluída - nenhum dado foi alterado", "verificationInProgress": "Verificação concluída", "dataMigrationCompleted": "Migração de dados concluída com sucesso!", - "migrationCompleted": "Migração concluída", "verificationFailed": "Falha na verificação de compatibilidade", "migrationFailed": "Falha na migração", "runningVerification": "Executando verificação de compatibilidade...", @@ -540,13 +530,13 @@ "databaseImportFailed": "Falha na importação do banco de dados SQLite", "manageEncryptionAndBackups": "Gerenciar chaves de criptografia, segurança do banco de dados e operações de backup", "activeSecurityFeatures": "Medidas e proteções de segurança atualmente ativas", - "deviceBindingTechnology": "Tecnologia avançada de proteção de chave baseada em hardware", + "deviceBindingTechnology": "Tecnenhumlogia avançada de proteção de chave baseada em hardware", "backupAndRecovery": "Opções seguras de criação de backup e recuperação de banco de dados", "crossSystemDataTransfer": "Exportar e importar bancos de dados entre diferentes sistemas", "noMigrationNeeded": "Nenhuma migração necessária", "encryptionKey": "Chave de Criptografia", "keyProtection": "Proteção da Chave", - "active": "Ativo", + "active": "Ativa", "legacy": "Legado", "dataStatus": "Status dos Dados", "encrypted": "Criptografado", @@ -576,13 +566,38 @@ "confirmDisableOIDCWarning": "AVISO: Você está prestes a desativar o OIDC enquanto o login por senha também está desativado. Isso inutilizará sua instância do Termix e você perderá todo o acesso. Tem absoluta certeza de que deseja continuar?", "allowPasswordLogin": "Permitir login com nome de usuário/senha", "failedToFetchPasswordLoginStatus": "Falha ao buscar status do login por senha", - "failedToUpdatePasswordLoginStatus": "Falha ao atualizar status do login por senha" + "failedToUpdatePasswordLoginStatus": "Falha ao atualizar status do login por senha", + "accountsLinkedSuccessfully": "Usuário OIDC {{oidcUsername}} foi vinculado a {{targetUsername}}", + "confirmRevokeAllSessions": "Tem certeza de que deseja revogar todas as sessões para este usuário?", + "confirmRevokeSession": "Tem certeza de que deseja revogar esta sessão?", + "failedToFetchSessions": "Falha ao buscar sessões", + "failedToLinkAccounts": "Falha ao vincular contas", + "failedToRevokeSession": "Falha ao revogar sessão", + "failedToRevokeSessions": "Falha ao revogar sessões", + "failedToUnlinkOIDC": "Falha ao desvincular OIDC", + "linkAccountsButton": "Vincular Contas", + "linkOIDCActionAddCapability": "Adicionar capacidade de login OIDC à conta de senha de destino", + "linkOIDCActionDeleteUser": "Excluir a conta de usuário OIDC e todos os outros dados", + "linkOIDCActionDualAuth": "Permitir que a conta de senha faça login com senha e OIDC", + "linkOIDCDialogDescription": "Vincular {{username}} (usuário OIDC) a uma conta de senha existente. Isso ativará autenticação dupla para a conta de senha.", + "linkOIDCDialogTitle": "Link OIDC Account para Senha Account", + "linkOIDCWarningTitle": "Aviso: Dados do Usuário OIDC Serão Deletados", + "linkTargetUsernameLabel": "Nome de usuário da conta de senha de destino", + "linkTargetUsernamePlaceholder": "Inserir nome de usuário da conta de senha", + "linkTargetUsernameRequired": "Nome de usuário de destino é obrigatório", + "linkToPasswordAccount": "Vincular à Conta de Senha", + "linkingAccounts": "Vinculando...", + "sessionRevokedSuccessfully": "Sessão revogada com sucesso", + "sessionsRevokedSuccessfully": "Sessões revogadas com sucesso", + "unlinkOIDCDescription": "Remover autenticação OIDC de {{username}}? O usuário só poderá fazer login com nome de usuário/senha após isso.", + "unlinkOIDCSuccess": "OIDC desvinculado de {{username}}", + "unlinkOIDCTitle": "Desvincular Autenticação OIDC" }, "hosts": { "title": "Gerenciador de Hosts", "sshHosts": "Hosts SSH", "noHosts": "Sem Hosts SSH", - "noHostsMessage": "Você ainda não adicionou nenhum host SSH. Clique em \"Adicionar Host\" para começar.", + "noHostsMessage": "Você ainda não adicionenhumu nenhum host SSH. Clique em \"Adicionar Host\" para começar.", "loadingHosts": "Carregando hosts...", "failedToLoadHosts": "Falha ao carregar hosts", "retry": "Tentar Novamente", @@ -596,12 +611,12 @@ "formatGuide": "Guia de Formato", "exportCredentialWarning": "Aviso: O host \"{{name}}\" usa autenticação por credencial. O arquivo exportado não incluirá os dados da credencial e precisará ser reconfigurado manualmente após a importação. Deseja continuar?", "exportSensitiveDataWarning": "Aviso: O host \"{{name}}\" contém dados de autenticação sensíveis (senha/chave SSH). O arquivo exportado incluirá esses dados em texto simples. Mantenha o arquivo seguro e exclua-o após o uso. Deseja continuar?", - "uncategorized": "Sem categoria", + "uncategorized": "Sem categouia", "confirmDelete": "Tem certeza que deseja excluir \"{{name}}\"?", "failedToDeleteHost": "Falha ao excluir host", "failedToExportHost": "Falha ao exportar host. Certifique-se de que está logado e tem acesso aos dados do host.", "jsonMustContainHosts": "O JSON deve conter um array \"hosts\" ou ser um array de hosts", - "noHostsInJson": "Nenhum host encontrado no arquivo JSON", + "noHostsInJson": "Nenhum host encontrado nenhum arquivo JSON", "maxHostsAllowed": "Máximo de 100 hosts permitidos por importação", "importCompleted": "Importação concluída: {{success}} com sucesso, {{failed}} falhas", "importFailed": "Falha na importação", @@ -611,7 +626,7 @@ "organization": "Organização", "ipAddress": "Endereço IP", "port": "Porta", - "name": "Nome", + "name": "Nenhumme", "username": "Usuário", "folder": "Pasta", "tags": "Tags", @@ -632,13 +647,13 @@ "enableTerminalDesc": "Habilitar/desabilitar visibilidade do host na aba Terminal", "enableTunnel": "Habilitar Túnel", "enableTunnelDesc": "Habilitar/desabilitar visibilidade do host na aba Túnel", - "enableFileManager": "Habilitar Gerenciador de Arquivos", - "enableFileManagerDesc": "Habilitar/desabilitar visibilidade do host na aba Gerenciador de Arquivos", + "enableFileManager": "Habilitar Gerenciadou de Arquivos", + "enableFileManagerDesc": "Habilitar/desabilitar visibilidade do host na aba Gerenciadou de Arquivos", "defaultPath": "Caminho Padrão", - "defaultPathDesc": "Diretório padrão ao abrir o gerenciador de arquivos para este host", + "defaultPathDesc": "Diretório padrão ao abrir o gerenciadou de arquivos para este host", "tunnelConnections": "Conexões de Túnel", "connection": "Conexão", - "remove": "Remover", + "remove": "Removerr", "sourcePort": "Porta de Origem", "sourcePortDesc": "(Source refere-se aos Detalhes da Conexão Atual na aba Geral)", "endpointPort": "Porta de Destino", @@ -695,12 +710,12 @@ "addTagsSpaceToAdd": "adicionar tags (espaço para adicionar)", "terminalBadge": "Terminal", "tunnelBadge": "Túnel", - "fileManagerBadge": "Gerenciador de Arquivos", + "fileManagerBadge": "Gerenciadou de Arquivos", "general": "Geral", "terminal": "Terminal", "tunnel": "Túnel", - "fileManager": "Gerenciador de Arquivos", - "hostViewer": "Visualizador de Host", + "fileManager": "Gerenciadou de Arquivos", + "hostViewer": "Visualizadou de Host", "confirmRemoveFromFolder": "Tem certeza que deseja remover \"{{name}}\" da pasta \"{{folder}}\"? O host será movido para \"Sem Pasta\".", "removedFromFolder": "Host \"{{name}}\" removido da pasta com sucesso", "failedToRemoveFromFolder": "Falha ao remover host da pasta", @@ -746,8 +761,104 @@ "noServerFound": "Nenhum servidor encontrado", "jumpHostsOrder": "As conexões serão feitas na ordem: Host de Salto 1 → Host de Salto 2 → ... → Servidor de Destino", "advancedAuthSettings": "Configurações Avançadas de Autenticação", - "sudoPasswordAutoFill": "Preenchimento automático da senha do sudo", - "sudoPasswordAutoFillDesc": "Oferecer automaticamente inserir a senha SSH quando o sudo solicitar uma senha" + "addQuickAction": "Adicionar Ação Rápida", + "adjustFontSize": "Ajustar o tamanho da fonte do terminal", + "adjustLetterSpacing": "Ajustar espaçamento entre caracteres", + "adjustLineHeight": "Ajustar espaçamento entre linhas", + "advanced": "Avançado", + "allHostsInFolderDeleted": "Excluídos {{count}} hosts da pasta \"{{folder}}\" com sucesso", + "appearance": "Aparência", + "backspaceMode": "Modo Backspace", + "backspaceModeControlH": "Control-H (^H)", + "backspaceModeDesc": "Comportamento da tecla Backspace para compatibilidade", + "backspaceModeNormal": "Normal (DEL)", + "behavior": "Comportamento", + "bellStyle": "Estilo de Campainha", + "bellStyleBoth": "Both", + "bellStyleDesc": "Como lidar com a campainha do terminal (caractere BEL, \\x07). Programas acionam isso ao completar tarefas, encontrar erros, ou para notificações. \"Som\" toca um bipe de áudio, \"Visual\" pisca a tela brevemente, \"Ambos\" faz os dois, \"Nenhum\" desativa os alertas de campainha.", + "bellStyleNone": "Nenhum", + "bellStyleSound": "Som", + "bellStyleVisual": "Visual", + "chooseColorTheme": "Escolha um tema de cor para o terminal", + "chooseCursorAppearance": "Escolha a aparência do cursor", + "confirmDeleteAllHostsInFolder": "Tem certeza de que deseja excluir todos os {{count}} hosts na pasta \"{{folder}}\"? Esta ação não pode ser desfeita.", + "cursorBlink": "Piscar Cursor", + "cursorStyle": "Estilo do Cursor", + "cursorStyleBar": "Barra", + "cursorStyleBlock": "Bloco", + "cursorStyleUnderline": "Sublinhado", + "customCommands": "Comandos Personalizados (Em Breve)", + "customCommandsDesc": "Defina comandos personalizados de desligamento e reinicialização para este servidor", + "deleteAllHostsInFolder": "Excluir Todos os Hosts na Pasta", + "displayItems": "Exibir Itens", + "displayItemsDesc": "Escolha quais métricas exibir na página de estatísticas do servidor", + "editFolderAppearance": "Editar Aparência da Pasta", + "editFolderAppearanceDesc": "Personalize a cor e o ícone da pasta", + "enableCpu": "Uso da CPU", + "enableCursorBlink": "Ativar animação de piscar do cursor", + "enableDisk": "Uso de Disco", + "enableHostname": "Hostname (Em Breve)", + "enableMemory": "Uso de Memória", + "enableNetwork": "Estatísticas de Rede (Em Breve)", + "enableOs": "Sistema Operacional (Em Breve)", + "enableProcesses": "Contagem de Processos (Em Breve)", + "enableServerStats": "Ativar Estatísticas do Servidor", + "enableServerStatsDesc": "Ativar/desativar coleta de estatísticas do servidor para este host", + "enableUptime": "Tempo de Atividade (Em Breve)", + "failedToDeleteHostsInFolder": "Falha ao excluir hosts na pasta", + "failedToUpdateFolderAppearance": "Falha ao atualizar aparência da pasta", + "fastScrollModifier": "Modificador de Rolagem Rápida", + "fastScrollModifierDesc": "Tecla modificadora para rolagem rápida", + "fastScrollSensitivity": "Sensibilidade de Rolagem Rápida", + "fastScrollSensitivityDesc": "Multiplicador de velocidade de rolagem quando modificador é segurado", + "fastScrollSensitivityValue": "Sensibilidade de Rolagem Rápida: {{value}}", + "folderAppearanceUpdated": "Aparência da pasta atualizada com sucesso", + "folderColor": "Cor da Pasta", + "folderIcon": "Ícone da Pasta", + "fontFamily": "Família da Fonte", + "fontSize": "Tamanho da Fonte", + "fontSizeValue": "Tamanho da Fonte: {{value}}px", + "letterSpacing": "Espaçamento entre Letras", + "letterSpacingValue": "Espaçamento entre Letras: {{value}}px", + "lineHeight": "Altura da Linha", + "lineHeightValue": "Altura da Linha: {{value}}", + "minimumContrastRatio": "Taxa de Contraste Mínima", + "minimumContrastRatioDesc": "Ajustar cores automaticamente para melhor legibilidade", + "minimumContrastRatioValue": "Taxa de Contraste Mínima: {{value}}", + "modifierAlt": "Alt", + "modifierCtrl": "Ctrl", + "modifierShift": "Shift", + "noSnippetFound": "Nenhum snippet encontrado", + "preview": "Pré-visualização", + "quickActionName": "Nome da Ação", + "quickActions": "Ações Rápidas", + "quickActionsDescription": "Ações rápidas permitem criar botões personalizados que executam snippets SSH neste servidor. Esses botões aparecerão no topo da página de Estatísticas do Servidor para acesso rápido.", + "quickActionsList": "Lista de Ações Rápidas", + "quickActionsOrder": "Botões de ação rápida aparecerão na ordem listada acima na página de Estatísticas do Servidor", + "rebootCommand": "Comando de Reinicialização", + "rightClickSelectsWord": "Clique Direito Seleciona Palavra", + "rightClickSelectsWordDesc": "Clicar com o botão direito seleciona a palavra sob o cursor", + "scrollbackBuffer": "Histórico de Rolagem", + "scrollbackBufferDesc": "Número de linhas para manter no histórico de rolagem", + "scrollbackBufferValue": "Histórico de Rolagem: {{value}} linhas", + "searchSnippets": "Pesquisar snippets...", + "selectBackspaceMode": "Selecionar modo backspace", + "selectBellStyle": "Selecionar estilo de campainha", + "selectCursorStyle": "Selecionar estilo de cursor", + "selectFont": "Selecionar fonte", + "selectFontDesc": "Selecione a fonte para usar no terminal", + "selectModifier": "Selecionar modificador", + "selectSnippet": "Selecionar snippet", + "selectTheme": "Selecionar tema", + "serverStats": "Estatísticas do Servidor", + "shutdownCommand": "Comando de Desligamento", + "snippetNone": "Nenhum", + "sshAgentForwarding": "Encaminhamento de Agente SSH", + "sshAgentForwardingDesc": "Encaminhar agente de autenticação SSH para host remoto", + "startupSnippet": "Snippet de Inicialização", + "terminalCustomization": "Personalização do Terminal", + "theme": "Tema", + "themePreview": "Pré-visualização do Tema" }, "terminal": { "title": "Terminal", @@ -782,10 +893,10 @@ "terminalTitle": "Terminal - {{host}}", "terminalWithPath": "Terminal - {{host}}:{{path}}", "runTitle": "Executando {{command}} - {{host}}", - "sudoPasswordPopupTitle": "Inserir Senha?", - "sudoPasswordPopupHint": "Pressione Enter para inserir, Esc para cancelar", - "sudoPasswordPopupConfirm": "Inserir", - "sudoPasswordPopupDismiss": "Cancelar" + "totpCodeLabel": "Código de Verificação", + "totpPlaceholder": "000000", + "totpRequired": "Autenticação de Dois Fatores Obrigatória", + "totpVerify": "Verificar" }, "fileManager": { "title": "Gerenciador de Arquivos", @@ -871,7 +982,6 @@ "copyPaths": "Copiar caminhos", "delete": "Excluir", "properties": "Propriedades", - "preview": "Visualizar", "refresh": "Atualizar", "downloadFiles": "Baixar {{count}} arquivos para o Navegador", "copyFiles": "Copiar {{count}} itens", @@ -886,18 +996,11 @@ "failedToDeleteItem": "Falha ao excluir item", "itemRenamedSuccessfully": "{{type}} renomeado com sucesso", "failedToRenameItem": "Falha ao renomear item", - "upload": "Enviar", "download": "Baixar", - "newFile": "Novo Arquivo", - "newFolder": "Nova Pasta", - "rename": "Renomear", - "delete": "Excluir", "permissions": "Permissões", "size": "Tamanho", "modified": "Modificado", "path": "Caminho", - "fileName": "Nome do Arquivo", - "folderName": "Nome da Pasta", "confirmDelete": "Tem certeza que deseja excluir {{name}}?", "uploadSuccess": "Arquivo enviado com sucesso", "uploadFailed": "Falha ao enviar arquivo", @@ -917,10 +1020,7 @@ "fileSavedSuccessfully": "Arquivo salvo com sucesso", "saveTimeout": "Tempo limite da operação de salvamento esgotado. O arquivo pode ter sido salvo com sucesso, mas a operação demorou muito para ser concluída. Verifique os logs do Docker para confirmação.", "failedToSaveFile": "Falha ao salvar arquivo", - "folder": "Pasta", - "file": "Arquivo", "deletedSuccessfully": "excluído com sucesso", - "failedToDeleteItem": "Falha ao excluir item", "connectToServer": "Conectar a um Servidor", "selectServerToEdit": "Selecione um servidor da barra lateral para começar a editar arquivos", "fileOperations": "Operações de Arquivo", @@ -949,7 +1049,7 @@ "sshReconnectionTimeout": "Tempo limite excedido na reconexão SSH", "saveOperationTimeout": "Tempo limite excedido na operação de salvar", "cannotSaveFile": "Não é possível salvar o arquivo", - "dragSystemFilesToUpload": "Arraste arquivos do sistema aqui para fazer upload", + "dragSystemFilesToUpload": "Arraste arquivos do sistema aqui para enviar", "dragFilesToWindowToDownload": "Arraste arquivos para fora da janela para baixar", "openTerminalHere": "Abrir Terminal Aqui", "run": "Executar", @@ -977,14 +1077,12 @@ "unpinFile": "Desfixar arquivo", "removeShortcut": "Remover atalho", "saveFilesToSystem": "Salvar {{count}} arquivos como...", - "saveToSystem": "Salvar como...", "pinFile": "Fixar arquivo", "addToShortcuts": "Adicionar aos atalhos", - "selectLocationToSave": "Selecionar local para salvar", "downloadToDefaultLocation": "Baixar para o local padrão", "pasteFailed": "Falha ao colar", "noUndoableActions": "Nenhuma ação pode ser desfeita", - "undoCopySuccess": "Operação de cópia desfeita: {{count}} arquivos copiados foram excluídos", + "undoCopySuccess": "oOperação de cópia desfeita: {{count}} arquivos copiados foram excluídos", "undoCopyFailedDelete": "Falha ao desfazer: Não foi possível excluir os arquivos copiados", "undoCopyFailedNoInfo": "Falha ao desfazer: Não foi possível encontrar informações do arquivo copiado", "undoMoveSuccess": "Operação de mover desfeita: {{count}} arquivos movidos de volta ao local original", @@ -995,10 +1093,9 @@ "undoOperationFailed": "Falha na operação de desfazer", "unknownError": "Erro desconhecido", "enterPath": "Digite o caminho...", - "editPath": "Editar caminho", + "editPath": "Editarar caminho", "confirm": "Confirmar", "cancel": "Cancelar", - "folderName": "Nome da pasta", "find": "Localizar...", "replaceWith": "Substituir por...", "replace": "Substituir", @@ -1022,22 +1119,18 @@ "toggleComment": "Alternar Comentário", "indent": "Indentar", "outdent": "Remover Indentação", - "autoComplete": "Auto Completar", + "autoComplete": "Autocompletar", "imageLoadError": "Falha ao carregar imagem", - "zoomIn": "Aumentar Zoom", - "zoomOut": "Diminuir Zoom", "rotate": "Rotacionar", "originalSize": "Tamanho Original", "startTyping": "Comece a digitar...", "unknownSize": "Tamanho desconhecido", "fileIsEmpty": "Arquivo está vazio", - "modified": "Modificado", "largeFileWarning": "Aviso de Arquivo Grande", "largeFileWarningDesc": "Este arquivo tem {{size}} de tamanho, o que pode causar problemas de desempenho quando aberto como texto.", "fileNotFoundAndRemoved": "Arquivo \"{{name}}\" não encontrado e foi removido dos arquivos recentes/fixados", "failedToLoadFile": "Falha ao carregar arquivo: {{error}}", "serverErrorOccurred": "Ocorreu um erro no servidor. Por favor, tente novamente mais tarde.", - "fileSavedSuccessfully": "Arquivo salvo com sucesso", "autoSaveFailed": "Falha no salvamento automático", "fileAutoSaved": "Arquivo salvo automaticamente", "moveFileFailed": "Falha ao mover {{name}}", @@ -1054,7 +1147,7 @@ "operationCompletedSuccessfully": "{{operation}} {{count}} itens com sucesso", "operationCompleted": "{{operation}} {{count}} itens", "downloadFileSuccess": "Arquivo {{name}} baixado com sucesso", - "downloadFileFailed": "Falha no download", + "downloadFileFailed": "Falha no baixar", "moveTo": "Mover para {{name}}", "diffCompareWith": "Comparar diferenças com {{name}}", "dragOutsideToDownload": "Arraste para fora da janela para baixar ({{count}} arquivos)", @@ -1073,12 +1166,42 @@ "fileComparison": "Comparação de Arquivos: {{file1}} vs {{file2}}", "fileTooLarge": "Arquivo muito grande: {{error}}", "sshConnectionFailed": "Falha na conexão SSH. Por favor, verifique sua conexão com {{name}} ({{ip}}:{{port}})", - "loadFileFailed": "Falha ao carregar arquivo: {{error}}" + "loadFileFailed": "Falha ao carregar arquivo: {{error}}", + "andMoreFiles": "e {{count}} mais...", + "archiveExtractedSuccessfully": "{{name}} extraído com sucesso", + "archiveName": "Nome do Arquivo", + "changePermissions": "Alterar Permissões", + "changePermissionsDesc": "Modificar permissões do arquivo para", + "compress": "Comprimir", + "compressFailed": "Falha na compressão", + "compressFile": "Comprimir Arquivo", + "compressFiles": "Comprimir Arquivos", + "compressFilesDesc": "Comprimir {{count}} itens em um arquivo", + "compressingFiles": "Comprimindo {{count}} itens em {{name}}...", + "compressionFormat": "Formato de Compressão", + "connectedSuccessfully": "Conectado com sucesso", + "currentPermissions": "Permissões Atuais", + "enterArchiveName": "Inserir nome do arquivo...", + "execute": "Executar", + "extractArchive": "Extrair Arquivo", + "extractFailed": "Extração falhou", + "extractingArchive": "Extraindo {{name}}...", + "failedToChangePermissions": "Falha ao alterar permissões", + "filesCompressedSuccessfully": "{{name}} criado com sucesso", + "group": "Grupo", + "newPermissions": "Novas Permissões", + "others": "Outros", + "owner": "Proprietário", + "permissionsChangedSuccessfully": "Permissões alteradas com sucesso", + "read": "Leitura", + "selectedFiles": "Arquivos Selecionados", + "totpVerificationFailed": "Verificação TOTP falhou", + "write": "Escrita" }, "tunnels": { "title": "Túneis SSH", "noSshTunnels": "Sem Túneis SSH", - "createFirstTunnelMessage": "Você ainda não criou nenhum túnel SSH. Configure conexões de túnel no Gerenciador de Hosts para começar.", + "createFirstTunnelMessage": "Crie seu primeiro túnel SSH para começar. Use o Gerenciador SSH para adicionar hosts com conexões de túnel.", "connected": "Conectado", "disconnected": "Desconectado", "connecting": "Conectando...", @@ -1098,7 +1221,7 @@ "port": "Porta", "attempt": "Tentativa {{current}} de {{max}}", "nextRetryIn": "Próxima tentativa em {{seconds}} segundos", - "checkDockerLogs": "Verifique seus logs do Docker para ver o motivo do erro, entre no", + "checkDockerLogs": "Verifique seus logs do Docker para ver o motivo do erro", "noTunnelConnections": "Nenhuma conexão de túnel configurada", "tunnelConnections": "Conexões de Túnel", "addTunnel": "Adicionar Túnel", @@ -1119,18 +1242,9 @@ "local": "Local", "remote": "Remoto", "dynamic": "Dinâmico", - "noSshTunnels": "Sem Túneis SSH", - "createFirstTunnelMessage": "Crie seu primeiro túnel SSH para começar. Use o Gerenciador SSH para adicionar hosts com conexões de túnel.", "unknownConnectionStatus": "Desconhecido", - "connected": "Conectado", - "connecting": "Conectando...", - "disconnecting": "Desconectando...", - "disconnected": "Desconectado", "portMapping": "Porta {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", - "disconnect": "Desconectar", - "connect": "Conectar", - "canceling": "Cancelando...", - "endpointHostNotFound": "Host de destino não encontrado", + "endpointHostNotFound": "Host de destinenhum não encontrado", "discord": "Discord", "githubIssue": "issue no GitHub", "forHelp": "para ajuda" @@ -1141,8 +1255,8 @@ "memory": "Memória", "disk": "Disco", "network": "Rede", - "uptime": "Tempo Ativo", - "loadAverage": "Carga Média", + "uptime": "Tempo de Atividade", + "loadAverage": "Média: {{avg1}}, {{avg5}}, {{avg15}}", "processes": "Processos", "connections": "Conexões", "usage": "Uso", @@ -1158,7 +1272,6 @@ "cpuCores_one": "{{count}} CPU", "cpuCores_other": "{{count}} CPUs", "naCpus": "N/D CPU(s)", - "loadAverage": "Média: {{avg1}}, {{avg5}}, {{avg15}}", "loadAverageNA": "Média: N/D", "cpuUsage": "Uso da CPU", "memoryUsage": "Uso de Memória", @@ -1174,8 +1287,40 @@ "serverOffline": "Servidor Offline", "cannotFetchMetrics": "Não é possível buscar métricas do servidor offline", "load": "Carga", - "free": "Livre", - "available": "Disponível" + "addWidget": "Adicionar Widget", + "cancelEdit": "Cancelar", + "diskUsage": "Uso de Disco", + "editLayout": "Editar Layout", + "executeQuickAction": "Executar {{name}}", + "executingQuickAction": "Executando {{name}}...", + "failedToSaveLayout": "Falha ao salvar layout", + "from": "de", + "hostname": "Hostname", + "kernel": "Kernel", + "layoutSaved": "Layout salvo com sucesso", + "loginStats": "Estatísticas de Login SSH", + "networkInterfaces": "Interfaces de Rede", + "noInterfacesFound": "Nenhuma interface de rede encontrada", + "noProcessesFound": "Nenhum processo encontrado", + "noRecentLoginData": "Nenhum dado de login recente", + "operatingSystem": "Sistema Operacional", + "quickActionError": "Falha ao executar {{name}}", + "quickActionFailed": "{{name}} falhou", + "quickActionSuccess": "{{name}} concluído com sucesso", + "quickActions": "Ações Rápidas", + "recentFailedAttempts": "Tentativas Falhas Recentemente", + "recentSuccessfulLogins": "Logins Bem-sucedidos Recentemente", + "running": "Executando", + "saveLayout": "Salvar Layout", + "seconds": "segundos", + "systemInfo": "Informações do Sistema", + "totalLogins": "Total de Logins", + "totalProcesses": "Total de Processos", + "totalUptime": "Tempo de Atividade Total", + "totpRequired": "Autenticação TOTP Obrigatória", + "totpUnavailable": "Estatísticas do Servidor indisponíveis para servidores com TOTP ativado", + "uniqueIPs": "IPs Únicos", + "unsavedChanges": "Alterações não salvas" }, "auth": { "tagline": "GERENCIADOR DE TERMINAL SSH", @@ -1247,7 +1392,7 @@ "enableTwoFactorButton": "Ativar Autenticação de Dois Fatores", "addExtraSecurityLayer": "Adicione uma camada extra de segurança à sua conta", "firstUser": "Primeiro Usuário", - "firstUserMessage": "Você é o primeiro usuário e será tornado admin. Você pode ver as configurações de admin no menu suspenso do usuário na barra lateral. Se você acha que isso é um erro, verifique os logs do docker ou crie uma issue no GitHub.", + "firstUserMessage": "Você é o primeiro usuário e será tornado administrador. Você pode ver as configurações de administrador no menu suspenso do usuário na barra lateral. Se você acha que isso é um erro, verifique os logs do docker ou crie uma issue no GitHub.", "external": "Externo", "loginWithExternal": "Entrar com Provedor Externo", "loginWithExternalDesc": "Entre usando seu provedor de identidade externo configurado", @@ -1274,7 +1419,18 @@ "sshTimeoutDescription": "A tentativa de autenticação expirou. Por favor, tente novamente.", "sshProvideCredentialsDescription": "Por favor, forneça suas credenciais SSH para conectar a este servidor.", "sshPasswordDescription": "Digite a senha para esta conexão SSH.", - "sshKeyPasswordDescription": "Se sua chave SSH estiver criptografada, digite a senha aqui." + "sshKeyPasswordDescription": "Se sua chave SSH estiver criptografada, digite a senha aqui.", + "authenticating": "Autenticando...", + "authenticationDisabled": "Autenticação Desativada", + "authenticationDisabledDesc": "Todos os métodos de autenticação estão atualmente desativados. Por favor, contate seu administrador.", + "desktopApp": "App Desktop", + "loadingServer": "Carregando servidor...", + "loggingInToDesktopApp": "Entrando no app desktop", + "loggingInToDesktopAppViaWeb": "Entrando no app desktop via interface web", + "loggingInToMobileApp": "Entrando no app mobile", + "mobileApp": "App Mobile", + "redirectingToApp": "Redirecionando para o app...", + "passwordResetSuccessDesc": "Sua senha foi redefinida com sucesso. Você pode agora entrar com sua nova senha." }, "errors": { "notFound": "Página não encontrada", @@ -1305,7 +1461,8 @@ "emailExists": "Email já existe", "loadFailed": "Falha ao carregar dados", "saveError": "Falha ao salvar", - "sessionExpired": "Sessão expirada - por favor, faça login novamente" + "sessionExpired": "Sessão expirada - por favor, faça login novamente", + "passwordLoginDisabled": "Login com nome de usuário/senha está atualmente desativado" }, "messages": { "saveSuccess": "Salvo com sucesso", @@ -1354,7 +1511,8 @@ "defaultSnippetFoldersCollapsedDesc": "Quando ativado, todas as pastas de snippets serão recolhidas ao abrir a aba de snippets", "currentPassword": "Senha Atual", "passwordChangedSuccess": "Senha alterada com sucesso! Por favor, faça login novamente.", - "failedToChangePassword": "Falha ao alterar a senha. Por favor, verifique sua senha atual e tente novamente." + "failedToChangePassword": "Falha ao alterar a senha. Por favor, verifique sua senha atual e tente novamente.", + "externalAndLocal": "Autenticação Dupla" }, "user": { "failedToLoadVersionInfo": "Falha ao carregar informações da versão" @@ -1384,10 +1542,10 @@ "redirectUrl": "https://seu-provedor.com/application/o/termix/", "tokenUrl": "https://seu-provedor.com/application/o/token/", "userIdField": "sub", - "usernameField": "name", + "usernameField": "nome", "scopes": "openid email profile", - "userinfoUrl": "https://your-provider.com/application/o/userinfo/", - "enterUsername": "Digite o nome de usuário para tornar admin", + "userinfoUrl": "https://seu-provider.com/application/o/userinfo/", + "enterUsername": "Digite o nome de usuário para tornar administrador", "searchHosts": "Procurar hosts por nome, usuário, IP, pasta, tags...", "enterPassword": "Digite sua senha", "totpCode": "Código TOTP de 6 dígitos", @@ -1405,9 +1563,9 @@ "noFolder": "Sem Pasta", "passwordRequired": "Senha é obrigatória", "failedToDeleteAccount": "Falha ao excluir conta", - "failedToMakeUserAdmin": "Falha ao tornar usuário admin", - "userIsNowAdmin": "Usuário {{username}} agora é um admin", - "removeAdminConfirm": "Tem certeza que deseja remover o status de admin de {{username}}?", + "failedToMakeUserAdmin": "Falha ao tornar usuário administrador", + "userIsNowAdmin": "Usuário {{username}} agora é um administrador", + "removeAdminConfirm": "Tem certeza que deseja remover o status de administrador de {{username}}?", "deleteUserConfirm": "Tem certeza que deseja excluir o usuário {{username}}? Esta ação não pode ser desfeita.", "deleteAccount": "Excluir Conta", "closeDeleteAccount": "Fechar Exclusão de Conta", @@ -1415,7 +1573,7 @@ "deleteAccountWarningDetails": "Excluir sua conta removerá todos os seus dados, incluindo hosts SSH, configurações e preferências. Esta ação é irreversível.", "deleteAccountWarningShort": "Esta ação é irreversível e excluirá permanentemente sua conta.", "cannotDeleteAccount": "Não é Possível Excluir Conta", - "lastAdminWarning": "Você é o último usuário administrador. Você não pode excluir sua conta pois isso deixaria o sistema sem administradores. Por favor, torne outro usuário administrador primeiro, ou contate o suporte do sistema.", + "lastAdminWarning": "Você é o último administrador. Você não pode excluir sua conta pois isso deixaria o sistema sem administradores. Por favor, torne outro usuário administrador primeiro, ou contate o suporte do sistema.", "confirmPassword": "Confirmar Senha", "deleting": "Excluindo...", "cancel": "Cancelar" @@ -1438,7 +1596,6 @@ "deleteItem": "Excluir Item", "createNewFile": "Criar Novo Arquivo", "createNewFolder": "Criar Nova Pasta", - "deleteItem": "Excluir Item", "renameItem": "Renomear Item", "clickToSelectFile": "Clique para selecionar um arquivo", "noSshHosts": "Sem Hosts SSH", @@ -1534,5 +1691,95 @@ "mobileAppInProgressDesc": "Estamos trabalhando em um aplicativo móvel dedicado para proporcionar uma melhor experiência em dispositivos móveis.", "viewMobileAppDocs": "Instalar Aplicativo Móvel", "mobileAppDocumentation": "Documentação do Aplicativo Móvel" + }, + "commandPalette": { + "addCredential": "Adicionar Credencial", + "addHost": "Adicionar Host", + "adminSettings": "Configurações de Administrador", + "close": "Fechar", + "discord": "Discord", + "donate": "Doar", + "edit": "Editar", + "github": "GitHub", + "hostManager": "Gerenciador de Hosts", + "hosts": "Hosts", + "links": "Links", + "navigation": "Navegação", + "openFileManager": "Abrir Gerenciador de Arquivos", + "openServerDetails": "Abrir Detalhes do Servidor", + "press": "Pressione", + "recentActivity": "Atividade Recente", + "searchPlaceholder": "Pesquisar por hosts ou ações rápidas...", + "support": "Suporte", + "toToggle": "para alternar", + "updateLog": "Log de Atualizações", + "userProfile": "Perfil do Usuário" + }, + "dashboard": { + "addCredential": "Adicionar Credencial", + "addHost": "Adicionar Host", + "adminSettings": "Configurações de Administrador", + "cpu": "CPU", + "database": "Banco de Dados", + "discord": "Discord", + "donate": "Doar", + "error": "Erro", + "github": "GitHub", + "healthy": "Saudável", + "loadingRecentActivity": "Carregando atividade recente...", + "loadingServerStats": "Carregando estatísticas do servidor...", + "noRecentActivity": "Nenhuma atividade recente", + "noServerData": "Nenhum dado do servidor disponível", + "notAvailable": "N/D", + "quickActions": "Ações Rápidas", + "ram": "RAM", + "recentActivity": "Atividade Recente", + "reset": "Redefinir", + "serverOverview": "Visão Geral do Servidor", + "serverStats": "Estatísticas do Servidor", + "support": "Suporte", + "title": "Painel", + "totalCredentials": "Total de Credenciais", + "totalServers": "Total de Servidores", + "totalTunnels": "Total de Túneis", + "upToDate": "Atualizado", + "updateAvailable": "Atualização Disponível", + "uptime": "Tempo de Atividade", + "userProfile": "Perfil do Usuário", + "version": "Versão" + }, + "snippets": { + "content": "Comando", + "contentPlaceholder": "ex: sudo systemctl restart nginx", + "contentRequired": "Comando é obrigatório", + "copySuccess": "Copiado \"{{name}}\" para área de transferência", + "copyTooltip": "Copiar snippet para área de transferência", + "create": "Criar Snippet", + "createDescription": "Criar um novo snippet de comando para execução rápida", + "createFailed": "Falha ao criar snippet", + "createSuccess": "Snippet criado com sucesso", + "deleteConfirmDescription": "Tem certeza de que deseja excluir \"{{name}}\"?", + "deleteConfirmTitle": "Excluir Snippet", + "deleteFailed": "Falha ao excluir snippet", + "deleteSuccess": "Snippet excluído com sucesso", + "deleteTooltip": "Excluir este snippet", + "description": "Descrição", + "descriptionPlaceholder": "Descrição opcional", + "edit": "Editar Snippet", + "editDescription": "Editar este snippet de comando", + "editTooltip": "Editar este snippet", + "empty": "Nenhum snippet ainda", + "emptyHint": "Crie um snippet para salvar comandos comumente usados", + "executeSuccess": "Executando: {{name}}", + "failedToFetch": "Falha ao buscar snippets", + "name": "Nome", + "namePlaceholder": "ex: Reiniciar Nginx", + "nameRequired": "Nome é obrigatório", + "new": "Novo Snippet", + "run": "Executar", + "runTooltip": "Executar este snippet no terminal", + "title": "Snippets", + "updateFailed": "Falha ao atualizar snippet", + "updateSuccess": "Snippet atualizado com sucesso" } } \ No newline at end of file diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index 35d24e5b..62e24122 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -59,7 +59,6 @@ "keyTypeRSA": "RSA", "keyTypeECDSA": "ECDSA", "keyTypeEd25519": "Ed25519", - "updateCredential": "Обновить учетные данные", "basicInfo": "Основная информация", "authentication": "Аутентификация", "organization": "Организация", @@ -118,7 +117,6 @@ "credentialSecuredDescription": "Все конфиденциальные данные зашифрованы с помощью AES-256", "passwordAuthentication": "Аутентификация по паролю", "keyAuthentication": "Аутентификация по ключу", - "keyType": "Тип ключа", "securityReminder": "Напоминание о безопасности", "securityReminderText": "Никогда не передавайте ваши учетные данные. Все данные зашифрованы при хранении.", "hostsUsingCredential": "Хосты, использующие эти учетные данные", @@ -166,7 +164,8 @@ "generateKeyPairNote": "Сгенерировать новую пару SSH-ключей напрямую. Это заменит любые существующие ключи в форме.", "invalidKey": "Неверный ключ", "detectionError": "Ошибка определения", - "unknown": "Неизвестно" + "unknown": "Неизвестно", + "credentialId": "Учётные данные ID" }, "dragIndicator": { "error": "Ошибка: {{error}}", @@ -261,7 +260,11 @@ "saveError": "Ошибка сохранения конфигурации", "saving": "Сохранение...", "saveConfig": "Сохранить конфигурацию", - "helpText": "Введите URL, где работает ваш сервер Termix (например, http://localhost:30001 или https://your-server.com)" + "helpText": "Введите URL, где работает ваш сервер Termix (например, http://localhost:30001 или https://your-server.com)", + "changeServer": "Сменить сервер", + "mustIncludeProtocol": "URL сервера должен начинаться с http:// или https://", + "notValidatedWarning": "URL не проверен - убедитесь, что он правильный", + "warning": "Предупреждение" }, "versionCheck": { "error": "Ошибка проверки версии", @@ -294,7 +297,7 @@ "warning": "Предупреждение", "info": "Информация", "success": "Успех", - "loading": "Загрузка", + "loading": "Загрузка...", "required": "Обязательно", "optional": "Опционально", "clear": "Очистить", @@ -308,7 +311,6 @@ "updateAvailable": "Доступно обновление", "sshPath": "SSH-путь", "localPath": "Локальный путь", - "loading": "Загрузка...", "noAuthCredentials": "Нет учетных данных аутентификации для этого SSH-хоста", "noReleases": "Нет выпусков", "updatesAndReleases": "Обновления и выпуски", @@ -323,17 +325,13 @@ "resetPassword": "Сбросить пароль", "resetCode": "Код сброса", "newPassword": "Новый пароль", - "sshPath": "SSH-путь", - "localPath": "Локальный путь", "folder": "Папка", "file": "Файл", "renamedSuccessfully": "успешно переименован", "deletedSuccessfully": "успешно удален", - "noAuthCredentials": "Нет учетных данных аутентификации для этого SSH-хоста", "noTunnelConnections": "Нет настроенных туннельных подключений", "sshTools": "SSH-инструменты", "english": "Английский", - "russia": "Русский", "chinese": "Китайский", "german": "Немецкий", "cancel": "Отмена", @@ -342,36 +340,27 @@ "login": "Войти", "logout": "Выйти", "register": "Зарегистрироваться", - "username": "Имя пользователя", "password": "Пароль", "version": "Версия", "confirmPassword": "Подтвердите пароль", "back": "Назад", "email": "Email", "submit": "Отправить", - "cancel": "Отмена", "change": "Изменить", "save": "Сохранить", "delete": "Удалить", "edit": "Редактировать", "add": "Добавить", "search": "Поиск", - "loading": "Загрузка...", - "error": "Ошибка", - "success": "Успех", - "warning": "Предупреждение", - "info": "Информация", "confirm": "Подтвердить", "yes": "Да", "no": "Нет", "ok": "OK", - "close": "Закрыть", "enabled": "Включено", "disabled": "Отключено", "important": "Важно", "notEnabled": "Не включено", "settingUp": "Настройка...", - "back": "Назад", "next": "Далее", "previous": "Назад", "refresh": "Обновить", @@ -395,7 +384,10 @@ "documentation": "Документация", "retry": "Повторить", "checking": "Проверка...", - "checkingDatabase": "Проверка подключения к базе данных..." + "checkingDatabase": "Проверка подключения к базе данных...", + "connect": "Подключить", + "connecting": "Подключение...", + "saving": "Сохранение..." }, "nav": { "home": "Главная", @@ -424,7 +416,7 @@ "userManagement": "Управление пользователями", "makeAdmin": "Сделать администратором", "removeAdmin": "Убрать администратора", - "deleteUser": "Удалить пользователя", + "deleteUser": "Удалить пользователя {{username}}? Это нельзя отменить.", "allowRegistration": "Разрешить регистрацию", "oidcSettings": "Настройки OIDC", "clientId": "Client ID", @@ -478,10 +470,9 @@ "removeAdminStatus": "Убрать статус администратора у {{username}}?", "adminStatusRemoved": "Статус администратора убран у {{username}}", "failedToRemoveAdminStatus": "Не удалось убрать статус администратора", - "deleteUser": "Удалить пользователя {{username}}? Это нельзя отменить.", "userDeletedSuccessfully": "Пользователь {{username}} успешно удален", "failedToDeleteUser": "Не удалось удалить пользователя", - "overrideUserInfoUrl": "Переопределить User Info URL (не требуется)", + "overrideUserInfoUrl": "Переопределить Пользователь Info URL (не требуется)", "databaseSecurity": "Безопасность базы данных", "encryptionStatus": "Статус шифрования", "encryptionEnabled": "Шифрование включено", @@ -531,7 +522,6 @@ "verificationCompleted": "Проверка совместимости завершена - данные не изменялись", "verificationInProgress": "Проверка завершена", "dataMigrationCompleted": "Миграция данных успешно завершена!", - "migrationCompleted": "Миграция завершена", "verificationFailed": "Проверка совместимости не удалась", "migrationFailed": "Миграция не удалась", "runningVerification": "Выполняется проверка совместимости...", @@ -609,7 +599,33 @@ "requiresPasswordLogin": "Требуется включенный вход по паролю", "passwordLoginDisabledWarning": "Вход по паролю отключен. Убедитесь, что OIDC правильно настроен, иначе вы не сможете войти в Termix.", "oidcRequiredWarning": "КРИТИЧЕСКИ: Вход по паролю отключен. Если вы сбросите или неправильно настроите OIDC, вы потеряете весь доступ к Termix и заблокируете свой экземпляр. Продолжайте только если вы абсолютно уверены.", - "confirmDisableOIDCWarning": "ПРЕДУПРЕЖДЕНИЕ: Вы собираетесь отключить OIDC, пока вход по паролю также отключен. Это заблокирует ваш экземпляр Termix, и вы потеряете весь доступ. Вы абсолютно уверены, что хотите продолжить?" + "confirmDisableOIDCWarning": "ПРЕДУПРЕЖДЕНИЕ: Вы собираетесь отключить OIDC, пока вход по паролю также отключен. Это заблокирует ваш экземпляр Termix, и вы потеряете весь доступ. Вы абсолютно уверены, что хотите продолжить?", + "accountsLinkedSuccessfully": "OIDC пользователь {{oidcUsername}} связан с {{targetUsername}}", + "confirmRevokeAllSessions": "Вы уверены, что хотите отозвать все сессии для этого пользователя?", + "confirmRevokeSession": "Вы уверены, что хотите отозвать эту сессию?", + "failedToFetchSessions": "Не удалось загрузить сессии", + "failedToLinkAccounts": "Не удалось связать аккаунты", + "failedToRevokeSession": "Не удалось отозвать сессию", + "failedToRevokeSessions": "Не удалось отозвать сессии", + "failedToUnlinkOIDC": "Не удалось отвязать OIDC", + "linkAccountsButton": "Связать аккаунты", + "linkOIDCActionAddCapability": "Добавить возможность входа через OIDC к целевому аккаунту с паролем", + "linkOIDCActionDeleteUser": "Удалить аккаунт пользователя OIDC и все его данные", + "linkOIDCActionDualAuth": "Разрешить аккаунту с паролем вход как по паролю, так и через OIDC", + "linkOIDCDialogDescription": "Связать {{username}} (пользователь OIDC) с существующим аккаунтом с паролем. Это включит двойную аутентификацию для аккаунта с паролем.", + "linkOIDCDialogTitle": "Связать аккаунт OIDC с аккаунтом с паролем", + "linkOIDCWarningTitle": "Предупреждение: Данные пользователя OIDC будут удалены", + "linkTargetUsernameLabel": "Имя пользователя целевого аккаунта с паролем", + "linkTargetUsernamePlaceholder": "Введите имя пользователя аккаунта с паролем", + "linkTargetUsernameRequired": "Целевое имя пользователя обязательно", + "linkToPasswordAccount": "Связать с аккаунтом с паролем", + "linkingAccounts": "Связывание...", + "sessionRevokedSuccessfully": "Сессия успешно отозвана", + "sessionsRevokedSuccessfully": "Сессии успешно отозваны", + "unlinkOIDCDescription": "Удалить аутентификацию OIDC для {{username}}? После этого пользователь сможет войти только с помощью имени пользователя/пароля.", + "unlinkOIDCSuccess": "OIDC отвязан от {{username}}", + "unlinkOIDCTitle": "Отвязать аутентификацию OIDC", + "failedToUpdatePasswordLoginStatus": "Не удалось обновить статус входа по паролю" }, "hosts": { "title": "Менеджер хостов", @@ -834,11 +850,11 @@ "minimumContrastRatioDesc": "Автоматически настраивать цвета для лучшей читаемости", "sshAgentForwarding": "Переадресация SSH-агента", "sshAgentForwardingDesc": "Переадресовать агент SSH-аутентификации на удаленный хост", - "backspaceMode": "Режим Backspace", - "selectBackspaceMode": "Выбрать режим Backspace", + "backspaceMode": "Режим Назадspace", + "selectBackspaceMode": "Выбрать режим Назадspace", "backspaceModeNormal": "Обычный (DEL)", "backspaceModeControlH": "Control-H (^H)", - "backspaceModeDesc": "Поведение клавиши Backspace для совместимости", + "backspaceModeDesc": "Поведение клавиши Назадspace для совместимости", "startupSnippet": "Сниппет запуска", "selectSnippet": "Выбрать сниппет", "searchSnippets": "Поиск сниппетов...", @@ -859,8 +875,24 @@ "noServerFound": "Сервер не найден", "jumpHostsOrder": "Подключения будут выполнены в порядке: Промежуточный хост 1 → Промежуточный хост 2 → ... → Целевой сервер", "advancedAuthSettings": "Расширенные настройки аутентификации", - "sudoPasswordAutoFill": "Автозаполнение пароля sudo", - "sudoPasswordAutoFillDesc": "Показывать всплывающее окно для автоматического ввода пароля при выполнении команд sudo" + "addQuickAction": "Добавить Quick Action", + "allHostsInFolderDeleted": "{{count}} хостов успешно удалены из папки \"{{folder}}\"", + "confirmDeleteAllHostsInFolder": "Вы уверены, что хотите удалить все {{count}} хостов в папке \"{{folder}}\"? Это действие нельзя отменить.", + "deleteAllHostsInFolder": "Удалить все хосты в папке", + "editFolderAppearance": "Редактировать вид папки", + "editFolderAppearanceDesc": "Настроить цвет и иконку для папки", + "failedToDeleteHostsInFolder": "Не удалось удалить хосты в папке", + "failedToUpdateFolderAppearance": "Не удалось обновить вид папки", + "folderAppearanceUpdated": "Вид папки успешно обновлен", + "folderColor": "Цвет папки", + "folderIcon": "Иконка папки", + "noSnippetFound": "Сниппет не найден", + "preview": "Предпросмотр", + "quickActionName": "Название действия", + "quickActions": "Быстрые действия", + "quickActionsDescription": "Быстрые действия позволяют создавать пользовательские кнопки, выполняющие SSH-сниппеты на этом сервере. Эти кнопки появятся в верхней части страницы статистики сервера для быстрого доступа.", + "quickActionsList": "Список быстрых действий", + "quickActionsOrder": "Кнопки быстрых действий появятся в указанном выше порядке на странице статистики сервера" }, "terminal": { "title": "Терминал", @@ -988,7 +1020,6 @@ "copyPaths": "Копировать пути", "delete": "Удалить", "properties": "Свойства", - "preview": "Просмотр", "refresh": "Обновить", "downloadFiles": "Скачать {{count}} файлов в браузер", "copyFiles": "Копировать {{count}} элементов", @@ -1003,18 +1034,11 @@ "failedToDeleteItem": "Не удалось удалить элемент", "itemRenamedSuccessfully": "{{type}} успешно переименован", "failedToRenameItem": "Не удалось переименовать элемент", - "upload": "Загрузить", "download": "Скачать", - "newFile": "Новый файл", - "newFolder": "Новая папка", - "rename": "Переименовать", - "delete": "Удалить", "permissions": "Права доступа", "size": "Размер", "modified": "Изменен", "path": "Путь", - "fileName": "Имя файла", - "folderName": "Имя папки", "confirmDelete": "Вы уверены, что хотите удалить {{name}}?", "uploadSuccess": "Файл успешно загружен", "uploadFailed": "Не удалось загрузить файл", @@ -1034,10 +1058,7 @@ "fileSavedSuccessfully": "Файл успешно сохранен", "saveTimeout": "Операция сохранения превысила время ожидания. Файл мог быть успешно сохранен, но операция заняла слишком много времени для завершения. Проверьте логи Docker для подтверждения.", "failedToSaveFile": "Не удалось сохранить файл", - "folder": "Папка", - "file": "Файл", "deletedSuccessfully": "успешно удален", - "failedToDeleteItem": "Не удалось удалить элемент", "connectToServer": "Подключиться к серверу", "selectServerToEdit": "Выберите сервер на боковой панели, чтобы начать редактирование файлов", "fileOperations": "Файловые операции", @@ -1094,10 +1115,8 @@ "unpinFile": "Открепить файл", "removeShortcut": "Удалить ярлык", "saveFilesToSystem": "Сохранить {{count}} файлов как...", - "saveToSystem": "Сохранить как...", "pinFile": "Закрепить файл", "addToShortcuts": "Добавить в ярлыки", - "selectLocationToSave": "Выберите место для сохранения", "downloadToDefaultLocation": "Скачать в место по умолчанию", "pasteFailed": "Вставка не удалась", "noUndoableActions": "Нет действий для отмены", @@ -1115,7 +1134,6 @@ "editPath": "Редактировать путь", "confirm": "Подтвердить", "cancel": "Отмена", - "folderName": "Имя папки", "find": "Найти...", "replaceWith": "Заменить на...", "replace": "Заменить", @@ -1141,23 +1159,18 @@ "outdent": "Уменьшить отступ", "autoComplete": "Автозавершение", "imageLoadError": "Не удалось загрузить изображение", - "zoomIn": "Увеличить", - "zoomOut": "Уменьшить", "rotate": "Повернуть", "originalSize": "Оригинальный размер", "startTyping": "Начните печатать...", "unknownSize": "Неизвестный размер", "fileIsEmpty": "Файл пуст", - "modified": "Изменен", "largeFileWarning": "Предупреждение о большом файле", "largeFileWarningDesc": "Этот файл имеет размер {{size}}, что может вызвать проблемы с производительностью при открытии как текста.", "fileNotFoundAndRemoved": "Файл \"{{name}}\" не найден и был удален из недавних/закрепленных файлов", "failedToLoadFile": "Не удалось загрузить файл: {{error}}", "serverErrorOccurred": "Произошла ошибка сервера. Пожалуйста, попробуйте позже.", - "fileSavedSuccessfully": "Файл успешно сохранен", "autoSaveFailed": "Автосохранение не удалось", "fileAutoSaved": "Файл автосохранен", - "fileDownloadedSuccessfully": "Файл успешно скачан", "moveFileFailed": "Не удалось переместить {{name}}", "moveOperationFailed": "Операция перемещения не удалась", "canOnlyCompareFiles": "Можно сравнивать только два файла", @@ -1193,12 +1206,40 @@ "sshConnectionFailed": "SSH-подключение не удалось. Пожалуйста, проверьте ваше подключение к {{name}} ({{ip}}:{{port}})", "loadFileFailed": "Не удалось загрузить файл: {{error}}", "connectedSuccessfully": "Успешно подключено", - "totpVerificationFailed": "Проверка TOTP не удалась" + "totpVerificationFailed": "Проверка TOTP не удалась", + "andMoreFiles": "and {{count}} more...", + "archiveExtractedSuccessfully": "{{name}} успешно извлечен", + "archiveName": "Имя архива", + "changePermissions": "Изменить права", + "changePermissionsDesc": "Изменить права файла для", + "compress": "Сжать", + "compressFailed": "Сжатие не удалось", + "compressFile": "Сжать файл", + "compressFiles": "Сжать файлы", + "compressFilesDesc": "Сжать {{count}} элементов в архив", + "compressingFiles": "Сжатие {{count}} элементов в {{name}}...", + "compressionFormat": "Формат сжатия", + "currentPermissions": "Текущие права", + "enterArchiveName": "Введите имя архива...", + "execute": "Выполнить", + "extractArchive": "Извлечь архив", + "extractFailed": "Извлечение не удалось", + "extractingArchive": "Извлечение {{name}}...", + "failedToChangePermissions": "Не удалось изменить права", + "filesCompressedSuccessfully": "{{name}} успешно создан", + "group": "Группа", + "newPermissions": "Новые права", + "others": "Другие", + "owner": "Владелец", + "permissionsChangedSuccessfully": "Права успешно изменены", + "read": "Чтение", + "selectedFiles": "Выбранные файлы", + "write": "Запись" }, "tunnels": { "title": "SSH-туннели", "noSshTunnels": "Нет SSH-туннелей", - "createFirstTunnelMessage": "Вы еще не создали SSH-туннели. Настройте туннельные подключения в Менеджере хостов, чтобы начать.", + "createFirstTunnelMessage": "Создайте ваш первый SSH-туннель, чтобы начать. Используйте SSH-менеджер для добавления хостов с туннельными подключениями.", "connected": "Подключено", "disconnected": "Отключено", "connecting": "Подключение...", @@ -1239,17 +1280,8 @@ "local": "Локальный", "remote": "Удаленный", "dynamic": "Динамический", - "noSshTunnels": "Нет SSH-туннелей", - "createFirstTunnelMessage": "Создайте ваш первый SSH-туннель, чтобы начать. Используйте SSH-менеджер для добавления хостов с туннельными подключениями.", "unknownConnectionStatus": "Неизвестно", - "connected": "Подключено", - "connecting": "Подключение...", - "disconnecting": "Отключение...", - "disconnected": "Отключено", "portMapping": "Порт {{sourcePort}} → {{endpointHost}}:{{endpointPort}}", - "disconnect": "Отключить", - "connect": "Подключить", - "canceling": "Отмена...", "endpointHostNotFound": "Хост конечной точки не найден", "discord": "Discord", "githubIssue": "Проблема на GitHub", @@ -1262,7 +1294,7 @@ "disk": "Диск", "network": "Сеть", "uptime": "Время работы", - "loadAverage": "Средняя загрузка", + "loadAverage": "Средняя: {{avg1}}, {{avg5}}, {{avg15}}", "processes": "Процессы", "connections": "Подключения", "usage": "Использование", @@ -1278,7 +1310,6 @@ "cpuCores_one": "{{count}} CPU", "cpuCores_other": "{{count}} CPU", "naCpus": "N/A CPU", - "loadAverage": "Средняя: {{avg1}}, {{avg5}}, {{avg15}}", "loadAverageNA": "Средняя: N/A", "cpuUsage": "Использование CPU", "memoryUsage": "Использование памяти", @@ -1297,8 +1328,6 @@ "totpRequired": "Требуется TOTP-аутентификация", "totpUnavailable": "Статистика сервера недоступна для серверов с включенным TOTP", "load": "Загрузка", - "free": "Свободно", - "available": "Доступно", "editLayout": "Редактировать макет", "cancelEdit": "Отмена", "addWidget": "Добавить виджет", @@ -1323,7 +1352,13 @@ "recentSuccessfulLogins": "Последние успешные входы", "recentFailedAttempts": "Последние неудачные попытки", "noRecentLoginData": "Нет данных о недавних входах", - "from": "с" + "from": "с", + "executeQuickAction": "Выполнить {{name}}", + "executingQuickAction": "Выполнение {{name}}...", + "quickActionError": "Не удалось выполнить {{name}}", + "quickActionFailed": "{{name}} завершилось ошибкой", + "quickActionSuccess": "{{name}} завершено успешно", + "quickActions": "Быстрые действия" }, "auth": { "tagline": "SSH ТЕРМИНАЛ МЕНЕДЖЕР", @@ -1413,7 +1448,27 @@ "signUp": "Зарегистрироваться", "dataLossWarning": "Сброс пароля этим способом удалит все ваши сохраненные SSH-хосты, учетные данные и другие зашифрованные данные. Это действие нельзя отменить. Используйте это только если вы забыли пароль и не вошли в систему.", "authenticationDisabled": "Аутентификация отключена", - "authenticationDisabledDesc": "Все методы аутентификации в настоящее время отключены. Пожалуйста, свяжитесь с вашим администратором." + "authenticationDisabledDesc": "Все методы аутентификации в настоящее время отключены. Пожалуйста, свяжитесь с вашим администратором.", + "authenticating": "Аутентификация...", + "desktopApp": "Настольное приложение", + "loadingServer": "Загрузка сервера...", + "loggingInToDesktopApp": "Вход в настольное приложение", + "loggingInToDesktopAppViaWeb": "Вход в настольное приложение через веб-интерфейс", + "loggingInToMobileApp": "Вход в мобильное приложение", + "mobileApp": "Мобильное приложение", + "redirectingToApp": "Перенаправление в приложение...", + "sshAuthFailedDescription": "Предоставленные учетные данные неверны. Пожалуйста, попробуйте снова с правильными учетными данными.", + "sshAuthenticationFailed": "Аутентификация не удалась", + "sshAuthenticationRequired": "Требуется SSH-аутентификация", + "sshAuthenticationTimeout": "Тайм-аут аутентификации", + "sshKeyPasswordDescription": "Если ваш SSH-ключ зашифрован, введите парольную фразу здесь.", + "sshNoKeyboardInteractive": "Клавиатурная интерактивная аутентификация недоступна", + "sshNoKeyboardInteractiveDescription": "Сервер не поддерживает клавиатурную интерактивную аутентификацию. Пожалуйста, укажите ваш пароль или SSH-ключ.", + "sshPasswordDescription": "Введите пароль для этого SSH-подключения.", + "sshProvideCredentialsDescription": "Пожалуйста, предоставьте ваши SSH-учетные данные для подключения к этому серверу.", + "sshTimeoutDescription": "Попытка аутентификации истекла по времени. Пожалуйста, попробуйте снова.", + "passwordResetSuccess": "Сброс пароля прошел успешно", + "passwordResetSuccessDesc": "Ваш пароль был успешно сброшен. Теперь вы можете войти с новым паролем." }, "errors": { "notFound": "Страница не найдена", @@ -1494,7 +1549,8 @@ "defaultSnippetFoldersCollapsedDesc": "Если включено, все папки сниппетов будут свёрнуты при открытии вкладки сниппетов", "currentPassword": "Текущий пароль", "passwordChangedSuccess": "Пароль успешно изменен! Пожалуйста, войдите снова.", - "failedToChangePassword": "Не удалось изменить пароль. Пожалуйста, проверьте ваш текущий пароль и попробуйте снова." + "failedToChangePassword": "Не удалось изменить пароль. Пожалуйста, проверьте ваш текущий пароль и попробуйте снова.", + "externalAndLocal": "Двойная аутентификация" }, "user": { "failedToLoadVersionInfo": "Не удалось загрузить информацию о версии" @@ -1557,7 +1613,8 @@ "lastAdminWarning": "Вы последний пользователь-администратор. Вы не можете удалить свою учетную запись, так как это оставит систему без администраторов. Пожалуйста, сначала сделайте другого пользователя администратором или свяжитесь с поддержкой системы.", "confirmPassword": "Подтвердите пароль", "deleting": "Удаление...", - "cancel": "Отмена" + "cancel": "Отмена", + "deleteAccountWarningShort": "Это действие необратимо и приведет к окончательному удалению вашей учетной записи." }, "interface": { "sidebar": "Боковая панель", @@ -1577,7 +1634,6 @@ "deleteItem": "Удалить элемент", "createNewFile": "Создать новый файл", "createNewFolder": "Создать новую папку", - "deleteItem": "Удалить элемент", "renameItem": "Переименовать элемент", "clickToSelectFile": "Нажмите для выбора файла", "noSshHosts": "Нет SSH-хостов", diff --git a/src/locales/zh/translation.json b/src/locales/zh/translation.json index bb2f6221..e755889a 100644 --- a/src/locales/zh/translation.json +++ b/src/locales/zh/translation.json @@ -1,7 +1,6 @@ { "credentials": { "credentialsViewer": "凭证查看器", - "credentialsManager": "凭据管理器", "manageYourSSHCredentials": "安全管理您的SSH凭据", "addCredential": "添加凭据", "createCredential": "创建凭据", @@ -164,7 +163,9 @@ "failedToGenerateKeyPair": "生成密钥对失败", "generateKeyPairNote": "直接生成新的SSH密钥对。这将替换表单中的现有密钥。", "invalidKey": "无效密钥", - "detectionError": "检测错误" + "detectionError": "检测错误", + "credentialId": "凭据 ID", + "unknown": "未知" }, "dragIndicator": { "error": "错误:{{error}}", @@ -259,7 +260,11 @@ "saveError": "保存配置时出错", "saving": "保存中...", "saveConfig": "保存配置", - "helpText": "输入您的 Termix 服务器运行地址(例如:http://localhost:30001 或 https://your-server.com)" + "helpText": "输入您的 Termix 服务器运行地址(例如:http://localhost:30001 或 https://your-server.com)", + "changeServer": "更换服务器", + "mustIncludeProtocol": "服务器URL必须以 http:// 或 https:// 开头", + "notValidatedWarning": "URL 未经验证 - 请确保其正确", + "warning": "警告" }, "versionCheck": { "error": "版本检查错误", @@ -335,13 +340,11 @@ "login": "登录", "logout": "登出", "register": "注册", - "username": "用户名", "password": "密码", "confirmPassword": "确认密码", "back": "返回", "email": "邮箱", "submit": "提交", - "cancel": "取消", "change": "更改", "save": "保存", "delete": "删除", @@ -382,7 +385,9 @@ "documentation": "文档", "retry": "重试", "checking": "检查中...", - "checkingDatabase": "正在检查数据库连接..." + "checkingDatabase": "正在检查数据库连接...", + "saving": "保存中...", + "version": "Version" }, "nav": { "home": "首页", @@ -511,7 +516,7 @@ "loadingEncryptionStatus": "正在加载加密状态...", "testMigrationDescription": "验证现有数据是否可以安全地迁移到加密格式,不会实际修改任何数据", "serverMigrationGuide": "服务器迁移指南", - "migrationInstructions": "要将加密数据迁移到新服务器:1) 备份数据库文件,2) 在新服务器设置环境变量 DB_ENCRYPTION_KEY=\"你的密钥\",3) 恢复数据库文件", + "migrationInstructions": "要将加密数据迁移到新服务器:1) 备份数据库文件,2) 在新服务器设置环境变量 DB_ENCRYPTION_KEY=\"你的key\",3) 恢复数据库文件", "environmentProtection": "环境保护", "environmentProtectionDesc": "基于服务器环境信息(主机名、路径等)保护加密密钥,可通过环境变量实现迁移", "verificationCompleted": "兼容性验证完成 - 未修改任何数据", @@ -595,7 +600,32 @@ "passwordLoginDisabledWarning": "密码登录已禁用。请确保 OIDC 已正确配置,否则您将无法登录 Termix。", "oidcRequiredWarning": "严重警告:密码登录已禁用。如果您重置或错误配置 OIDC,您将失去对 Termix 的所有访问权限并使您的实例无法使用。只有在您完全确定的情况下才能继续。", "confirmDisableOIDCWarning": "警告:您即将在密码登录也已禁用的情况下禁用 OIDC。这将使您的 Termix 实例无法使用,您将失去所有访问权限。您确定要继续吗?", - "failedToUpdatePasswordLoginStatus": "更新密码登录状态失败" + "failedToUpdatePasswordLoginStatus": "更新密码登录状态失败", + "accountsLinkedSuccessfully": "OIDC 用户 {{oidcUsername}} 已关联到 {{targetUsername}}", + "confirmRevokeAllSessions": "您确定要撤销此用户的所有会话吗?", + "confirmRevokeSession": "您确定要撤销此会话吗?", + "failedToFetchSessions": "获取会话失败", + "failedToLinkAccounts": "关联账户失败", + "failedToRevokeSession": "撤销会话失败", + "failedToRevokeSessions": "撤销会话失败", + "failedToUnlinkOIDC": "取消 OIDC 关联失败", + "linkAccountsButton": "关联账户", + "linkOIDCActionAddCapability": "将 OIDC 登录功能添加到目标密码账户", + "linkOIDCActionDeleteUser": "删除 OIDC 用户账户及其所有数据", + "linkOIDCActionDualAuth": "允许密码账户同时使用密码和 OIDC 登录", + "linkOIDCDialogDescription": "将 {{username}} (OIDC 用户) 关联到现有的密码账户。这将为密码账户启用双重认证。", + "linkOIDCDialogTitle": "将 OIDC 账户关联到密码账户", + "linkOIDCWarningTitle": "警告: OIDC 用户数据将被删除", + "linkTargetUsernameLabel": "目标密码账户用户名", + "linkTargetUsernamePlaceholder": "输入密码账户的用户名", + "linkTargetUsernameRequired": "目标用户名是必需的", + "linkToPasswordAccount": "关联到密码账户", + "linkingAccounts": "关联中...", + "sessionRevokedSuccessfully": "会话撤销成功", + "sessionsRevokedSuccessfully": "会话撤销成功", + "unlinkOIDCDescription": "移除 {{username}} 的 OIDC 认证?此操作后用户只能使用用户名/密码登录。", + "unlinkOIDCSuccess": "已取消 {{username}} 的 OIDC 关联", + "unlinkOIDCTitle": "取消 OIDC 认证关联" }, "hosts": { "title": "主机管理", @@ -632,7 +662,6 @@ "port": "端口", "name": "名称", "username": "用户名", - "hostName": "主机名", "folder": "文件夹", "tags": "标签", "passwordRequired": "使用密码认证时需要密码", @@ -642,10 +671,6 @@ "addHost": "添加主机", "editHost": "编辑主机", "cloneHost": "克隆主机", - "deleteHost": "删除主机", - "authType": "认证类型", - "passwordAuth": "密码", - "keyAuth": "SSH 密钥", "keyPassword": "密钥密码", "keyType": "密钥类型", "pin": "固定", @@ -653,15 +678,6 @@ "enableTunnel": "启用隧道", "enableFileManager": "启用文件管理器", "defaultPath": "默认路径", - "testConnection": "测试连接", - "connect": "连接", - "disconnect": "断开连接", - "connected": "已连接", - "disconnected": "已断开", - "connecting": "连接中...", - "connectionFailed": "连接失败", - "connectionSuccess": "连接成功", - "addTags": "添加标签(空格添加)", "sourcePort": "源端口", "sourcePortDesc": "(源指通用标签页中的当前连接详情)", "endpointPort": "目标端口", @@ -671,20 +687,7 @@ "remove": "移除", "addConnection": "添加连接", "sshpassRequired": "密码认证需要安装 Sshpass", - "sshpassInstallCommand": "安装命令:sudo apt install sshpass", - "sshServerConfig": "需要配置 SSH 服务器", - "sshServerConfigInstructions": "运行以下命令以允许密码认证:", - "sshConfigCommand1": "sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config", - "sshConfigCommand2": "sudo systemctl restart sshd", - "localPortForwarding": "本地端口转发", - "localPortForwardingDesc": "通过 SSH 连接将本地端口转发到远程服务器", - "remotePortForwarding": "远程端口转发", - "remotePortForwardingDesc": "通过 SSH 连接将远程端口转发到本地服务器", - "dynamicPortForwarding": "动态端口转发(SOCKS 代理)", - "dynamicPortForwardingDesc": "在本地计算机上创建 SOCKS 代理,通过 SSH 连接路由流量", - "bindAddress": "绑定地址", "hostViewer": "主机查看器", - "configuration": "配置", "maxRetries": "最大重试次数", "tunnelConnections": "隧道连接", "enableTerminalDesc": "启用/禁用在终端选项卡中显示此主机", @@ -693,8 +696,6 @@ "autoStartDesc": "容器启动时自动启动此隧道", "defaultPathDesc": "打开此主机文件管理器时的默认目录", "tunnelForwardDescription": "此隧道将从源计算机(常规选项卡中的当前连接详情)的端口 {{sourcePort}} 转发流量到端点计算机的端口 {{endpointPort}}。", - "endpointSshConfiguration": "端点 SSH 配置", - "sourcePortDescription": "(源指的是常规选项卡中的当前连接详情)", "autoStartContainer": "容器启动时自动启动", "upload": "上传", "authentication": "认证方式", @@ -715,20 +716,12 @@ "centosRhelFedora": "CentOS/RHEL/Fedora", "macos": "macOS", "windows": "Windows", - "sshpassOSInstructions": { - "centos": "CentOS/RHEL/Fedora: sudo yum install sshpass 或 sudo dnf install sshpass", - "macos": "macOS: brew install hudochenkov/sshpass/sshpass", - "windows": "Windows: 使用 WSL 或考虑使用 SSH 密钥认证" - }, + "sshpassOSInstructions": {}, "sshServerConfigRequired": "SSH 服务器配置要求", "sshServerConfigDesc": "对于隧道连接,SSH 服务器必须配置允许端口转发:", "gatewayPortsYes": "绑定远程端口到所有接口", "allowTcpForwardingYes": "启用端口转发", "permitRootLoginYes": "如果使用 root 用户进行隧道连接", - "sshServerConfigReverse": "对于反向 SSH 隧道,端点 SSH 服务器必须允许:", - "gatewayPorts": "GatewayPorts yes(绑定远程端口)", - "allowTcpForwarding": "AllowTcpForwarding yes(端口转发)", - "permitRootLogin": "PermitRootLogin yes(如果使用 root)", "editSshConfig": "编辑 /etc/ssh/sshd_config 并重启 SSH: sudo systemctl restart sshd", "updateHost": "更新主机", "hostUpdatedSuccessfully": "主机 \"{{name}}\" 更新成功!", @@ -758,7 +751,6 @@ "tunnel": "隧道", "fileManager": "文件管理器", "serverStats": "服务器统计", - "hostViewer": "主机查看器", "enableServerStats": "启用服务器统计", "enableServerStatsDesc": "启用/禁用此主机的服务器统计信息收集", "displayItems": "显示项目", @@ -894,14 +886,20 @@ "noServerFound": "未找到服务器", "jumpHostsOrder": "连接将按顺序进行:跳板主机 1 → 跳板主机 2 → ... → 目标服务器", "advancedAuthSettings": "高级身份验证设置", - "sudoPasswordAutoFill": "Sudo 密码自动填充", - "sudoPasswordAutoFillDesc": "在 sudo 命令时显示弹窗以自动输入密码" + "addQuickAction": "添加 Quick Action", + "noSnippetFound": "没有 snippet found", + "quickActionName": "Action 名称", + "quickActions": "Quick Actions", + "quickActionsDescription": "Quick actions allow you to 创建 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", + "quickActionsOrder": "Quick action buttons will appear in the order listed above on the Server Stats page", + "sshpassRequiredDesc": "For 密码 认证 in tunnels, sshpass must be installed on the system." }, "terminal": { "title": "终端", "terminalTitle": "终端 - {{host}}", "terminalWithPath": "终端 - {{host}}:{{path}}", - "runTitle": "运行 {{command}} - {{host}}", + "runTitle": "运行 {{command}} - {{name}}", "totpRequired": "需要双因素认证", "totpCodeLabel": "验证码", "totpPlaceholder": "000000", @@ -1228,7 +1226,16 @@ "write": "写入", "execute": "执行", "permissionsChangedSuccessfully": "权限修改成功", - "failedToChangePermissions": "权限修改失败" + "failedToChangePermissions": "权限修改失败", + "autoSaveFailed": "自动保存失败", + "delete": "删除", + "download": "下载", + "fileAutoSaved": "文件已自动保存", + "fileDownloadedSuccessfully": "文件 \"{{name}}\" 下载成功", + "fileSavedSuccessfully": "文件保存成功", + "path": "Path", + "permissions": "Permissions", + "size": "Size" }, "tunnels": { "title": "SSH 隧道", @@ -1278,7 +1285,8 @@ "endpointHostNotFound": "未找到端点主机", "discord": "Discord", "githubIssue": "GitHub 问题", - "forHelp": "寻求帮助" + "forHelp": "寻求帮助", + "unknownConnectionStatus": "Unk没有wn" }, "serverStats": { "title": "服务器统计", @@ -1320,8 +1328,6 @@ "totpRequired": "需要 TOTP 认证", "totpUnavailable": "启用了 TOTP 的服务器无法使用服务器统计功能", "load": "负载", - "free": "空闲", - "available": "可用", "editLayout": "编辑布局", "cancelEdit": "取消", "addWidget": "添加小组件", @@ -1346,7 +1352,14 @@ "recentSuccessfulLogins": "最近成功登录", "recentFailedAttempts": "最近失败尝试", "noRecentLoginData": "无最近登录数据", - "from": "来自" + "from": "来自", + "executeQuickAction": "执行 {{name}}", + "executingQuickAction": "执行中 {{name}}...", + "failedToFetchHomeData": "获取主页数据失败", + "quickActionError": "无法执行 {{name}}", + "quickActionFailed": "{{name}} 失败", + "quickActionSuccess": "{{name}} 完成成功", + "quickActions": "Quick Actions" }, "auth": { "tagline": "SSH 终端管理器", @@ -1446,7 +1459,17 @@ "sshTimeoutDescription": "身份验证尝试超时。请重试。", "sshProvideCredentialsDescription": "请提供您的 SSH 凭据以连接到此服务器。", "sshPasswordDescription": "输入此 SSH 连接的密码。", - "sshKeyPasswordDescription": "如果您的 SSH 密钥已加密,请在此处输入密码。" + "sshKeyPasswordDescription": "如果您的 SSH 密钥已加密,请在此处输入密码。", + "authenticating": "Authenticating...", + "authenticationDisabled": "认证已禁用", + "authenticationDisabledDesc": "所有认证方式当前已禁用。请联系您的管理员。", + "desktopApp": "桌面应用", + "loadingServer": "加载服务器中...", + "loggingInToDesktopApp": "登录桌面应用", + "loggingInToDesktopAppViaWeb": "通过网页界面登录桌面应用", + "loggingInToMobileApp": "登录移动应用", + "mobileApp": "移动应用", + "redirectingToApp": "重定向到应用..." }, "errors": { "notFound": "页面未找到", @@ -1527,7 +1550,8 @@ "defaultSnippetFoldersCollapsedDesc": "启用后,打开代码片段标签时所有文件夹将默认折叠", "currentPassword": "当前密码", "passwordChangedSuccess": "密码修改成功!请重新登录。", - "failedToChangePassword": "修改密码失败。请检查您当前的密码并重试。" + "failedToChangePassword": "修改密码失败。请检查您当前的密码并重试。", + "externalAndLocal": "Dual Auth" }, "user": { "failedToLoadVersionInfo": "加载版本信息失败" @@ -1557,7 +1581,7 @@ "redirectUrl": "https://your-provider.com/application/o/termix/", "tokenUrl": "https://your-provider.com/application/o/token/", "userIdField": "sub", - "usernameField": "name", + "usernameField": "名称", "scopes": "openid email profile", "userinfoUrl": "https://your-provider.com/application/o/userinfo/", "enterUsername": "输入用户名以设为管理员", @@ -1579,9 +1603,9 @@ "passwordRequired": "需要输入密码", "failedToDeleteAccount": "删除账户失败", "failedToMakeUserAdmin": "设为管理员失败", - "userIsNowAdmin": "用户 {{username}} 现在是管理员", - "removeAdminConfirm": "确定要移除 {{username}} 的管理员权限吗?", - "deleteUserConfirm": "确定要删除用户 {{username}} 吗?此操作无法撤销。", + "userIsNowAdmin": "用户 {{用户名}} 现在是管理员", + "removeAdminConfirm": "确定要移除 {{用户名}} 的管理员权限吗?", + "deleteUserConfirm": "确定要删除用户 {{用户名}} 吗?此操作无法撤销。", "deleteAccount": "删除账户", "closeDeleteAccount": "关闭删除账户", "deleteAccountWarning": "此操作无法撤销。这将永久删除您的账户和所有相关数据。", @@ -1628,7 +1652,76 @@ "failedToStartOidcLogin": "启动 OIDC 登录失败", "failedToGetUserInfoAfterOidc": "OIDC 登录后获取用户信息失败", "loginWithExternalProvider": "使用外部提供者登录", - "failedToStartTotpSetup": "启动 TOTP 设置失败" + "failedToStartTotpSetup": "启动 TOTP 设置失败", + "addHost": "添加 主机", + "adding": "添加ing...", + "authentication": "认证", + "cannotDeleteAccount": "Can没有t 删除 Account", + "clickToSelectFile": "Click to 选择 a 文件", + "clientId": "Client ID", + "clientSecret": "Client Secret", + "closeDeleteAccount": "关闭 删除 Account", + "configureExternalProvider": "Configure external identity provider for", + "confirmPassword": "Confirm 密码", + "connected": "已连接", + "createNewFile": "创建 New 文件", + "createNewFolder": "创建 New 文件夹", + "defaultPath": "Default Path", + "deleteAccount": "删除 Account", + "deleteItem": "删除 Item", + "deleting": "删除中...", + "disconnected": "已断开", + "editHost": "编辑 主机", + "enableFileManager": "启用 文件 Manager", + "enableTerminal": "启用 终端", + "enableTunnel": "启用 隧道", + "endpointHostNotFound": "Endpoint host 未找到", + "external": "External", + "failedToCompletePasswordReset": "无法 完成 密码 reset", + "failedToDisableTotp": "无法 禁用 TOTP", + "failedToGenerateBackupCodes": "无法 generate 返回up codes", + "failedToInitiatePasswordReset": "无法 initiate 密码 reset", + "failedToMakeUserAdmin": "无法 make 用户 管理员", + "failedToUpdateOidcConfig": "无法 更新 OIDC 配置", + "failedToVerifyResetCode": "无法 verify reset code", + "invalidTotpCode": "Invalid TOTP code", + "invalidVerificationCode": "Invalid verification code", + "key": "密钥", + "keyPassword": "密钥 密码", + "keyType": "密钥 Type", + "keyTypeRequired": "密钥 Type 是必需的 when using 密钥 认证", + "loading": "加载中...", + "local": "Local", + "login": "Login", + "loginWithExternal": "Login with External Provider", + "makeAdmin": "Make 管理员", + "maxRetries": "Max Retries", + "newFile": "New 文件", + "newFolder": "New 文件夹", + "password": "密码", + "passwordRequired": "密码 是必需的 when using 密码 认证", + "refresh": "刷新", + "renameItem": "Re名称 Item", + "resetPassword": "Reset 密码", + "retryingConnection": "重试ing 连接", + "saveConfiguration": "保存 配置", + "saving": "保存中...", + "sendResetCode": "Send Reset Code", + "signUp": "Sign Up", + "sshHosts": "SSH 主机s", + "sshKeyRequired": "SSH Private 密钥 是必需的 when using 密钥 认证", + "sshPrivateKey": "SSH Private 密钥", + "tunnelConnections": "隧道 连接s", + "unknown": "Unk没有wn", + "unknownError": "Unk没有wn 错误", + "updateHost": "更新 主机", + "updateKey": "更新 密钥", + "upload": "上传", + "user": "用户", + "verifyAndEnable": "Verify and 启用", + "verifyCode": "Verify Code", + "waitingForRetry": "Waiting for 重试", + "warning": "警告" }, "mobile": { "selectHostToStart": "选择一个主机以开始您的终端会话",