From 903a5f5799c30fda59c43421e5ec27934bf5f545 Mon Sep 17 00:00:00 2001 From: "massimo.antonello" Date: Tue, 14 Oct 2025 17:57:05 +0200 Subject: [PATCH 1/7] begin --- Directory.Packages.props | 1 + ExternalConnectors/ExternalConnectors.csproj | 1 + ExternalConnectors/VO/VaultOpenbao.cs | 10 + .../ExternalCredentialProviderSelector.cs | 3 + mRemoteNG/Language/Language.Designer.cs | 81 +- mRemoteNG/Language/Language.cs-CZ.resx | 4 + mRemoteNG/Language/Language.de.resx | 540 ++-- mRemoteNG/Language/Language.el.resx | 20 +- mRemoteNG/Language/Language.es-AR.resx | 14 +- mRemoteNG/Language/Language.es.resx | 16 +- mRemoteNG/Language/Language.fi-FI.resx | 65 +- mRemoteNG/Language/Language.fr.resx | 1010 +++---- mRemoteNG/Language/Language.hu.resx | 20 +- mRemoteNG/Language/Language.it.resx | 25 +- mRemoteNG/Language/Language.ja-JP.resx | 16 +- mRemoteNG/Language/Language.ko-KR.resx | 2318 ++++++++-------- mRemoteNG/Language/Language.lt.resx | 136 +- mRemoteNG/Language/Language.nb-NO.resx | 248 +- mRemoteNG/Language/Language.nl.resx | 16 +- mRemoteNG/Language/Language.pl.resx | 12 +- mRemoteNG/Language/Language.pt-BR.resx | 20 +- mRemoteNG/Language/Language.pt.resx | 26 +- mRemoteNG/Language/Language.resx | 3 + mRemoteNG/Language/Language.ru.resx | 4 + mRemoteNG/Language/Language.sv-SE.resx | 98 +- mRemoteNG/Language/Language.ta.resx | 6 +- mRemoteNG/Language/Language.tr-TR.resx | 2380 +++++++++-------- mRemoteNG/Language/Language.uk.resx | 860 +++--- mRemoteNG/Language/Language.zh-CN.resx | 16 +- mRemoteNG/Language/Language.zh-TW.resx | 26 +- 30 files changed, 4088 insertions(+), 3907 deletions(-) create mode 100644 ExternalConnectors/VO/VaultOpenbao.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index 06a3c9a4..bfb7eac3 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -98,6 +98,7 @@ + diff --git a/ExternalConnectors/ExternalConnectors.csproj b/ExternalConnectors/ExternalConnectors.csproj index d401f206..b121be69 100644 --- a/ExternalConnectors/ExternalConnectors.csproj +++ b/ExternalConnectors/ExternalConnectors.csproj @@ -20,6 +20,7 @@ + diff --git a/ExternalConnectors/VO/VaultOpenbao.cs b/ExternalConnectors/VO/VaultOpenbao.cs new file mode 100644 index 00000000..9ddbede9 --- /dev/null +++ b/ExternalConnectors/VO/VaultOpenbao.cs @@ -0,0 +1,10 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ExternalConnectors.VO { + public class VaultOpenbao { + } +} diff --git a/mRemoteNG/Connection/ExternalCredentialProviderSelector.cs b/mRemoteNG/Connection/ExternalCredentialProviderSelector.cs index 4aecdfaf..24a95e0e 100644 --- a/mRemoteNG/Connection/ExternalCredentialProviderSelector.cs +++ b/mRemoteNG/Connection/ExternalCredentialProviderSelector.cs @@ -16,5 +16,8 @@ namespace mRemoteNG.Connection [LocalizedAttributes.LocalizedDescription(nameof(Language.ECPOnePassword))] OnePassword = 3, + + [LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbao))] + VaultOpenbao = 4, } } diff --git a/mRemoteNG/Language/Language.Designer.cs b/mRemoteNG/Language/Language.Designer.cs index e817c231..1577891b 100644 --- a/mRemoteNG/Language/Language.Designer.cs +++ b/mRemoteNG/Language/Language.Designer.cs @@ -1041,15 +1041,6 @@ namespace mRemoteNG.Resources.Language { } } - /// - /// Looks up a localized string similar to Are you sure you want to disconnect "{0}"?. - /// - internal static string ConfirmDisconnectConnection { - get { - return ResourceManager.GetString("ConfirmDisconnectConnection", resourceCulture); - } - } - /// /// Looks up a localized string similar to Are you sure you want to delete the credential record, {0}?. /// @@ -1104,6 +1095,15 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Are you sure you want to disconnect "{0}"?. + /// + internal static string ConfirmDisconnectConnection { + get { + return ResourceManager.GetString("ConfirmDisconnectConnection", resourceCulture); + } + } + /// /// Looks up a localized string similar to Do you want to close all open connections?. /// @@ -1537,33 +1537,6 @@ namespace mRemoteNG.Resources.Language { } } - /// - /// Looks up a localized string similar to Platform error: {0}. - /// - internal static string ErrorPlatformNotSupported { - get { - return ResourceManager.GetString("ErrorPlatformNotSupported", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Missing dependency: {0}. - /// - internal static string ErrorMissingDependency { - get { - return ResourceManager.GetString("ErrorMissingDependency", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Architecture mismatch: {0}. - /// - internal static string ErrorArchitectureMismatch { - get { - return ResourceManager.GetString("ErrorArchitectureMismatch", resourceCulture); - } - } - /// /// Looks up a localized string similar to Debug. /// @@ -2050,6 +2023,15 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Architecture mismatch: {0}. + /// + internal static string ErrorArchitectureMismatch { + get { + return ResourceManager.GetString("ErrorArchitectureMismatch", resourceCulture); + } + } + /// /// Looks up a localized string similar to The database version {0} is not compatible with this version of {1}.. /// @@ -2108,6 +2090,24 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Missing dependency: {0}. + /// + internal static string ErrorMissingDependency { + get { + return ResourceManager.GetString("ErrorMissingDependency", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Platform error: {0}. + /// + internal static string ErrorPlatformNotSupported { + get { + return ResourceManager.GetString("ErrorPlatformNotSupported", resourceCulture); + } + } + /// /// Looks up a localized string similar to Errors. /// @@ -6784,6 +6784,15 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Vault or Openbao. + /// + internal static string VaultOpenbao { + get { + return ResourceManager.GetString("VaultOpenbao", resourceCulture); + } + } + /// /// Looks up a localized string similar to Verify:. /// diff --git a/mRemoteNG/Language/Language.cs-CZ.resx b/mRemoteNG/Language/Language.cs-CZ.resx index d175fd9c..242375c4 100644 --- a/mRemoteNG/Language/Language.cs-CZ.resx +++ b/mRemoteNG/Language/Language.cs-CZ.resx @@ -1881,4 +1881,8 @@ mRemoteNG se nyní ukončí a zahájí instalaci. Upozornit mě pouze při ukončení několika připojení + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.de.resx b/mRemoteNG/Language/Language.de.resx index 5893c0fc..ea00c823 100644 --- a/mRemoteNG/Language/Language.de.resx +++ b/mRemoteNG/Language/Language.de.resx @@ -195,6 +195,9 @@ Vererbung + + &Starten + Starte PuTTY @@ -225,9 +228,6 @@ Anzeige - - Gateway - Verschiedenes @@ -294,9 +294,18 @@ Nachricht + + B&eende {0} + Die Kommandozeilenparameter konnten nicht ausgewertet werden! + + Eine Verbindungsdatei öffnen + + + &Nochmal versuchen + {0} hat festgestellt, dass das Lenovo Auto Scroll Utility auf diesem Computer ausgeführt wird. Dieses Dienstprogramm ist dafür bekannt, dass es Probleme mit {0} verursacht. Es wird empfohlen, dass Sie es deaktivieren oder deinstallieren. @@ -395,6 +404,9 @@ Starte mit neuer Datei. Verbindungsdatei konnte nicht als "{0}" gespeichert werden! + + Ohne Anmeldedaten verbinden + Mit der Konsolensitzung verbinden @@ -419,6 +431,9 @@ Starte mit neuer Datei. Erkennen + + Keine Verbindung zur Konsolensitzung herstellen + Keine Verbindung herstellen, wenn Authentifizierung fehlschlägt @@ -458,6 +473,9 @@ Starte mit neuer Datei. Die Verbindungsliste konnte nicht gespeichert werden. + + PuTTY konnte nicht gestartet werden. + Entschlüsselung ist gescheitert. {0} @@ -482,9 +500,36 @@ Starte mit neuer Datei. Exportieren + + Alles exportieren + + + Datei exportieren + + + Element exportieren + + + Eigenschaften exportieren + + + Die Aktuell gewählte Verbindung exportieren + + + Den Aktuell gewählten Ordner exportieren + + + In Datei &exportieren... + + + Neues externes Programm + Alle Dateien (*.*) + + Alle wichtigen Dateien + Application Dateien (*.exe) @@ -527,6 +572,9 @@ Starte mit neuer Datei. Host + + HTTP + Verbindung mit HTTP fehlgeschlagen! @@ -536,12 +584,24 @@ Starte mit neuer Datei. Fehler beim Ändern des HTTP-Dokumentfensters! + + Internet Explorer + + + HTTPS + Setzen der HTTP-Parameter fehlgeschlagen! Von Active Directory importieren + + Beim Importieren der Datei ist ein Fehler aufgetreten ("{0}"). + + + Von &Datei importieren + Von Port Scan importieren @@ -623,6 +683,9 @@ Starte mit neuer Datei. Laden per SQL fehlgeschlagen! + + Die Verbindungsinformationen konnten nicht vom SQL-Server geladen werden. + Laden der XML-Datei fehlgeschlagen! @@ -683,6 +746,9 @@ Starte mit neuer Datei. Neue Verbindungsdatei + + Neues externes Tool + Meldungen @@ -819,6 +885,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Offene Ports + + Testen... + Theme @@ -834,9 +903,18 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Passwortschutz + + Die beide Passwörter müssen übereinstimmen. + + + Das Passwort muss mindestens 3 Zeichen lang sein. + Bitte alle Felder ausfüllen! + + Port-Scan abgeschlossen. + Kann das Port-Scan-Panel nicht laden! @@ -852,6 +930,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Wählen Sie, wie Sie sich am VNC-Server authentifizieren wollen. + + Wählen Sie aus, ob die Größe der Verbindung automatisch angepasst werden soll, wenn die Fenstergröße geändert oder der Vollbildmodus umgeschaltet wird. Benötigt RDC 8.0 oder höher. + Wählen Sie, ob Bitmap-Zwischenspeicherung verwendet werden soll. @@ -894,6 +975,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Das ausgewählte Icon wird bei Verbindung zum Host im Tab angezeigt. + + Gibt die Lastausgleichsinformationen an, die von Lastenausgleichsroutern verwendet werden, um den besten Server auszuwählen. + Geben Sie die MAC-Adresse des Remote Hosts ein (kann für externe Applikationen verwendet werden). @@ -942,6 +1026,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Wählen Sie, ob ihre lokalen Drucker auf dem entfernten System zur Verfügung stehen sollen. + + Umleitung der Zwischenablage erlauben. + Wählen Sie, ob lokale Smartcards auf dem Remotehost verfügbar sein sollen. @@ -999,6 +1086,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Authentifizierungsmodus + + Automatische Größenänderung + Bitmaps zwischenspeichern @@ -1035,6 +1125,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Externes Programm vorher + + Lastausgleichsinfo + MAC-Adresse @@ -1083,6 +1176,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Drucker + + Zwischenablage + Töne @@ -1172,6 +1268,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Direkt: {0} + + Schnellverbindung + Hinzufügen zur Direktverbindungshistorie fehlgeschlagen! @@ -1349,9 +1448,6 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Wollen sie die aktuelle Verbindungsdatei speichern, bevor eine andere geladen wird? - - Verbindungen beim Schließen speichern - Graphics Interchange Format Datei (.gif)|*.gif|Joint Photographic Experts Group Datei (.jpeg)|*.jpeg|Joint Photographic Experts Group Datei (.jpg)|*.jpg|Portable Network Graphics Datei (.png)|*.png @@ -1463,6 +1559,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell mRemoteNG Passwort + + mRemoteNG Passwort für {0} + Wähle Panel @@ -1475,6 +1574,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell Integration versuchen + + In der Symbolleiste anzeigen + Ultra Vnc Repeater @@ -1515,6 +1617,9 @@ mRemoteNG wird nun geschlossen und die Installation gestartet. Wöchentlich + + Der Changelog konnte nicht heruntergeladen werden. + Anderen Benutzernamen und Passwort verwenden @@ -1566,105 +1671,6 @@ mRemoteNG wird nun geschlossen und die Installation gestartet. Ja - - &Starten - - - Eine Verbindungsdatei öffnen - - - Ohne Anmeldedaten verbinden - - - Keine Verbindung zur Konsolensitzung herstellen - - - PuTTY konnte nicht gestartet werden. - - - Alles exportieren - - - Datei exportieren - - - Eigenschaften exportieren - - - Alle wichtigen Dateien - - - Von &Datei importieren - - - Testen... - - - Verschlüsselungs-Engine - - - Sicherheit - - - Dynamisch - - - Hoch - - - Mittel - - - Klangqualität - - - Download abgeschlossen! - - - Titel - - - Datei öffnen - - - Andere Datei öffnen - - - Neue Verbindungsdatei erstellen - - - B&eende {0} - - - &Nochmal versuchen - - - Neues externes Programm - - - Die Verbindungsinformationen konnten nicht vom SQL-Server geladen werden. - - - Die beide Passwörter müssen übereinstimmen. - - - Das Passwort muss mindestens 3 Zeichen lang sein. - - - Port-Scan abgeschlossen. - - - Wählen Sie aus, ob die Größe der Verbindung automatisch angepasst werden soll, wenn die Fenstergröße geändert oder der Vollbildmodus umgeschaltet wird. Benötigt RDC 8.0 oder höher. - - - Gibt die Lastausgleichsinformationen an, die von Lastenausgleichsroutern verwendet werden, um den besten Server auszuwählen. - - - Lastausgleichsinfo - - - mRemoteNG Passwort für {0} - RDP-Verbindungs-Timeout @@ -1683,75 +1689,36 @@ mRemoteNG wird nun geschlossen und die Installation gestartet. Block-Cipher-Modus - - Zeige diese Nachrichtentypen + + Verschlüsselungs-Engine - - Die Verbindungsdatei konnte nicht gefunden werden. + + Sicherheit - - Existierende Datei importieren + + Iterationen der Ableitungsfunktion - - Verbindung erfolgreich + + Dynamisch - - Datenbank '{0}' ist nicht verfügbar. + + Hoch - - Verbindungen nach jeder Bearbeitung speichern - - - Suchergebnisse in Verbindungen filtern - - - Verbindung testen - - - Time-Out [Sekunden] - - - Automatische Größenänderung - - - In der Symbolleiste anzeigen - - - Zugewiesene Anmeldedaten - - - Neuer Thema Name - - - Verbindung testen - - - In Datei &exportieren... - - - Beim Importieren der Datei ist ein Fehler aufgetreten ("{0}"). - - - Erweiterte Sicherheitsoptionen - - - Diese Nachrichtentypen protokollieren - - - Login fehlgeschlagen für Benutzer '{0}'. - - - mRemoteNG Optionen - - - Neues externes Tool - - - Der Changelog konnte nicht heruntergeladen werden. + + Mittel Wählen Sie die vom Protokoll bereitgestellte Klangqualität: Dynamisch, Mittel, Hoch + + Klangqualität + + + Download abgeschlossen! + + + Download + Die Anzahl der Minuten, die die RDP-Sitzung im Leerlauf verbleibt, bevor sie automatisch getrennt wird (0 bedeutet kein Limit) @@ -1761,6 +1728,9 @@ mRemoteNG wird nun geschlossen und die Installation gestartet. Hinzufügen + + Titel + Möchten Sie die Anmeldeinformationen {0} wirklich löschen? @@ -1786,74 +1756,161 @@ Die Passwortlänge muss zwischen {0} und {1} liegen Wählen Sie einen Pfad für das mRemoteNG-Logfile + + Zeige diese Nachrichtentypen + Pfad des Logfiles + + Diese Nachrichtentypen protokollieren + Pfad auswählen + + Datei öffnen + Standard verwenden Protokollierung + + Pop-ups + In das Anwendungsverzeichnis protokollieren + + Zugewiesene Anmeldedaten + + + Anmeldedaten + + + Andere Datei öffnen + Anmeldeinformationen nicht verfügbar Soll das Theme wirklich gelöscht werden? + + Neuer Thema Name + Das Theme kann nicht erstellt werden, Name bereits vorhanden oder Sonderzeichen im Namen Namen des neuen Theme angeben + + Warnung: Ein Neustart ist erforderlich, um Änderungen am Theme anzuwenden. + Externes Tool mit Namen "{0}" konnte nicht gefunden werden + + Neue Verbindungsdatei erstellen + + + Die Verbindungsdatei konnte nicht gefunden werden. + + + Existierende Datei importieren + Eigenen Pfad verwenden + + Verbindung testen + Server '{0}' nicht erreichbar + + Verbindung erfolgreich + + + Login fehlgeschlagen für Benutzer '{0}'. + + + Datenbank '{0}' ist nicht verfügbar. + + + Verbindungen nach jeder Bearbeitung speichern + + + Suchergebnisse in Verbindungen filtern + + + Verbindung testen + Verwenden Sie die UTF8-Codierung für die RDP-Eigenschaft "Load Balance Info" - - Die Aktuell gewählte Verbindung exportieren + + Time-Out [Sekunden] - - Den Aktuell gewählten Ordner exportieren + + Arbeitsverzeichnis: - - Pop-ups + + Arbeitsverzeichnis - - Element exportieren + + Position der Symbolleiste sperren - - HTTP + + Multi-SSH Symbolleiste - - Internet Explorer + + Erweiterte Sicherheitsoptionen - - HTTPS + + mRemoteNG Optionen - - Download + + Erstelle ein leeres Panel, wenn mRemoteNG gestartet wird + + + Muss zwischen 0 und 255 liegen + + + Löschen + + + Alle Verbindungen wieder verbinden + + + Alles außer dieser Verbindung trennen + + + Sind Sie sicher, dass Sie alle Verbindungen bis auf "{0}" schließen wollen? + + + Beim Versuch, die Verbindung zum RDP-Host '{0}' wiederherzustellen, ist ein Fehler aufgetreten + + + Beim Versuch, die Verbindungsauflösung auf den Host '{0}' zu ändern, ist ein Fehler aufgetreten + + + Fehlermeldung + + + Eine unbehandelte Ausnahme ist aufgetreten + + + Hostnamen kopieren Suchleiste über den Verbindungen anzeigen - - Erstelle ein leeres Panel, wenn mRemoteNG gestartet wird + + Aktive Verbindung im Verbindungsbaum verfolgen Update-Kanal @@ -1863,30 +1920,9 @@ Die Passwortlänge muss zwischen {0} und {1} liegen Preview beinhaltet Betas & Release Candidates. Nightly umfasst Alphas, Betas und Release Candidates. - - Aktive Verbindung im Verbindungsbaum verfolgen - - - Iterationen der Ableitungsfunktion - - - Anmeldedaten - Anwenden - - Warnung: Ein Neustart ist erforderlich, um Änderungen am Theme anzuwenden. - - - Zwischenablage - - - Umleitung der Zwischenablage erlauben. - - - Multi-SSH Symbolleiste - Zeige diese Verbindung in den Favoriten @@ -1905,8 +1941,8 @@ Nightly umfasst Alphas, Betas und Release Candidates. Leerzeichen nicht aus Benutzernamen entfernen - - Benutze VM ID + + Legt die Version des RDP fest, die beim Öffnen von Verbindungen verwendet wird. Verwenden Sie die VM ID, um eine Verbindung zu einer VM herzustellen die auf Hyper-V ausgeführt wird. @@ -1914,18 +1950,24 @@ Nightly umfasst Alphas, Betas und Release Candidates. Die ID der virtuellen Hyper-V-Maschine, zu der eine Verbindung hergestellt werden soll. + + Benutze VM ID + RDP-Client konnte nicht erstellt werden. Die RDP-Protokollversion {0} wird auf diesem System nicht unterstützt. Bitte wählen Sie eine ältere Protokollversion. - - Legt die Version des RDP fest, die beim Öffnen von Verbindungen verwendet wird. - Zum Verbinden mittels eines SSH Tunnels (Jump Host) geben Sie hier den Namen der SSH Verbindung an, welche benutzt werden soll um den SSH Tunnel einzurichten. + + SSH-Tunnel + Geben Sie hier zusaetzliche Optionen an welche fuer die SSH Verbindung verwendet werden sollen. Fuer weitere Infos zu den moeglichen Optionen konsultieren sie die Putty Dokumentation. + + SSH-Optionen + Konfigurationsfehler der Verbindung. Verbindung zu: "{0}" via SSH Tunnel: "{1}" nicht möglich. Eine Verbindung mit dem als SSH Tunnel konfiguriertem Namen konnte nicht gefunden werden. Löschen Sie die SSH Tunnel Konfiguration or geben sie eine existierende SSH Verbindung an, welche zum Aufbau eine Tunnels zum Erreichen des eigentlichen Zielsystems verwendet werden soll. @@ -1950,6 +1992,9 @@ Nightly umfasst Alphas, Betas und Release Candidates. Legen Sie ein Kennwort fest, mit dem die Verbindungsdatei verschlüsselt werden soll. Sie werden aufgefordert Ihr Passwort einzugeben, bevor Sie mRemoteNG starten. + + Erweiterten Modus verwenden + In den System Tray schließen @@ -1962,75 +2007,21 @@ Nightly umfasst Alphas, Betas und Release Candidates. Legt fest, ob ein Mausschatten sichtbar sein soll. - - Legt fest, ob Menüs und Fenster mit Animationseffekten in der Remote-Sitzung angezeigt werden können. - Legt fest, ob der Fensterinhalt angezeigt wird, wenn Sie das Fenster an eine neue Position ziehen. + + Legt fest, ob Menüs und Fenster mit Animationseffekten in der Remote-Sitzung angezeigt werden können. + Verstecke/Zeige Menü - - Arbeitsverzeichnis - - - Arbeitsverzeichnis: - - - Erweiterten Modus verwenden - - - Eine unbehandelte Ausnahme ist aufgetreten - - - Alle Verbindungen wieder verbinden - - - Schnellverbindung - - - SSH-Optionen - - - SSH-Tunnel - - - Muss zwischen 0 und 255 liegen - - - Beim Versuch, die Verbindung zum RDP-Host '{0}' wiederherzustellen, ist ein Fehler aufgetreten - - - Beim Versuch, die Verbindungsauflösung auf den Host '{0}' zu ändern, ist ein Fehler aufgetreten - - - Sind Sie sicher, dass Sie alle Verbindungen bis auf "{0}" schließen wollen? - - - Hostnamen kopieren - - - Löschen - - - Alles außer dieser Verbindung trennen - - - Position der Symbolleiste sperren - - - Fehlermeldung - - - WebView2-Erstellung fehlgeschlagen + + Vererbung auf Kinder anwenden Standardvererbung anwenden - - Vererbung auf Kinder anwenden - Anmeldung abgebrochen! Bei bedarf neu einleiten. C# to Powershell transfer issue with encoding possible @@ -2050,4 +2041,17 @@ Nightly umfasst Alphas, Betas und Release Candidates. *Einige Einstellungen werden von Ihrem Unternehmen festgelegt. Für weitere Informationen wenden Sie sich an Ihren Systemadministrator. + + Gateway + + + Verbindungen beim Schließen speichern + + + WebView2-Erstellung fehlgeschlagen + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.el.resx b/mRemoteNG/Language/Language.el.resx index 8ecc995e..5b779aaf 100644 --- a/mRemoteNG/Language/Language.el.resx +++ b/mRemoteNG/Language/Language.el.resx @@ -59,7 +59,7 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - + @@ -105,17 +105,17 @@ - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - text/microsoft-resx 2.0 + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Σχετικά με @@ -222,9 +222,6 @@ Οθόνη - - Πύλη - Διάφορα @@ -273,4 +270,11 @@ Το αρχείο συνδέσεων "{0}" δεν μπορεί να φορτωθεί! + + Πύλη + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.es-AR.resx b/mRemoteNG/Language/Language.es-AR.resx index 704bc8f7..bc08c7ce 100644 --- a/mRemoteNG/Language/Language.es-AR.resx +++ b/mRemoteNG/Language/Language.es-AR.resx @@ -59,7 +59,7 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - + @@ -105,17 +105,17 @@ - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - text/microsoft-resx 2.0 + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Propiedades por defecto @@ -309,4 +309,8 @@ VerificarVersionBasedeDatos (Config.Connections.Save) falló. {0} + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.es.resx b/mRemoteNG/Language/Language.es.resx index f80570a4..bf0138a3 100644 --- a/mRemoteNG/Language/Language.es.resx +++ b/mRemoteNG/Language/Language.es.resx @@ -225,9 +225,6 @@ Pantalla - - Puerta de Enlace - Varios @@ -1330,9 +1327,6 @@ Mensaje: ¿Quiere guardar el actual archivo de conexiones antes de cargar otro? - - Guardar conexiones al salir - Pantalla @@ -1541,4 +1535,14 @@ mRemoteNG ahora se cerrará y comenzará la instalación. + + Puerta de Enlace + + + Guardar conexiones al salir + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.fi-FI.resx b/mRemoteNG/Language/Language.fi-FI.resx index 02897166..6ee67b42 100644 --- a/mRemoteNG/Language/Language.fi-FI.resx +++ b/mRemoteNG/Language/Language.fi-FI.resx @@ -1,5 +1,64 @@ + @@ -79,4 +138,8 @@ 65536 Värit (16-bit) - + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.fr.resx b/mRemoteNG/Language/Language.fr.resx index 106194b5..742b1825 100644 --- a/mRemoteNG/Language/Language.fr.resx +++ b/mRemoteNG/Language/Language.fr.resx @@ -120,6 +120,9 @@ À propos + + Active Directory + AddNodeFromXML a échoué ! @@ -195,6 +198,9 @@ Héritage + + &Démarrer + Lancement de PuTTY @@ -225,9 +231,6 @@ Affichage - - Passerelle - Divers @@ -294,9 +297,18 @@ Message + + Quitter {0} + Impossible de convertir les arguments de la ligne de commande ! + + &Ouvrir un fichier de connexions + + + &Réessayer + {0} a détecté que l'utilitaire Lenovo Auto Scroll Utility est exécuté sur le système. Cet utilitaire est connu pour générer des problèmes avec {0}. Il est recommandé de le désactiver ou de le désinstaller. @@ -366,6 +378,9 @@ Connexion échouée ! + + Une erreur du protocole de connexion s'est produite. Hôte : "{1}" ; Code d'erreur : "{2}" ; Description de l'erreur : "{0}" + L'ouverture de la connexion a échoué ! @@ -391,6 +406,9 @@ Démarrage avec un nouveau fichier de connexions. Impossible d'enregistrer le fichier des connexions sous "{0}" ! + + Se connecter sans informations de connexion + Se connecter à une session de console @@ -415,6 +433,9 @@ Démarrage avec un nouveau fichier de connexions. Détecter + + Ne pas se connecter à la session console + Ne pas se connecter si l'authentification échoue @@ -454,12 +475,22 @@ Démarrage avec un nouveau fichier de connexions. La liste des connexions n'a pas pu être sauvegardée. + + PuTTY n'a pas pu être démarré. + Échec du déchiffrement.{0} Échec du chiffrement.{0} + + Le paramètre de sécurité Windows "Utiliser des algorithmes compatibles FIPS pour le chiffrement, le hachage et la signature" est activé. + +Voir l'article de support Microsoft http://support.microsoft.com/kb/811833 pour plus d'informations. + +{0} n'est pas totalement compatible avec FIPS. Cliquer sur OK pour poursuivre à vos risques et périls ou Annuler pour quitter. + Erreurs @@ -478,9 +509,39 @@ Démarrage avec un nouveau fichier de connexions. Exporter + + Tout exporter + + + Exporter le fichier + + + Exporter les éléments + + + Exporter les propriétés + + + Exporter la connexion sélectionnée + + + Exporter le dossier sélectionné + + + &Exporter vers le fichier... + + + Nouvel outil externe + + + &Format de fichier : + Tous les fichiers (*.*) + + Tous les fichiers importables + Applications (*.exe) @@ -490,6 +551,12 @@ Démarrage avec un nouveau fichier de connexions. Fichiers XML mRemoteNG (*.xml) + + Fichiers du gestionnaire de connexions PuTTY + + + Fichiers Remote Desktop Connection Manager (*.rdg) + Fichiers RDP (*.rdp) @@ -523,6 +590,9 @@ Démarrage avec un nouveau fichier de connexions. Hôte + + HTTP + Échec de la connexion HTTP ! @@ -532,6 +602,12 @@ Démarrage avec un nouveau fichier de connexions. Échec de changement de tuile du document HTTP ! + + Internet Explorer + + + HTTPS + Échec de Set HTTP Props ! @@ -541,6 +617,12 @@ Démarrage avec un nouveau fichier de connexions. Importer à partir d'Active Directory + + Une erreur est survenue lors de l'import du fichier "{0}". + + + Importer depuis le &fichier... + Importer à partir du scan de ports @@ -622,6 +704,9 @@ Démarrage avec un nouveau fichier de connexions. Le chargement à partir de la base de données SQL a échoué + + Les informations de connexion n'ont pas pu être chargées depuis SQL Server. + Le chargement à partir du fichier XML a échoué ! @@ -772,6 +857,12 @@ Démarrage avec un nouveau fichier de connexions. Déplacer vers le haut + + CSV mRemoteNG + + + XML mRemoteNG + Mes identifiants de connexion actuels (informations de connexion Windows) @@ -821,6 +912,9 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Ports ouverts + + En cours de test... + Thème @@ -836,9 +930,18 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Protéger le mot de passe + + Les deux mots de passe doivent correspondre. + + + Le mot de passe doit faire au minimum 3 caractères. + Merci de remplir tous les champs + + Scan des ports terminé. + Impossible de charger le panneau Scan de ports ! @@ -854,6 +957,10 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Sélectionner la manière de vous authentifier auprès du serveur VNC. + + Sélectionner de redimensionner automatiquement la connexion quand la fenêtre est redimensionnée ou lorsque le mode plein écran est activé. +Nécessite RCD 8.0 ou postérieur. + Indiquer si vous souhaitez utiliser le cache bitmap ou non. @@ -896,6 +1003,9 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Choisir une icône qui s'affichera lorsque vous serez connecté à l'hôte. + + Spécifier les informations de répartition de charge à utiliser par les routeurs pour choisir le meilleur serveur. + Entrer l'adresse MAC de l'hôte distant si vous souhaitez l'utiliser dans un outil externe. @@ -944,12 +1054,18 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Choisir si les imprimantes locales doivent être redirigées vers l'hôte distant. + + Sélectionner si le presse-papiers doit être partagé. + Choisir si les cartes à puce doivent être disponibles sur l'hôte distant. Choisir de quelle manière les sons de l'hôte distant doivent être redirigés. + + Sélectionner si le périphérique d'entrée audio par défaut sur la machine distance doit être redirigé vers cet ordinateur. + Choisir quel moteur de rendu disponible sera utilisé pour afficher du HTML. @@ -1001,6 +1117,9 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Mode d'authentification + + Redimensionner automatiquement + Mettre en cache les bitmaps @@ -1037,6 +1156,9 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Outil externe avant + + Charger les informations de répartition + Adresse MAC @@ -1085,9 +1207,15 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Imprimantes + + Presse-papiers + Sons + + Capture audio + Moteur de rendu @@ -1353,9 +1481,6 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Souhaitez-vous enregistrer le fichier actuel de connexions avant d'en charger un autre ? - - Enregistrer les connexions à la fermeture - Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png @@ -1467,6 +1592,9 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Mot de passe + + Mot de passe mRemoteNG pour {0} + Choix du panneau @@ -1479,6 +1607,9 @@ Si vous rencontrez une erreur, créez un nouveau fichier de connexions ! Essayer d'intégrer + + Afficher dans la barre d'outils + UltraVNC Repeater @@ -1519,6 +1650,9 @@ mRemoteNG va se fermer et l'installation va commencer. Hebdomadaire + + L'historique des changements n'a pas pu être téléchargé. + Utiliser des noms d'utilisateur et mots de passe différents @@ -1570,434 +1704,74 @@ mRemoteNG va se fermer et l'installation va commencer. Oui - - Crédits - - - Démarrer minimisé - - - Fermer vers la zone de notification - - - &Exporter vers le fichier... - - - &Démarrer - - - &Réessayer - - - Active Directory - - - Ajouter - - - Options de sécurité avancées - - - Toujours afficher les onglets des connexions - - - Appliquer - - - Capture audio - - - Redimensionner automatiquement - - - Historique des modifications - - - Sélectionner un chemin pour le fichier de log de mRemoteNG - - - Sélectionner un chemin - - - Effacer la chaîne de recherche - - - Presse-papiers - - - &Ouvrir un fichier de connexions - - - Tous les fichiers importables - - - Une erreur est survenue lors de l'import du fichier "{0}". - - - Une exception non gérée s'est produite - - - Les deux mots de passe doivent correspondre. - - - Impossible de créer le thème : le libellé existe déjà ou des caractères spéciaux sont présents dans le nom - - - Impossible de glisser-déposer un noeud sur lui-même. - - - Favori - - - Favoris - - - Utiliser les paramètres par défaut - - - UltraVNC SingleClick - - - Entrer le nouveau nom du thème - - - Titre - - - Délai d'expiration [secondes] - - - Ce noeud n'est pas sélectionnable pour glisser-déposer. - - - Cette exception va forcer la fermeture de mRemoteNG - - - Le mot de passe doit faire au minimum 3 caractères. - - - En cours de test... - - - Test de la connexion - - - Tester les paramètres - - - Tester la connexion - - - Démarrer un programme / un shell alternatif - - - Démarrer un programme - - - Pile d'appels - - - En dehors de l'index - - - Dynamique - - - Quitter {0} - - - Qualité du son - - - Multi SSH : - - - Barre d'outils multi SSH - - - Répertoire de travail : - - - Répertoire de travail - - - Fenêtre - - - Proxy - - - Popups - - - PowerShell - - - SmartCard - - - VM ID - - - Utiliser le VM ID - - - Utiliser le mode amélioré - - - Traquer la connexion active dans l'arborescence des connexions + + Délai d'expiration de la connexion RDP Ce noeud est déjà présent dans ce dossier. - - Tunnel SSH - - - Options SSH - - - Afficher/masquer les menus - - - Afficher dans la barre d'outils - - - Utiliser un chemin de fichier personnalisé - - - Le fichier de connexions est introuvable. - - - Sécurité - - - Enregistrer les connexions après chaque modification - - - Démarrer avec des privilèges élevés - - - Canal stable - - - Lecture seule : - - - Version RDP - - - Minutes avant la veille - - - Une erreur du protocole de connexion s'est produite. Hôte : "{1}" ; Code d'erreur : "{2}" ; Description de l'erreur : "{0}" - - - Exception non gérée mRemoteNG - - - Message de l'exception - - - Supprimer - - - Tout déconnecter sauf cet onglet - - - Déconnecter les onglets à droite - - - Reconnecter toutes les connexions - - - Doit être entre 0 et 255 - - - Options mRemoteNG - - - Verrouiller la position de la barre d'outils - - - Connexion réussie - - - Le serveur '{0}' n'était pas accessible. - - - Importer un fichier existant - - - Base de données '{0}' indisponible. - - - Identification échouée pour l'utilisateur '{0}'. - - - Avertissement : un redémarrage est nécessaire pour prendre en compte les modifications apportées aux thèmes. - - - Nouveau nom du thème - - - Copier le nom d'hôte - - - Edge Chromium - - - Environnement - - - Ne pas supprimer les espaces dans les noms d'utilisateurs - - - Créer un panneau vide au démarrage de mRemoteNG - - - Licence - - - Informations de connexion - - - Informations de connexion non disponibles - - - Télécharger - - - Moteur de chiffrage - - - Débugage - - - Tout exporter - - - Exporter le fichier - - - Exporter les éléments - - - Test de chiffrage - - - Exporter les propriétés - - - &Format de fichier : - - - Téléchargement terminé ! - - - Exporter la connexion sélectionnée - - - Exporter le dossier sélectionné - - - Construction de l'URL à charger échouée - - - Haut - - - HTTP - - - HTTPS - - - Importer depuis le &fichier... - - - Internet Explorer - - - Itérations de la fonction de clé de dérivation + + Impossible de glisser-déposer un noeud sur lui-même. Impossible de glisser le noeud parent sur l'enfant. - - Créer un nouveau fichier de connexions + + Ce noeud n'est pas sélectionnable pour glisser-déposer. - - Filtrer les résultats de la recherche dans l'arborescence des connexions + + Bloquer le mode de chiffrement - - Charger les informations de répartition + + Moteur de chiffrage - - Logger vers le répertoire de l'application + + Sécurité - - Logger les types de messages suivants + + Itérations de la fonction de clé de dérivation - - Chemin du fichier de log + + Dynamique + + + Haut Moyen - - CSV mRemoteNG + + Sélectionner la qualité audio fournie par le protocole : dynamique, moyenne, élevée - - Mot de passe mRemoteNG pour {0} + + Qualité du son - - XML mRemoteNG + + Téléchargement terminé ! - - Nouvel outil externe + + Télécharger - - Ouvrir un fichier différent + + Nombre de minutes pendant lesquelles laisser la session RDP en veille avant déconnexion (utiliser 0 pour ne pas mettre de limite) - - Ouvrir un fichier + + Minutes avant la veille - - Scan des ports terminé. + + Ajouter - - Appuyer sur ENTRER pour envoyer. Ctrl+C est envoyé immédiatement. + + Titre - - Placer la barre de recherche au-dessus de l'arborescence des connexions + + Voulez-vous vraiment supprimer les informations de connexion {0} ? - - Ne pas se connecter à la session console + + Choisir de recevoir une alerte lors de la déconnexion de la session RDP pour cause d'inactivité - - L'historique des changements n'a pas pu être téléchargé. - - - Les informations de connexion n'ont pas pu être chargées depuis SQL Server. - - - L'ID de la machine virtuelle Hyper-V à laquelle se connecter. - - - PuTTY n'a pas pu être démarré. - - - Afficher sur la colonne de la barre d'outils - - - Afficher les types de messages suivants - - - Afficher cette connexion dans le menu des favoris. - - - La longueur du mot de passe doit être entre {0} et {1} + + Le mot de passe doit contenir au minimum {0} caractères suivants : {1} Le mot de passe doit contenir au minimum {0} caractère(s) minuscule(s) @@ -2005,152 +1779,382 @@ mRemoteNG va se fermer et l'installation va commencer. Le mot de passe doit contenir au minimum {0} caractère(s) numérique(s) - - Le mot de passe doit contenir au minimum {0} caractères suivants : {1} - Le mot de passe doit contenir au minimum {0} caractère(s) majuscule(s) - - Une erreur s'est produite en tentant de changer la résolution de l'hôte '{0}' + + La longueur du mot de passe doit être entre {0} et {1} + + + Sélectionner un chemin pour le fichier de log de mRemoteNG + + + Débugage + + + Afficher les types de messages suivants + + + Chemin du fichier de log + + + Logger les types de messages suivants + + + Sélectionner un chemin + + + Ouvrir un fichier + + + Utiliser les paramètres par défaut Log en cours - - Délai d'expiration de la connexion RDP + + Popups - - Se connecter sans informations de connexion - - - Fichiers du gestionnaire de connexions PuTTY - - - Fichiers Remote Desktop Connection Manager (*.rdg) + + Logger vers le répertoire de l'application Informations de connexion assignées + + Informations de connexion + + + Ouvrir un fichier différent + + + Informations de connexion non disponibles + + + Voulez-vous vraiment supprimer le thème ? + + + Nouveau nom du thème + + + Impossible de créer le thème : le libellé existe déjà ou des caractères spéciaux sont présents dans le nom + + + Entrer le nouveau nom du thème + + + Avertissement : un redémarrage est nécessaire pour prendre en compte les modifications apportées aux thèmes. + Impossible de trouver l'outil externe "{0}" - - Détermine si l'ombre du curseur doit être visible. + + Créer un nouveau fichier de connexions - - Détermine si le clignotement du curseur doit être désactivé. + + Le fichier de connexions est introuvable. + + + Importer un fichier existant + + + Utiliser un chemin de fichier personnalisé + + + Test de la connexion + + + Le serveur '{0}' n'était pas accessible. + + + Connexion réussie + + + Identification échouée pour l'utilisateur '{0}'. + + + Base de données '{0}' indisponible. + + + Enregistrer les connexions après chaque modification + + + Filtrer les résultats de la recherche dans l'arborescence des connexions + + + Tester la connexion + + + Lecture seule : + + + Utiliser l'encodage UTF-8 pour la propriété RDP "Load Balance Info" + + + Délai d'expiration [secondes] + + + Répertoire de travail : + + + Démarrer avec des privilèges élevés + + + Afficher sur la colonne de la barre d'outils + + + Répertoire de travail + + + Verrouiller la position de la barre d'outils + + + Barre d'outils multi SSH + + + Importer les sub OUs + + + Options de sécurité avancées + + + Options mRemoteNG + + + Créer un panneau vide au démarrage de mRemoteNG + + + Doit être entre 0 et 255 + + + En dehors de l'index + + + Supprimer + + + Reconnecter toutes les connexions + + + UltraVNC SingleClick + + + Déconnecter les onglets à droite + + + Tout déconnecter sauf cet onglet + + + Voulez-vous vraiment fermer toutes les connexions à l'exception de "{0}" ? + + + Une erreur s'est produite en tentant de se reconnecter à l'hôte RDP '{0}' + + + Une erreur s'est produite en tentant de changer la résolution de l'hôte '{0}' + + + Pile d'appels + + + Message de l'exception + + + Exception non gérée mRemoteNG + + + Une exception non gérée s'est produite + + + Cette exception va forcer la fermeture de mRemoteNG + + + Copier le nom d'hôte + + + Placer la barre de recherche au-dessus de l'arborescence des connexions + + + Traquer la connexion active dans l'arborescence des connexions + + + Toujours afficher les onglets des connexions + + + Canal stable Le canal stable ne concerne que les versions finalisées. Le canal preview inclut les versions beta et release candidates. Le canal nightly inclut les versions alpha, beta et release candidates. - - Une erreur s'est produite en tentant de se reconnecter à l'hôte RDP '{0}' + + Appliquer - - Voulez-vous vraiment supprimer les informations de connexion {0} ? + + Proxy - - Bloquer le mode de chiffrement + + Multi SSH : + + + Appuyer sur ENTRER pour envoyer. Ctrl+C est envoyé immédiatement. + + + Afficher cette connexion dans le menu des favoris. + + + Favori + + + Favoris + + + Effacer la chaîne de recherche Se connecter en visualisation seulement - - Création WebView2 échouée avec une exception + + Ne pas supprimer les espaces dans les noms d'utilisateurs - - Utiliser le VM ID pour se connecter à la machine virtuelle en fonctionnement sur Hyper-V. - - - Utiliser l'encodage UTF-8 pour la propriété RDP "Load Balance Info" - - - Le paramètre de sécurité Windows "Utiliser des algorithmes compatibles FIPS pour le chiffrement, le hachage et la signature" est activé. - -Voir l'article de support Microsoft http://support.microsoft.com/kb/811833 pour plus d'informations. - -{0} n'est pas totalement compatible avec FIPS. Cliquer sur OK pour poursuivre à vos risques et périls ou Annuler pour quitter. - - - Voulez-vous vraiment fermer toutes les connexions à l'exception de "{0}" ? - - - Sélectionner la qualité audio fournie par le protocole : dynamique, moyenne, élevée - - - Se connecter à un hôte Hyper-V avec le mode amélioré activé. - - - Impossible de créer un client RDP. La version du protocole RDP {0} n'est pas supportée sur cette machine. Veuillez choisir une ancienne version du protocole. - - - Détermine si les menus et fenêtres doivent être affichés avec des animations dans la session à distance. - - - Détermine si le contenu de la fenêtre est affiché lors du glisser-déposer vers un autre emplacement. - - - Voulez-vous vraiment supprimer le thème ? + + Environnement Le chiffrement de {0} entrée(s) en utilisant {1}/{2} et {3} itérations a duré {4} secondes. - - Importer les sub OUs + + Test de chiffrage - - Sélectionner si le presse-papiers doit être partagé. - - - Sélectionner si le périphérique d'entrée audio par défaut sur la machine distance doit être redirigé vers cet ordinateur. - - - Sélectionner de redimensionner automatiquement la connexion quand la fenêtre est redimensionnée ou lorsque le mode plein écran est activé. -Nécessite RCD 8.0 ou postérieur. - - - Pour les connexions à travers un tunnel SSH, spécifier la connexion SSH à utiliser pour établir le tunnel SSH. - - - Choisir de recevoir une alerte lors de la déconnexion de la session RDP pour cause d'inactivité - - - Spécifier un mot de passe pour chiffrer le fichier de connexions. Ce mot de passe vous sera demandé au démarrage de mRemoteNG. + + Tester les paramètres Spécifier la version de RDP à utiliser pour ouvrir les connexions. - - Spécifier les informations de répartition de charge à utiliser par les routeurs pour choisir le meilleur serveur. + + Version RDP - - Spécifier le mot de passe du serveur Remote Desktop Gateway. + + Utiliser le VM ID pour se connecter à la machine virtuelle en fonctionnement sur Hyper-V. + + + L'ID de la machine virtuelle Hyper-V à laquelle se connecter. + + + Utiliser le VM ID + + + VM ID + + + Impossible de créer un client RDP. La version du protocole RDP {0} n'est pas supportée sur cette machine. Veuillez choisir une ancienne version du protocole. + + + Pour les connexions à travers un tunnel SSH, spécifier la connexion SSH à utiliser pour établir le tunnel SSH. + + + Tunnel SSH Préciser ici les options additionnelles à utiliser pour les connexions SSH. Se reporter à la documentation PuTTY pour plus de détails. - - Problème de configuration du tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. Une connexion de tunnel SSH a été trouvée dans l'arborescence mais le protocole n'est pas dérivé de PuTTY. Vérifiez que la connexion de tunnel SSH utilise bien le protocole SSH. + + Options SSH Problème de configuration du tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. Aucune connexion de tunnel SSH utilisant le protocole SSH 1 ou 2 n'a été trouvée dans l'arborescence. Supprimez le tunnel SSH ou spécifiez un tunnel SSH existant. - - Problème de configuration du tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. Le processus PuTTY s'est terminé. Vérifiez d'éventuels problèmes avec la connexion de tunnel SSH. - - - Problème de configuration du tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. La connexion SSH a échoué. Vérifiez d'éventuels problèmes avec la connexion de tunnel SSH. - - - Expiration du délai pour la connexion au tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. Le port du tunnel local n'as pas répondu à temps. Vérifiez d'éventuels problèmes avec la connexion de tunnel SSH. + + Problème de configuration du tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. Une connexion de tunnel SSH a été trouvée dans l'arborescence mais le protocole n'est pas dérivé de PuTTY. Vérifiez que la connexion de tunnel SSH utilise bien le protocole SSH. Initialisation du tunnel SSH échouée. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. La connexion SSH n'a pas pu être initialisée. Vérifiez d'éventuels problèmes avec la connexion de tunnel SSH. - - Nombre de minutes pendant lesquelles laisser la session RDP en veille avant déconnexion (utiliser 0 pour ne pas mettre de limite) + + Problème de configuration du tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. La connexion SSH a échoué. Vérifiez d'éventuels problèmes avec la connexion de tunnel SSH. + + + Problème de configuration du tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. Le processus PuTTY s'est terminé. Vérifiez d'éventuels problèmes avec la connexion de tunnel SSH. + + + Expiration du délai pour la connexion au tunnel SSH. La connexion vers : "{0}" via le tunnel SSH : "{1}" est impossible. Le port du tunnel local n'as pas répondu à temps. Vérifiez d'éventuels problèmes avec la connexion de tunnel SSH. + + + Démarrer minimisé + + + Spécifier un mot de passe pour chiffrer le fichier de connexions. Ce mot de passe vous sera demandé au démarrage de mRemoteNG. + + + Se connecter à un hôte Hyper-V avec le mode amélioré activé. + + + Utiliser le mode amélioré + + + Spécifier le mot de passe du serveur Remote Desktop Gateway. + + + Fermer vers la zone de notification + + + Fenêtre + + + PowerShell + + + Historique des modifications + + + Crédits + + + Licence + + + Détermine si le clignotement du curseur doit être désactivé. + + + Détermine si l'ombre du curseur doit être visible. + + + Détermine si le contenu de la fenêtre est affiché lors du glisser-déposer vers un autre emplacement. + + + Détermine si les menus et fenêtres doivent être affichés avec des animations dans la session à distance. + + + Edge Chromium + + + Construction de l'URL à charger échouée + + + Afficher/masquer les menus + + + Démarrer un programme / un shell alternatif + + + Démarrer un programme + + + SmartCard + + + Passerelle + + + Enregistrer les connexions à la fermeture + + + Création WebView2 échouée avec une exception + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.hu.resx b/mRemoteNG/Language/Language.hu.resx index bfc1adc7..c1d6adf9 100644 --- a/mRemoteNG/Language/Language.hu.resx +++ b/mRemoteNG/Language/Language.hu.resx @@ -59,7 +59,7 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - + @@ -105,17 +105,17 @@ - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - text/microsoft-resx 2.0 + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Névjegy @@ -183,9 +183,6 @@ Képernyő - - Átjáró - Egyéb @@ -333,4 +330,11 @@ SQL szerver használata a kapcsolatok kezelésére + + Átjáró + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.it.resx b/mRemoteNG/Language/Language.it.resx index 4ac931ee..a64f3cf8 100644 --- a/mRemoteNG/Language/Language.it.resx +++ b/mRemoteNG/Language/Language.it.resx @@ -59,7 +59,7 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - + @@ -105,17 +105,17 @@ - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - text/microsoft-resx 2.0 + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Informazioni su @@ -225,9 +225,6 @@ Schermo - - Gateway - Altro @@ -1342,9 +1339,6 @@ Messaggio: Vuoi salvare il file delle connessioni corrente prima di caricarne un altro? - - Salva le connessioni all'uscita - File Graphics Interchange Format (.gif)|*.gif|File Joint Photographic Experts Group (.jpeg)|*.jpeg|File Joint Photographic Experts Group (.jpg)|*.jpg|File Portable Network Graphics (.png)|*.png @@ -1556,4 +1550,13 @@ mRemoteNG verrà chiuso e l'installazione avrà inizio. + + Gateway + + + Salva le connessioni all'uscita + + + Vault o Openbao + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ja-JP.resx b/mRemoteNG/Language/Language.ja-JP.resx index 277722fb..a1b26d12 100644 --- a/mRemoteNG/Language/Language.ja-JP.resx +++ b/mRemoteNG/Language/Language.ja-JP.resx @@ -233,9 +233,6 @@ ディスプレイ - - ゲートウェイ - その他 @@ -1486,9 +1483,6 @@ Message: Do you want to save the current connections file before loading another? - - 終了時に保存する - Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png @@ -1716,4 +1710,14 @@ mRemoteNGを終了してインストールを開始します はい + + ゲートウェイ + + + 終了時に保存する + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ko-KR.resx b/mRemoteNG/Language/Language.ko-KR.resx index 06586bdc..fb50188e 100644 --- a/mRemoteNG/Language/Language.ko-KR.resx +++ b/mRemoteNG/Language/Language.ko-KR.resx @@ -118,1692 +118,1696 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - mRemoteNG 정보 - + mRemoteNG 정보 + - Active Directory - + Active Directory + - AddNodeFromXML 실패! - + AddNodeFromXML 실패! + - 어플리케이션에 단일 인스턴스만 허용(mRemoteNG 재시작 필요) - + 어플리케이션에 단일 인스턴스만 허용(mRemoteNG 재시작 필요) + - 항상 - + 항상 + - 인증이 실패하더라도 항상 연결 - + 인증이 실패하더라도 항상 연결 + - 연결시 패널 선택 대화상자 항상 표시 - + 연결시 패널 선택 대화상자 항상 표시 + - 패널 탭 항상 표시 - + 패널 탭 항상 표시 + - 알림 영역 아이콘 항상 표시 - + 알림 영역 아이콘 항상 표시 + - 다음에 다시 묻기 - + 다음에 다시 묻기 + - 지금 사용자 설정 - + 지금 사용자 설정 + - 권장 설정 사용 - + 권장 설정 사용 + - {0}은 새로운 기능 및 버그 수정을 제공 할 수있는 업데이트를 자동으로 확인할 수 있습니다. 매주 업데이트를 확인하도록 {0}을 허용하는 것이 좋습니다. - + {0}은 새로운 기능 및 버그 수정을 제공 할 수있는 업데이트를 자동으로 확인할 수 있습니다. 매주 업데이트를 확인하도록 {0}을 허용하는 것이 좋습니다. + - 자동 업데이트 설정 - + 자동 업데이트 설정 + - 양상 - + 양상 + - 자동 저장 간격 : - + 자동 저장 간격 : + - 최종 버전 - + 최종 버전 + - 검색(&B) - + 검색(&B) + - 취소(&C) - + 취소(&C) + - 변경 - + 변경 + - 닫기(&C) - + 닫기(&C) + - 기본 상속 - + 기본 상속 + - 기본 속성 - + 기본 속성 + - 연결 끊기 - + 연결 끊기 + - 아이콘 - + 아이콘 + - 임포트(&I) - + 임포트(&I) + - 상속 - + 상속 + - 시작(&L) - + 시작(&L) + - PuTTY 시작 - + PuTTY 시작 + - 확인(&O) - + 확인(&O) + - 등록정보 - + 등록정보 + - 스캔(&S) - + 스캔(&S) + - 중단(&S) - + 중단(&S) + - 포록시 테스트 - + 포록시 테스트 + - 포트 스캔을 시작 할 수 없습니다. 잘못된 IP 형식 입니다. - + 포트 스캔을 시작 할 수 없습니다. 잘못된 IP 형식 입니다. + - 모양 - + 모양 + - 연결 - + 연결 + - 표시 - - - 게이트웨이 - + 표시 + - 기타 - + 기타 + - 프로토콜 - + 프로토콜 + - 리디렉션 - + 리디렉션 + - 검사 실패! - + 검사 실패! + - 서버와의 연결이 끊어지면 자동으로 다시 연결을 시도합니다 (RDP && ICA 만 해당). - + 서버와의 연결이 끊어지면 자동으로 다시 연결을 시도합니다 (RDP && ICA 만 해당). + - 이 메시지를 다시 표시 안 함. - + 이 메시지를 다시 표시 안 함. + - 이 프록시 서버에는 인증이 필요합니다 - + 이 프록시 서버에는 인증이 필요합니다 + - 사용자 정의 PuTTY 경로 사용 : - + 사용자 정의 PuTTY 경로 사용 : + - 준비되면 다시 연결 - + 준비되면 다시 연결 + - 프록시 서버를 사용해서 연결 - + 프록시 서버를 사용해서 연결 + - 사용자 이름 - + 사용자 이름 + - 종료까지 대기 - + 종료까지 대기 + - 다시 확인 - + 다시 확인 + - 시작시 업데이트 확인 - + 시작시 업데이트 확인 + - 지금 확인 - + 지금 확인 + - 시작시 구성 요소가 제대로 설치되었는지 확인 - + 시작시 구성 요소가 제대로 설치되었는지 확인 + - 연결 전에 패널 선택 - + 연결 전에 패널 선택 + - 닫힌 포트 - + 닫힌 포트 + - 모든 폴더 접기 - - - 로깅 - - - 팝업 - - - 응용 프로그램 디렉토리에 로그 - - - 할당 된 자격 증명 - - - 디버그 - - - 이 메시지 형시 표시 - - - 로그 파일 경로 - - - 이 메시지 형식 로그 - - - 경로 선택 - - - 파일 열기 - - - 기본값 사용 - - - 자격 증명 레코드 {0}을 (를) 삭제 하시겠습니까? - - - 비활성으로 인해 RDP 세션 연결이 끊어진 후 알림 수신 여부 선택 - - - 비밀번호는 {0} 이상의 문자를 포함해야합니다 : {1} - - - 비밀번호는 적어도 소문자가 {0} 이상이어야합니다. - - - 비밀번호는 최소한 {0} 숫자를 포함해야합니다. - - - 비밀번호는 적어도 {0} 이상의 대문자를 포함해야합니다. - - - 암호 길이는 {0}에서 {1} 사이 여야합니다. - - - mRemoteNG 로그 파일의 경로 선택 - - - 타이틀 - - - 유휴(idle) 분 - - - 추가 - - - 자동으로 연결을 끊기 전에 RDP 세션이 유휴 상태가되는 시간 (제한 없이 사용 : 0) - - - 음질 - - - 다운로드 완료! - - - 다운로드 - - - 암호화 엔진 - - - 보안 - - - 키 유도 함수 반복 - - - 동적 - - - 높음 - - - 중간 - - - 프로토콜에서 제공하는 음질을 선택하십시오 : 동적, 중간, 높음 - + 모든 폴더 접기 + - 인수 - + 인수 + - 파일 이름 - + 파일 이름 + - 메시지 - + 메시지 + - 종료 (&X) {0} - + 종료 (&X) {0} + - 명령 줄 인수를 구문 분석 할 수 없음! - + 명령 줄 인수를 구문 분석 할 수 없음! + - 연결 파일 열기(&O) - + 연결 파일 열기(&O) + - 다시 시도(&T) - + 다시 시도(&T) + - {0}이 시스템에서 실행중인 레노버 자동 스크롤 유틸리티를 감지했습니다. 이 유틸리티는 당신이 비활성화하거나 제거하는 것이 좋습니다 {0}.에 문제를 일으킨다 고 알려져있다. - + {0}이 시스템에서 실행중인 레노버 자동 스크롤 유틸리티를 감지했습니다. 이 유틸리티는 당신이 비활성화하거나 제거하는 것이 좋습니다 {0}.에 문제를 일으킨다 고 알려져있다. + - 호환성 문제 감지 - + 호환성 문제 감지 + - btnIcon_Click 실패! - + btnIcon_Click 실패! + - ShowHideGridItems 실패! - + ShowHideGridItems 실패! + - IconMenu_Click 실패! - + IconMenu_Click 실패! + - 속성 그리드 오브젝트 실패! - + 속성 그리드 오브젝트 실패! + - SetHostStatus 실패! - + SetHostStatus 실패! + - pGrid_PopertyValueChanged 실패! - + pGrid_PopertyValueChanged 실패! + - 구성 UI 로드 실패! - + 구성 UI 로드 실패! + - 패널을 닫으시겠습니까 "{0}"? 포함 된 모든 연결도 닫힙니다. - + 패널을 닫으시겠습니까 "{0}"? 포함 된 모든 연결도 닫힙니다. + - 외부 도구를 삭제 하시겠습니까 "{0}"? - + 외부 도구를 삭제 하시겠습니까 "{0}"? + - 선택한 외부 도구를 삭제 하시겠습니까 "{0}"? - + 선택한 외부 도구를 삭제 하시겠습니까 "{0}"? + - 연결을 삭제 하시겠습니까 "{0}"? - + 연결을 삭제 하시겠습니까 "{0}"? + - 당신이 빈 폴더를 삭제 하시겠습니까 "{0}"? - + 당신이 빈 폴더를 삭제 하시겠습니까 "{0}"? + - 폴더를 삭제 하시겠습니까 "{0}"? 포함 된 모든 폴더 또는 연결도 삭제됩니다. - + 폴더를 삭제 하시겠습니까 "{0}"? 포함 된 모든 폴더 또는 연결도 삭제됩니다. + - 열려있는 모든 연결을 닫으시겠습니까? - + 열려있는 모든 연결을 닫으시겠습니까? + - 기본 레이아웃 패널을 재설정 하시겠습니까? - + 기본 레이아웃 패널을 재설정 하시겠습니까? + - 연결 - + 연결 + - 전체 화면 모드에서 연결 - + 전체 화면 모드에서 연결 + - 연결 중 ... - + 연결 중 ... + - 프로토콜 이벤트 연결 - + 프로토콜 이벤트 연결 + - 사용자 "{2}"가 설정한 "{1}"을 통해 "{0}"에 연결 (설명 : "{3}", 사용자 필드 : "{4}") - + 사용자 "{2}"가 설정한 "{1}"을 통해 "{0}"에 연결 (설명 : "{3}", 사용자 필드 : "{4}") + - 연결 실패! - + 연결 실패! + - 프로토콜 이벤트 오류 발생. - + 프로토콜 이벤트 오류 발생. + - 열기 연결에 실패했습니다! - + 열기 연결에 실패했습니다! + - 연결을 열 수 없습니다 : 호스트 이름 지정이 안됨! - + 연결을 열 수 없습니다 : 호스트 이름 지정이 안됨! + - 연결 - + 연결 + - 기본 포트를 설정할 수 없습니다! - + 기본 포트를 설정할 수 없습니다! + - 연결 파일의 백업을 생성 할 수 없습니다! - + 연결 파일의 백업을 생성 할 수 없습니다! + - 연결 파일은 "{0}"를 로드 할 수 없습니다! - + 연결 파일은 "{0}"를 로드 할 수 없습니다! + - 연결 파일은 "{0}"를 로드 할 수 없습니다! + 연결 파일은 "{0}"를 로드 할 수 없습니다! 새로운 연결 파일과 함께 시작. - + - "{0}"로 연결 파일을 저장할 수 없습니다! - + "{0}"로 연결 파일을 저장할 수 없습니다! + - 자격 증명없이 연결 - + 자격 증명없이 연결 + - 세션을 콘솔에 연결 - + 세션을 콘솔에 연결 + - 연결 (옵션 사용) - + 연결 (옵션 사용) + - 사용자 {2}이(가) {1} 통해 {0}에 연결. - + 사용자 {2}이(가) {1} 통해 {0}에 연결. + - 연결 이벤트 닫힘. - + 연결 이벤트 닫힘. + - 연결 이벤트 담힘 실패. - + 연결 이벤트 담힘 실패. + - 새로운 연결 파일을 생성 할 수 없습니다! - + 새로운 연결 파일을 생성 할 수 없습니다! + - FilteredPropertyGrid에서의 ToolStrip 컨트롤을 찾을 수 없습니다. - + FilteredPropertyGrid에서의 ToolStrip 컨트롤을 찾을 수 없습니다. + - 검색 - + 검색 + - 콘솔 세션에 연결하지 않음 - + 콘솔 세션에 연결하지 않음 + - 인증에 실패하면 연결하지 않음 - + 인증에 실패하면 연결하지 않음 + - 더블 클릭으로 탭 닫기 - + 더블 클릭으로 탭 닫기 + - 다운로드 및 설치 - + 다운로드 및 설치 + - 복제 - + 복제 + - 암호를 사용하지 않고 계속 하시겠습니까? - + 암호를 사용하지 않고 계속 하시겠습니까? + - 빈 사용자 이름, 비밀번호 또는 도메인 필드의 경우 다음을 사용 : - + 빈 사용자 이름, 비밀번호 또는 도메인 필드의 경우 다음을 사용 : + - 연결 파일을 완전히 암호화 - + 연결 파일을 완전히 암호화 + - 최종 IP - + 최종 IP + - 최종 포트 - + 최종 포트 + - AddExternalToolsToToolBar (frmMain)가 실패. {0} - + AddExternalToolsToToolBar (frmMain)가 실패. {0} + - AddFolder (UI.Window.ConnectionTreeWindow)가 실패. {0} - + AddFolder (UI.Window.ConnectionTreeWindow)가 실패. {0} + - 데이터베이스 버전 {0}은 (는)이 버전의 {1}과 호환되지 않습니다. - + 데이터베이스 버전 {0}은 (는)이 버전의 {1}과 호환되지 않습니다. + - 연결 목록을 저장할 수 없습니다. - + 연결 목록을 저장할 수 없습니다. + - PuTTY를 시작할 수 없습니다. - + PuTTY를 시작할 수 없습니다. + - 암호 해독에 실패. {0} - + 암호 해독에 실패. {0} + - 암호화에 실패. {0} - + 암호화에 실패. {0} + - 오류 - + 오류 + - 시작 연결 파일을로드 할 수 없습니다. {0} {0} {2} {0} {3} {0} {0} 데이터 손실을 방지하기 위해 {1}을 종료합니다. - + 시작 연결 파일을로드 할 수 없습니다. {0} {0} {2} {0} {3} {0} {0} 데이터 손실을 방지하기 위해 {1}을 종료합니다. + - VerifyDatabaseVersion (Config.Connections.Save)이 실패. {0} - + VerifyDatabaseVersion (Config.Connections.Save)이 실패. {0} + - 모든 폴더 확장 - + 모든 폴더 확장 + - 실험적 - + 실험적 + - 내보내기 - + 내보내기 + - 모든 항목 내보내기 - + 모든 항목 내보내기 + - 파일 내보내기 - + 파일 내보내기 + - 항목 내보내기 - + 항목 내보내기 + - 속성 내보내기 - + 속성 내보내기 + - 현재 선택된 연결 내보내기 - + 현재 선택된 연결 내보내기 + - 현재 선택된 폴더 내보내기 - + 현재 선택된 폴더 내보내기 + - 파일 내보내기(&E) - + 파일 내보내기(&E) + - 새로운 외부 도구 - + 새로운 외부 도구 + - 파일 형식(&F): - + 파일 형식(&F): + - 모든 파일 (*.*) - + 모든 파일 (*.*) + - 가져올 수있는 모든 파일 - + 가져올 수있는 모든 파일 + - 응용 프로그램 파일 (*.exe) - + 응용 프로그램 파일 (*.exe) + - mRemote CSV 파일 (*.csv) - + mRemote CSV 파일 (*.csv) + - mRemote XML 파일 (*.XML) - + mRemote XML 파일 (*.XML) + - PuTTY 연결 관리자 파일 - + PuTTY 연결 관리자 파일 + - 원격 데스크톱 연결 관리자 파일 (*.rdg) - + 원격 데스크톱 연결 관리자 파일 (*.rdg) + - RDP 파일 (*.rdp) - + RDP 파일 (*.rdp) + - {0} 상속 - + {0} 상속 + - 상속 된 속성에 대한 설명 : {0} - + 상속 된 속성에 대한 설명 : {0} + - Free - + Free + - 전체 화면 - + 전체 화면 + - 일반 - + 일반 + - "{1}"에서 "{0}"에 대한 연결 항목을로드하는 중 오류가 발생. {2} - + "{1}"에서 "{0}"에 대한 연결 항목을로드하는 중 오류가 발생. {2} + - 자동 다시 연결 - + 자동 다시 연결 + - 외부 도구 속성 - + 외부 도구 속성 + - 파일 - + 파일 + - 호스트 - + 호스트 + - HTTP - + HTTP + - HTTP 연결 실패! - + HTTP 연결 실패! + - 새로운 HTTP 연결을 만들 수 없습니다! - + 새로운 HTTP 연결을 만들 수 없습니다! + - HTTP 문서 타일 변경 실패! - + HTTP 문서 타일 변경 실패! + - 인터넷 익스플로러 - + 인터넷 익스플로러 + - HTTPS - + HTTPS + - HTTP Props 설정에 실패! - + HTTP Props 설정에 실패! + - "빠른"접두어를 추가하여 빠른 연결 탭을 확인하십시오. - + "빠른"접두어를 추가하여 빠른 연결 탭을 확인하십시오. + - Active Directory에서 가져 오기 - + Active Directory에서 가져 오기 + - "{0}"파일을 가져 오는 중 오류가 발생했습니다. - + "{0}"파일을 가져 오는 중 오류가 발생했습니다. + - 파일에서 가져 오기(&F) ... - + 파일에서 가져 오기(&F) ... + - 포트 검사에서 가져 오기 - + 포트 검사에서 가져 오기 + - 정보 - + 정보 + - Dispose of Int App process failed! - + Dispose of Int App process failed! + - Int App Focus Failed! - + Int App Focus Failed! + - Int App Handle: {0} - + Int App Handle: {0} + - Killing Int App Process failed! - + Killing Int App Process failed! + - Int App Resize failed! - + Int App Resize failed! + - --- IntApp Stuff --- - + --- IntApp Stuff --- + - Int App Title: {0} - + Int App Title: {0} + - 주소: - + 주소: + - 연결을 닫을 때 : - + 연결을 닫을 때 : + - 표시 이름 - + 표시 이름 + - 도메인 - + 도메인 + - 호스트 이름 : - + 호스트 이름 : + - 휴대용 버전 - + 휴대용 버전 + - PuTTY 세션을 구성하려면이 단추를 누르십시오: - + PuTTY 세션을 구성하려면이 단추를 누르십시오: + - Maximum PuTTY and integrated external tools wait time: - + Maximum PuTTY and integrated external tools wait time: + - GNU 일반 공중 사용 허가서 (GPL) - + GNU 일반 공중 사용 허가서 (GPL) + - - + + - 아래 목록에서 패널을 선택하거나 새로 만들기를 클릭하여 새 패널을 추가하십시오. 확인을 클릭하여 계속하십시오. - + 아래 목록에서 패널을 선택하거나 새로 만들기를 클릭하여 새 패널을 추가하십시오. 확인을 클릭하여 계속하십시오. + - 서버 상태 : - + 서버 상태 : + - 데이터 베이스: - + 데이터 베이스: + - 검증: - + 검증: + - 언어 - + 언어 + - (자동 감지) - + (자동 감지) + - 언어 변경 사항이 적용 되려면 {0}를 다시 시작해야합니다. - + 언어 변경 사항이 적용 되려면 {0}를 다시 시작해야합니다. + - SQL에서 로드 실패 - + SQL에서 로드 실패 + - 연결 정보를 SQL 서버에서 로드 할 수 없습니다. - + 연결 정보를 SQL 서버에서 로드 할 수 없습니다. + - XML에서 로드 실패! - + XML에서 로드 실패! + - 로컬 파일 - + 로컬 파일 + - 로컬 파일이 존재하지 않습니다! - + 로컬 파일이 존재하지 않습니다! + - 연결 패널 추가 - + 연결 패널 추가 + - 업데이트 확인 - + 업데이트 확인 + - 구성 - + 구성 + - 연결 패널 - + 연결 패널 + - 복사 - + 복사 + - Ctrl-Alt-Del - + Ctrl-Alt-Del + - Ctrl-Esc - + Ctrl-Esc + - 외부 도구를 삭제 ... - + 외부 도구를 삭제 ... + - 기부 - + 기부 + - 중복 탭 - + 중복 탭 + - 종료 - + 종료 + - 외부 도구 모음 - + 외부 도구 모음 + - 파일(&F) - + 파일(&F) + - 도움말(&H) - + 도움말(&H) + - mRemoteNG 도움말 - + mRemoteNG 도움말 + - 외부 도구 실행 - + 외부 도구 실행 + - 새 연결 파일 - + 새 연결 파일 + - 새로운 외부 도구 - + 새로운 외부 도구 + - 알림 - + 알림 + - 모두 복사 - + 모두 복사 + - 모두 삭제 - + 모두 삭제 + - 연결 파일 열기 ... - + 연결 파일 열기 ... + - 옵션 - + 옵션 + - 포트 스캔 - + 포트 스캔 + - 빠른 연결 도구 모음 - + 빠른 연결 도구 모음 + - 다시 연결 - + 다시 연결 + - 화면 새로 고침 (VNC) - + 화면 새로 고침 (VNC) + - 탭 이름 바꾸기 - + 탭 이름 바꾸기 + - 버그 신고 - + 버그 신고 + - 레이아웃 재설정 - + 레이아웃 재설정 + - 연결 파일 저장 - + 연결 파일 저장 + - 연결 파일 다른 이름으로 저장 ... - + 연결 파일 다른 이름으로 저장 ... + - 특수 키 보내기 (VNC) - + 특수 키 보내기 (VNC) + - 도움말 텍스트 표시 (&H) - + 도움말 텍스트 표시 (&H) + - 텍스트 표시 - + 텍스트 표시 + - SmartSize (RDP / VNC) - + SmartSize (RDP / VNC) + - SSH 파일 전송 - + SSH 파일 전송 + - 채팅 시작 (VNC) - + 채팅 시작 (VNC) + - 지원 포럼 - + 지원 포럼 + - 도구(&T) - + 도구(&T) + - 파일 전송 (SSH) - + 파일 전송 (SSH) + - 보기(&V) - + 보기(&V) + - 보기 전용 (VNC) - + 보기 전용 (VNC) + - 웹 사이트 - + 웹 사이트 + - 알림 영역 최소화 - + 알림 영역 최소화 + - 아래로 이동 - + 아래로 이동 + - 위로 이동 - + 위로 이동 + - mRemoteNG CSV - + mRemoteNG CSV + - mRemoteNG XML - + mRemoteNG XML + - 내 현재 자격 증명 (Windows 로그온 정보) - + 내 현재 자격 증명 (Windows 로그온 정보) + - 없음 - + 없음 + - 새 연결 - + 새 연결 + - 새 폴더 - + 새 폴더 + - 새로운 패널 - + 새로운 패널 + - 새로운 제목 - + 새로운 제목 + - 아니요 - + 아니요 + - 압축 안함 - + 압축 안함 + - No Ext. App specified. - + No Ext. App specified. + - 없음 - + 없음 + - 표준 - + 표준 + - No SmartSize - + No SmartSize + - 사용 가능한 업데이트가 없습니다. - + 사용 가능한 업데이트가 없습니다. + - 매우 초기 버전의 mRemote를 사용하여 생성 된 연결 파일을로드하려고하면 런타임 오류가 발생할 수 있습니다. + 매우 초기 버전의 mRemote를 사용하여 생성 된 연결 파일을로드하려고하면 런타임 오류가 발생할 수 있습니다. 이러한 오류가 발생하면 새 연결 파일을 만드십시오! - + - 현재 선택된 탭의 오른쪽에 새 탭을 열기 - + 현재 선택된 탭의 오른쪽에 새 탭을 열기 + - 열린 포트 - + 열린 포트 + - 테스트 ... - + 테스트 ... + - 테마 - + 테마 + - 삭제(&D) - + 삭제(&D) + - 새로운(&N) - + 새로운(&N) + - 패널 이름 - + 패널 이름 + - 암호 보호 - + 암호 보호 + - 두 암호가 일치해야합니다. - + 두 암호가 일치해야합니다. + - 암호는 3 자 이상이어야합니다. - + 암호는 3 자 이상이어야합니다. + - 모든 입력란을 채우십시오. - + 모든 입력란을 채우십시오. + - 포트 스캔 완료. - + 포트 스캔 완료. + - 포트 스캔 패널을 로드 할 수 없습니다! - + 포트 스캔 패널을 로드 할 수 없습니다! + - 연결할 호스트 이름 또는 IP를 입력하십시오. - + 연결할 호스트 이름 또는 IP를 입력하십시오. + - 모든 상속 옵션을 토글합니다. - + 모든 상속 옵션을 토글합니다. + - 이 연결에서 사용할 인증 수준을 선택하십시오. - + 이 연결에서 사용할 인증 수준을 선택하십시오. + - VNC 서버에 대한 인증 방법을 선택하십시오. - + VNC 서버에 대한 인증 방법을 선택하십시오. + - 창 크기를 조정할 때 또는 전체 화면 모드를 전환 할 때 자동으로 연결의 크기를 조정할지 여부를 선택하십시오. RDC 8.0 이상이 필요합니다. - + 창 크기를 조정할 때 또는 전체 화면 모드를 전환 할 때 자동으로 연결의 크기를 조정할지 여부를 선택하십시오. RDC 8.0 이상이 필요합니다. + - 비트 맵 캐싱 사용 여부를 선택하십시오. - + 비트 맵 캐싱 사용 여부를 선택하십시오. + - 사용할 색 품질을 선택하십시오. - + 사용할 색 품질을 선택하십시오. + - 사용할 압축 값을 선택하십시오. - + 사용할 압축 값을 선택하십시오. + - 여기에 호스트에 대한 메모 나 설명을 입력하십시오. - + 여기에 호스트에 대한 메모 나 설명을 입력하십시오. + - 원격 호스트의 테마를 표시하려면 "예"를 선택하십시오. - + 원격 호스트의 테마를 표시하려면 "예"를 선택하십시오. + - 원격 호스트의 배경 화면을 표시하려면 "예"를 선택하십시오. - + 원격 호스트의 배경 화면을 표시하려면 "예"를 선택하십시오. + - 도메인을 입력하십시오. - + 도메인을 입력하십시오. + - 바탕 화면 구성을 사용할지 여부를 선택하십시오. - + 바탕 화면 구성을 사용할지 여부를 선택하십시오. + - 글꼴 다듬기 사용 여부를 선택하십시오. - + 글꼴 다듬기 사용 여부를 선택하십시오. + - 사용할 인코딩 모드를 선택하십시오. - + 사용할 인코딩 모드를 선택하십시오. + - 시작할 외부 도구를 선택하십시오. - + 시작할 외부 도구를 선택하십시오. + - 원격 호스트와의 연결 해제 후 시작할 외부 도구를 선택하십시오. - + 원격 호스트와의 연결 해제 후 시작할 외부 도구를 선택하십시오. + - 원격 호스트에 연결되기 전에 시작할 외부 도구를 선택하십시오. - + 원격 호스트에 연결되기 전에 시작할 외부 도구를 선택하십시오. + - 호스트에 연결될 때 표시 될 아이콘을 선택하십시오. - + 호스트에 연결될 때 표시 될 아이콘을 선택하십시오. + - 로드 밸런싱 라우터가 최적의 서버를 선택하는 데 사용할로드 균형 조정 정보를 지정합니다. - + 로드 밸런싱 라우터가 최적의 서버를 선택하는 데 사용할로드 균형 조정 정보를 지정합니다. + - 외부 도구에서 사용하려는 경우 원격 호스트의 MAC 주소를 입력하십시오. - + 외부 도구에서 사용하려는 경우 원격 호스트의 MAC 주소를 입력하십시오. + - 연결 트리에 표시 될 이름입니다. - + 연결 트리에 표시 될 이름입니다. + - 연결이 열리는 패널을 지정. - + 연결이 열리는 패널을 지정. + - 암호 입력. - + 암호 입력. + - 선택한 프로토콜이 수신중인 포트를 입력. - + 선택한 프로토콜이 수신중인 포트를 입력. + - mRemoteNG가 호스트에 연결하는 데 사용해야하는 프로토콜 선택. - + mRemoteNG가 호스트에 연결하는 데 사용해야하는 프로토콜 선택. + - 연결시 사용할 PuTTY 세션 선택. - + 연결시 사용할 PuTTY 세션 선택. + - 사용자가 RD 게이트웨이 서버에 연결하기 위해 제공하는 도메인 이름 지정. - + 사용자가 RD 게이트웨이 서버에 연결하기 위해 제공하는 도메인 이름 지정. + - 원격 데스크톱 게이트웨이 서버의 호스트 이름을 지정. - + 원격 데스크톱 게이트웨이 서버의 호스트 이름을 지정. + - RD 게이트웨이 (원격 데스크톱 게이트웨이) 서버를 사용할시기를 지정. - + RD 게이트웨이 (원격 데스크톱 게이트웨이) 서버를 사용할시기를 지정. + - 연결과 동일한 사용자 이름 및 암호를 사용하여 게이트웨이에 로그온할지 여부를 지정. - + 연결과 동일한 사용자 이름 및 암호를 사용하여 게이트웨이에 로그온할지 여부를 지정. + - 사용자가 RD 게이트웨이 서버에 연결하기 위해 제공하는 사용자 이름을 지정. - + 사용자가 RD 게이트웨이 서버에 연결하기 위해 제공하는 사용자 이름을 지정. + - 로컬 디스크 드라이브를 원격 호스트에 표시할지 여부 선택. - + 로컬 디스크 드라이브를 원격 호스트에 표시할지 여부 선택. + - 키 조합 (예 : Alt-Tab)을 원격 호스트로 리디렉션해야하는지 여부 선택. - + 키 조합 (예 : Alt-Tab)을 원격 호스트로 리디렉션해야하는지 여부 선택. + - 로컬 포트 (예 : com, parallel)를 원격 호스트에 표시할지 여부 선택. - + 로컬 포트 (예 : com, parallel)를 원격 호스트에 표시할지 여부 선택. + - 로컬 프린터를 원격 호스트에 표시할지 여부 선택. - + 로컬 프린터를 원격 호스트에 표시할지 여부 선택. + - 원격 호스트에서 로컬 스마트 카드를 사용할 수 있어야하는지 여부 선택. - + 원격 호스트에서 로컬 스마트 카드를 사용할 수 있어야하는지 여부 선택. + - 원격 사운드를 리디렉션하는 방법 선택. - + 원격 사운드를 리디렉션하는 방법 선택. + - HTML을 표시하는 데 사용할 수있는 렌더링 엔진 중 하나 선택. - + HTML을 표시하는 데 사용할 수있는 렌더링 엔진 중 하나 선택. + - 이 연결이 열리는 해상도 또는 모드를 선택. - + 이 연결이 열리는 해상도 또는 모드를 선택. + - 사용할 SmartSize 모드 선택. - + 사용할 SmartSize 모드 선택. + - 원격 호스트의 콘솔 세션에 연결하십시오. - + 원격 호스트의 콘솔 세션에 연결하십시오. + - 사용 가능한 경우 인증에 CredSSP (Credential Security Support Provider)를 사용하십시오. - + 사용 가능한 경우 인증에 CredSSP (Credential Security Support Provider)를 사용하십시오. + - 여기에 필요한 정보를 언제든지 입력하십시오. - + 여기에 필요한 정보를 언제든지 입력하십시오. + - 사용자 이름 입력. - + 사용자 이름 입력. + - 호스트에 대한보기 전용 연결을 설정하려면 "예"를 선택하십시오. - + 호스트에 대한보기 전용 연결을 설정하려면 "예"를 선택하십시오. + - 사용할 프록시 주소 입력. - + 사용할 프록시 주소 입력. + - 프록시 인증을위한 비밀번호를 입력하십시오. - + 프록시 인증을위한 비밀번호를 입력하십시오. + - 프록시 서버가 수신하는 포트를 입력하십시오. - + 프록시 서버가 수신하는 포트를 입력하십시오. + - 프록시를 사용하여 VNC 연결을 터널링하는 경우 해당 유형을 선택하십시오. - + 프록시를 사용하여 VNC 연결을 터널링하는 경우 해당 유형을 선택하십시오. + - 프록시 인증을위한 사용자 이름을 입력하십시오. - + 프록시 인증을위한 사용자 이름을 입력하십시오. + - 호스트 이름 / IP - + 호스트 이름 / IP + - 모든 - + 모든 + - 서버 인증 - + 서버 인증 + - 인증 모드 - + 인증 모드 + - 자동 크기 조정 - + 자동 크기 조정 + - 캐시 비트 맵 - + 캐시 비트 맵 + - - + + - 압축 - + 압축 + - 설명 - + 설명 + - 테마 표시 - + 테마 표시 + - 바탕 화면 표시 - + 바탕 화면 표시 + - 바탕 화면 구성 - + 바탕 화면 구성 + - 글꼴 다듬기 - + 글꼴 다듬기 + - 인코딩 - + 인코딩 + - 외부 도구 - + 외부 도구 + - External Tool After - + External Tool After + - External Tool Before - + External Tool Before + - 로드 균형 정보 - + 로드 균형 정보 + - MAC 주소 - + MAC 주소 + - 이름 - + 이름 + - 패널 - + 패널 + - 암호 - + 암호 + - 포트 - + 포트 + - PuTTY 세션 - + PuTTY 세션 + - 게이트웨이 도메인 - + 게이트웨이 도메인 + - 게이트웨이 호스트 이름 - + 게이트웨이 호스트 이름 + - 원격 데스크톱 게이트웨이 암호 - + 원격 데스크톱 게이트웨이 암호 + - 게이트웨이 사용 - + 게이트웨이 사용 + - 게이트웨이 자격 증명 - + 게이트웨이 자격 증명 + - 게이트웨이 사용자 이름 - + 게이트웨이 사용자 이름 + - 디스크 드라이브 - + 디스크 드라이브 + - 키 조합 - + 키 조합 + - 포트 - + 포트 + - 프린터 - + 프린터 + - 사운드 - + 사운드 + - 렌더링 엔진 - + 렌더링 엔진 + - 해상도 - + 해상도 + - SmartSize 모드 - + SmartSize 모드 + - 콘솔 세션 사용 - + 콘솔 세션 사용 + - CredSSP 사용 - + CredSSP 사용 + - 입력란 사용 - + 입력란 사용 + - 프록시 주소 - + 프록시 주소 + - 프록시 암호 - + 프록시 암호 + - 프록시 포트 - + 프록시 포트 + - 프록시 유형 - + 프록시 유형 + - 프록시 사용자 이름 - + 프록시 사용자 이름 + - 프로토콜 이벤트 연결이 끊어졌습니다. + 프로토콜 이벤트 연결이 끊어졌습니다. 메시지: {0} - + - 프로토콜 이벤트 연결이 끊어졌습니다. + 프로토콜 이벤트 연결이 끊어졌습니다. {0} - + - 가져올 프로토콜 - + 가져올 프로토콜 + - 프록시 테스트 실패! - + 프록시 테스트 실패! + - 프록시 테스트 성공! - + 프록시 테스트 성공! + - PuTTY 프로세스 폐기 실패! - + PuTTY 프로세스 폐기 실패! + - 포커스를 설정할 수 없습니다! - + 포커스를 설정할 수 없습니다! + - Putty Handle: {0} - + Putty Handle: {0} + - PuTTY 프로세스를 죽이지 못했습니다! - + PuTTY 프로세스를 죽이지 못했습니다! + - 패널 핸들 : {0} - + 패널 핸들 : {0} + - PuTTY 크기 조정 실패! - + PuTTY 크기 조정 실패! + - PuTTY 저장된 세션 - + PuTTY 저장된 세션 + - PuTTY 설정 - + PuTTY 설정 + - PuTTY 설정 대화 상자가 표시되지 않았습니다! - + PuTTY 설정 대화 상자가 표시되지 않았습니다! + - --- PuTTY Stuff --- - + --- PuTTY Stuff --- + - PuTTY 타이틀 : {0} - + PuTTY 타이틀 : {0} + - 빠른 : {0} - + 빠른 : {0} + - 빠른 연결 - + 빠른 연결 + - 빠른 연결 추가 실패! - + 빠른 연결 추가 실패! + - 빠른 연결 만들기 실패 - + 빠른 연결 만들기 실패 + - 연결 종료시 경고 (&A) - + 연결 종료시 경고 (&A) + - mRemoteNG를 종료 할 때만 경고(&X) - + mRemoteNG를 종료 할 때만 경고(&X) + - 여러 연결을 닫을 때만 경고(&M) - + 여러 연결을 닫을 때만 경고(&M) + - 연결을 종료 할 때 경고하지 않음(&N) - + 연결을 종료 할 때 경고하지 않음(&N) + - RAW - + RAW + - RDP - + RDP + - 16,777,216 색 (24 비트) - + 16,777,216 색 (24 비트) + - 256 색 (8 비트) - + 256 색 (8 비트) + - 32768 색 (15 비트) - + 32768 색 (15 비트) + - 16,777,216 색 (32 비트) - + 16,777,216 색 (32 비트) + - 65536 색 (16 비트) - + 65536 색 (16 비트) + - RDP 컨트롤을 만들 수 없습니다. mRemoteNG 요구 사항을 확인하십시오. - + RDP 컨트롤을 만들 수 없습니다. mRemoteNG 요구 사항을 확인하십시오. + - 커서 깜박임 해제 - + 커서 깜박임 해제 + - 커서 그림자 해제 - + 커서 그림자 해제 + - 전체 창 끌기 해제 - + 전체 창 끌기 해제 + - 메뉴 애니메이션 해제 - + 메뉴 애니메이션 해제 + - RDP 연결 끊기 실패, 닫기 시도! - + RDP 연결 끊기 실패, 닫기 시도! + - 내부 오류 코드 1. - + 내부 오류 코드 1. + - 내부 오류 코드 2. - + 내부 오류 코드 2. + - 내부 오류 코드 3. 유효한 상태가 아닙니다. - + 내부 오류 코드 3. 유효한 상태가 아닙니다. + - 내부 오류 코드 4. - + 내부 오류 코드 4. + - 클라이언트 연결 중에 복구 할 수없는 오류가 발생했습니다. - + 클라이언트 연결 중에 복구 할 수없는 오류가 발생했습니다. + - GetError 변경 (FatalErrors) - + GetError 변경 (FatalErrors) + - 메모리 부족 오류가 발생했습니다. - + 메모리 부족 오류가 발생했습니다. + - 알 수없는 오류가 발생했습니다. - + 알 수없는 오류가 발생했습니다. + - 창 생성 오류가 발생했습니다. - + 창 생성 오류가 발생했습니다. + - Winsock 초기화 오류입니다. - + Winsock 초기화 오류입니다. + - 패널 맞추기 - + 패널 맞추기 + - RDP 초점 실패! - + RDP 초점 실패! + - RD 게이트웨이가 지원됩니다. - + RD 게이트웨이가 지원됩니다. + - RD 게이트웨이는 지원되지 않습니다! - + RD 게이트웨이는 지원되지 않습니다! + - RDP 재 연결 수 : - + RDP 재 연결 수 : + - RDP SetAuthenticationLevel 실패! - + RDP SetAuthenticationLevel 실패! + - RDP SetUseConsoleSession 실패! - + RDP SetUseConsoleSession 실패! + - RDC {0}에 대한 콘솔 스위치 설정 중입니다. - + RDC {0}에 대한 콘솔 스위치 설정 중입니다. + - RDP setCredentials 실패! - + RDP setCredentials 실패! + - RDP SetEventHandlers 실패! - + RDP SetEventHandlers 실패! + - RDP SetRDGateway 실패! - + RDP SetRDGateway 실패! + - RDP SetPerformanceFlags 실패! - + RDP SetPerformanceFlags 실패! + - RDP SetPort 실패! - + RDP SetPort 실패! + - RDP SetProps 실패! - + RDP SetProps 실패! + - RDP 설정 리디렉션 실패! - + RDP 설정 리디렉션 실패! + - RDP 설정 리디렉션 키 실패! - + RDP 설정 리디렉션 키 실패! + - RDP 해상도 설정 실패! - + RDP 해상도 설정 실패! + - 컴퓨터 가져 오기 - + 컴퓨터 가져 오기 + - 재생 금지 - + 재생 금지 + - 원격 컴퓨터 나가기 - + 원격 컴퓨터 나가기 + - RDP 전체화면 전환 실패! - + RDP 전체화면 전환 실패! + - RDP SmartSize 전환 실패! - + RDP SmartSize 전환 실패! + - 시작시 이전에 열린 세션에 다시 연결 - + 시작시 이전에 열린 세션에 다시 연결 + - 원격 파일 - + 원격 파일 + - 모두 제거 - + 모두 제거 + - 이름 바꾸기 - + 이름 바꾸기 + - Rlogin - + Rlogin + - 저장 - + 저장 + - 모두 저장 - + 모두 저장 + - 다른 연결 파일을로드하기 전에 현재 연결 파일을 저장 하시겠습니까? - - - 종료시 연결 저장 - + 다른 연결 파일을로드하기 전에 현재 연결 파일을 저장 하시겠습니까? + - Graphics Interchange Format File (.gif) | * .gif | Joint Photographic Experts Group 파일 (.jpeg) | * .jpeg | Joint Photographic Experts Group 파일 (.jpg) | * .jpg | Portable Network Graphics File (.png) | * .png - + Graphics Interchange Format File (.gif) | * .gif | Joint Photographic Experts Group 파일 (.jpeg) | * .jpeg | Joint Photographic Experts Group 파일 (.jpg) | * .jpg | Portable Network Graphics File (.png) | * .png + - 화면 - + 화면 + - 스크린 샷 - + 스크린 샷 + - 스크린 샷 - + 스크린 샷 + - 검색 - + 검색 + - 보내기 ... - + 보내기 ... + - 연결을 만들거나 이름을 변경할 때 표시 이름과 같은 호스트 이름 설정 - + 연결을 만들거나 이름을 변경할 때 표시 이름과 같은 호스트 이름 설정 + - 설정을 저장하거나 시스 트레이 아이콘을 삭제할 수 없습니다! - + 설정을 저장하거나 시스 트레이 아이콘을 삭제할 수 없습니다! + - 연결 트리에 설명 툴팁 표시 - + 연결 트리에 설명 툴팁 표시 + - 창 제목에 전체 연결 파일 경로 표시 - + 창 제목에 전체 연결 파일 경로 표시 + - 탭 이름에 로그온 정보 표시 - + 탭 이름에 로그온 정보 표시 + - 탭 이름에 프로토콜 표시 - + 탭 이름에 프로토콜 표시 + - 연결을 한번 클릭하면 열기 - + 연결을 한번 클릭하면 열기 + - 연결 트리에서 열린 연결을 한 번 클릭하면 열린 연결 탭으로 전환. - + 연결 트리에서 열린 연결을 한 번 클릭하면 열린 연결 탭으로 전환. + - Socks 5 - + Socks 5 + - 정렬 - + 정렬 + - 오름차순 (A-Z) - + 오름차순 (A-Z) + - 내림차순 (Z-A) - + 내림차순 (Z-A) + - 자세한 정보는 도움말 - 시작하기 - SQL 구성을 참조하십시오! - + 자세한 정보는 도움말 - 시작하기 - SQL 구성을 참조하십시오! + - SQL 서버 - + SQL 서버 + - SSH 버전 1 - + SSH 버전 1 + - SSH 버전 2 - + SSH 버전 2 + - SSH 배경 전송 실패! - + SSH 배경 전송 실패! + - SSH 전송에 실패했습니다. - + SSH 전송에 실패했습니다. + - 시작 IP - + 시작 IP + - 시작 포트 - + 시작 포트 + - 시작 / 종료 - + 시작 / 종료 + - 상태 - + 상태 + - 알림 패널에서 다음으로 전환 : - + 알림 패널에서 다음으로 전환 : + - 고급 - + 고급 + - 탭 & 패널 - + 탭 & 패널 + - 업데이트 - + 업데이트 + - Telnet - + Telnet + - 다음 : - + 다음 : + - 오류 ({0}) - + 오류 ({0}) + - 정보 ({0}) - + 정보 ({0}) + - 암호 - + 암호 + - {0} 비밀번호 - + {0} 비밀번호 + - 선택 패널 - + 선택 패널 + - 경고 ({0}) - + 경고 ({0}) + - 전송 - + 전송 + - 통합 시도 - + 통합 시도 + - Ultra VNC Repeater - + Ultra VNC Repeater + - UltraVNC SingleClick port: - + UltraVNC SingleClick port: + - 저장하지 않으려는 속성을 선택 취소하십시오! - + 저장하지 않으려는 속성을 선택 취소하십시오! + - mRemoteNG에는 업데이트가 필요합니다. - + mRemoteNG에는 업데이트가 필요합니다. + - mRemoteNG는 주기적으로 mRemoteNG 웹 사이트에 연결하여 업데이트를 확인합니다. - + mRemoteNG는 주기적으로 mRemoteNG 웹 사이트에 연결하여 업데이트를 확인합니다. + - 업데이트 정보를 다운로드 할 수 없습니다. - + 업데이트 정보를 다운로드 할 수 없습니다. + - 다운로드 완료! + 다운로드 완료! mRemoteNG는 이제 종료되고 설치로 시작됩니다. - + - 업데이트를 다운로드 할 수 없습니다. - + 업데이트를 다운로드 할 수 없습니다. + - 업데이트 다운로드가 시작되지 않을 수 있습니다. - + 업데이트 다운로드가 시작되지 않을 수 있습니다. + - {0} 일마다 - + {0} 일마다 + - 매일 - + 매일 + - 매월 - + 매월 + - 매주 - + 매주 + - 변경 로그를 다운로드 할 수 없습니다. - + 변경 로그를 다운로드 할 수 없습니다. + - 다른 사용자 이름과 암호 사용 - + 다른 사용자 이름과 암호 사용 + - 사용자 - + 사용자 + - 동일한 사용자 이름과 암호 사용 - + 동일한 사용자 이름과 암호 사용 + - 스마트 카드 사용 - + 스마트 카드 사용 + - SQL Server를 사용하여 연결로드 및 저장 - + SQL Server를 사용하여 연결로드 및 저장 + - 버전 - + 버전 + - VNC - + VNC + - VNC 연결 끊기 실패! - + VNC 연결 끊기 실패! + - VNC 화면 새로 고침 실패! - + VNC 화면 새로 고침 실패! + - VNC 특수 키 보내기 실패! - + VNC 특수 키 보내기 실패! + - VNC 이벤트 처리기 설정 실패! - + VNC 이벤트 처리기 설정 실패! + - VNC 설정 실패! - + VNC 설정 실패! + - VNC SmartSize 전환 실패! - + VNC SmartSize 전환 실패! + - VNC 보기 전용 전환 실패! - + VNC 보기 전용 전환 실패! + - 인증 실패시 경고 - + 인증 실패시 경고 + - 경고 - + 경고 + - - + + - RDP 연결 시간 초과 - + RDP 연결 시간 초과 + - 이 노드는 이미 이 폴더에 있습니다. - + 이 노드는 이미 이 폴더에 있습니다. + - 노드를 자체로 드래그 할 수 없습니다. - + 노드를 자체로 드래그 할 수 없습니다. + - 상위 노드를 하위 노드로 끌 수 없습니다. - + 상위 노드를 하위 노드로 끌 수 없습니다. + - 이 노드는 드래그 할 수 없습니다. - + 이 노드는 드래그 할 수 없습니다. + - 블록 암호 모드 - + 블록 암호 모드 + + + 암호화 엔진 + + + 보안 + + + 키 유도 함수 반복 + + + 동적 + + + 높음 + + + 중간 + + + 프로토콜에서 제공하는 음질을 선택하십시오 : 동적, 중간, 높음 + + + 음질 + + + 다운로드 완료! + + + 다운로드 + + + 자동으로 연결을 끊기 전에 RDP 세션이 유휴 상태가되는 시간 (제한 없이 사용 : 0) + + + 유휴(idle) 분 + + + 추가 + + + 타이틀 + + + 자격 증명 레코드 {0}을 (를) 삭제 하시겠습니까? + + + 비활성으로 인해 RDP 세션 연결이 끊어진 후 알림 수신 여부 선택 + + + 비밀번호는 {0} 이상의 문자를 포함해야합니다 : {1} + + + 비밀번호는 적어도 소문자가 {0} 이상이어야합니다. + + + 비밀번호는 최소한 {0} 숫자를 포함해야합니다. + + + 비밀번호는 적어도 {0} 이상의 대문자를 포함해야합니다. + + + 암호 길이는 {0}에서 {1} 사이 여야합니다. + + + mRemoteNG 로그 파일의 경로 선택 + + + 디버그 + + + 이 메시지 형시 표시 + + + 로그 파일 경로 + + + 이 메시지 형식 로그 + + + 경로 선택 + + + 파일 열기 + + + 기본값 사용 + + + 로깅 + + + 팝업 + + + 응용 프로그램 디렉토리에 로그 + + + 할당 된 자격 증명 + + + 게이트웨이 + + + 종료시 연결 저장 + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.lt.resx b/mRemoteNG/Language/Language.lt.resx index 4b3af83d..d383f211 100644 --- a/mRemoteNG/Language/Language.lt.resx +++ b/mRemoteNG/Language/Language.lt.resx @@ -117,15 +117,34 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Place search bar above connection tree + + Active Directory + + + The Windows security setting, "System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing", is enabled. + +See the Microsoft Support article at http://support.microsoft.com/kb/811833 for more information. + +{0} is not fully FIPS compliant. Click OK to proceed at your own discretion, or Cancel to Exit. + + + Internet Explorer + + + None Select the color quality to be used. + + Select whether clipboard should be shared. + Colors + + Clipboard + 16777216 Colors (24-bit) @@ -141,91 +160,76 @@ 65536 Colors (16-bit) - - Active Directory - - - The Windows security setting, "System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing", is enabled. - -See the Microsoft Support article at http://support.microsoft.com/kb/811833 for more information. - -{0} is not fully FIPS compliant. Click OK to proceed at your own discretion, or Cancel to Exit. - - - Internet Explorer - - - None - - - Select whether clipboard should be shared. - - - Clipboard - - Warning: Restart is required to commit any theme configuration change. - + Warning: Restart is required to commit any theme configuration change. + - Must Be Between 0 and 255 - + Must Be Between 0 and 255 + - Out Of Range - + Out Of Range + - Delete... - + Delete... + - Reconnect All Connections - + Reconnect All Connections + - UltraVNC SingleClick - + UltraVNC SingleClick + - Disconnect All But This - + Disconnect All But This + - An error occurred while trying to reconnect to RDP host '{0}' - + An error occurred while trying to reconnect to RDP host '{0}' + - An error occurred while trying to change the connection resolution to host '{0}' - + An error occurred while trying to change the connection resolution to host '{0}' + - Stack trace - + Stack trace + - Exception Message - + Exception Message + - mRemoteNG Unhandled Exception - + mRemoteNG Unhandled Exception + - An unhandled exception has occurred - + An unhandled exception has occurred + - This exception will force mRemoteNG to close - + This exception will force mRemoteNG to close + - Copy Hostname - + Copy Hostname + + + Place search bar above connection tree + - Track active connection in the connection tree - + Track active connection in the connection tree + - Always show connection tabs - + Always show connection tabs + - Release Channel - + Release Channel + - Stable channel includes final releases only. + Stable channel includes final releases only. Preview channel includes Betas & Release Candidates. Nightly Channel includes Alphas, Betas & Release Candidates. - + - Apply - + Apply + - Proxy - + Proxy + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.nb-NO.resx b/mRemoteNG/Language/Language.nb-NO.resx index 449cb202..b64a5045 100644 --- a/mRemoteNG/Language/Language.nb-NO.resx +++ b/mRemoteNG/Language/Language.nb-NO.resx @@ -195,6 +195,9 @@ Arv + + &Start + Start PuTTY @@ -225,9 +228,6 @@ Skjerm - - Gateway - Diverse @@ -294,9 +294,18 @@ Melding + + Avslu&tt {0} + Kunne ikke tolke kommandolinjeargumenter! + + Åpne tilkoblingsfil + + + Prøv igjen + {0} har oppdaget at Lenovo Auto Scroll-verktøyet kjører på dette systemet. Dette verktøyet er kjent for å forårsake problemer med {0}. Det anbefales at du deaktiverer eller avinstallerer dette programmet. @@ -394,6 +403,9 @@ Starter med ny tilkoblingsfil. Kunne ikke lagre tilkoblingsfilen som "{0}"! + + Koble til uten legitimasjon + Koble til konsolløkt @@ -418,6 +430,9 @@ Starter med ny tilkoblingsfil. Oppdag + + Ikke koble til konsollsesjon + Ikke koble til dersom godkjenning mislykkes @@ -457,12 +472,23 @@ Starter med ny tilkoblingsfil. Tilkoblingslisten kan ikke lagres. + + PuTTY kunne ikke startes. + Dekryptering mislyktes. {0} Kryptering mislyktes. {0} + + Sikkerhetsinnstillingen "Systemkryptografi: Bruk FIPS-kompatible algoritmer til kryptering, hash-koding og signering" i Windows er aktivert. + +Se Microsofts support-artikkel på http://support.microsoft.com/kb/811833 for mer informasjon. + +{0} er ikke fullt ut FIPS-kompatibel. Klikk OK for å fortsette, eller Avbryt for å avslutte. + + Feil @@ -481,9 +507,39 @@ Starter med ny tilkoblingsfil. Eksporter + + Eksporter alt + + + Eksporter fil + + + Eksporter elementer + + + Eksporter egenskaper + + + Eksporter valgt tilkobling + + + Eksporter valgt mappe + + + &Eksporter til fil... + + + Nytt eksternt verktøy + + + &Filformat: + Alle filer (*.*) + + Alle filer som kan importeres + Programfiler (*.exe) @@ -493,6 +549,12 @@ Starter med ny tilkoblingsfil. mRemote XML-filer (*.xml) + + PuTTY Connection Manager-filer + + + Remote Desktop Connection Manager-filer (*.rdg) + RDP-filer (*.rdp) @@ -544,6 +606,12 @@ Starter med ny tilkoblingsfil. Importer fra Active Directory + + En feil har oppstått under import av filen "{0}". + + + Importer fra &fil... + Import fra Port Scan @@ -625,6 +693,9 @@ Starter med ny tilkoblingsfil. Innlasting fra SQL mislyktes! + + Tilkoblingsinformasjonen kunne ikke lastes fra SQL server. + Innlasting fra XML mislyktes! @@ -838,9 +909,18 @@ Starter med ny tilkoblingsfil. Passordbeskyttelse + + Begge passordene må være like. + + + Passordet må være minst 3 tegn langt. + Vennligst fyll inn alle felt + + Portskanning ferdig. + Kunne ikke laste inn portskanningpanelet! @@ -856,6 +936,9 @@ Starter med ny tilkoblingsfil. Velg hvordan du ønsker å autentisere deg mot VNC-serveren. + + Velg om tilkoblingen skal endre størrelse når vinduet endrer størrelse eller fullskjermsmodus slås av eller på. Krever RDC 8.0 eller høyere. + Velg om du vil bruke hurtigbufring av punktgrafikk eller ikke. @@ -898,6 +981,9 @@ Starter med ny tilkoblingsfil. Velg et ikon som skal vises når man er tilkoblet verten. + + Angi informasjon for lastbalanseringsrutere for å velge den beste verten. + Angi MAC-adressen til den eksterne verten dersom du ønsker å bruke denne i et eksternt verktøy. @@ -946,12 +1032,18 @@ Starter med ny tilkoblingsfil. Velg om lokale skrivere skal vises på den eksterne verten. + + Velg om utklippstavlen skal deles. + Velg om lokale smartkort skal være tilgjengelig på den eksterne verten. Velg hvordan ekstern lyd skal omadresseres. + + Velg om standard lydinndataenhet på den eksterne maskinen skal omadresseres til denne maskinen. + Velg en av de tilgjengelige renderingsmotorene som skal brukes til å vise HTML. @@ -1003,6 +1095,9 @@ Starter med ny tilkoblingsfil. Godkjenningsmodus + + Automatisk størrelsesendring + Hurtigbufring av punktgrafikk @@ -1039,6 +1134,9 @@ Starter med ny tilkoblingsfil. Eksternt verktøy før + + Lastbalanseringsinformasjon + MAC-adresse @@ -1087,9 +1185,15 @@ Starter med ny tilkoblingsfil. Skrivere + + Utklippstavle + Lyder + + Lydopptak + Renderingsmotor @@ -1355,9 +1459,6 @@ Starter med ny tilkoblingsfil. Vil du lagre den gjeldende tilkoblingsfilen før du laster inn en annen? - - Lagre tilkoblinger ved avslutning - Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png @@ -1469,6 +1570,9 @@ Starter med ny tilkoblingsfil. Passord + + Passord for {0} + Velg panel @@ -1481,6 +1585,9 @@ Starter med ny tilkoblingsfil. Prøv å integrere + + Vis på verktøylinjen + Ultra VNC Repeater @@ -1521,6 +1628,9 @@ mRemoteNG vil nå avslutte og starte installasjonen. Ukentlig + + Endringsloggen kunne ikke lastes ned. + Bruk et annet brukernavn og/eller passord @@ -1572,122 +1682,6 @@ mRemoteNG vil nå avslutte og starte installasjonen. Ja - - &Start - - - Avslu&tt {0} - - - Åpne tilkoblingsfil - - - Prøv igjen - - - Koble til uten legitimasjon - - - Ikke koble til konsollsesjon - - - PuTTY kunne ikke startes. - - - Sikkerhetsinnstillingen "Systemkryptografi: Bruk FIPS-kompatible algoritmer til kryptering, hash-koding og signering" i Windows er aktivert. - -Se Microsofts support-artikkel på http://support.microsoft.com/kb/811833 for mer informasjon. - -{0} er ikke fullt ut FIPS-kompatibel. Klikk OK for å fortsette, eller Avbryt for å avslutte. - - - - Eksporter alt - - - Eksporter fil - - - Eksporter elementer - - - Eksporter egenskaper - - - Eksporter valgt tilkobling - - - Eksporter valgt mappe - - - &Eksporter til fil... - - - Nytt eksternt verktøy - - - &Filformat: - - - Alle filer som kan importeres - - - PuTTY Connection Manager-filer - - - Remote Desktop Connection Manager-filer (*.rdg) - - - En feil har oppstått under import av filen "{0}". - - - Importer fra &fil... - - - Tilkoblingsinformasjonen kunne ikke lastes fra SQL server. - - - Begge passordene må være like. - - - Passordet må være minst 3 tegn langt. - - - Portskanning ferdig. - - - Velg om tilkoblingen skal endre størrelse når vinduet endrer størrelse eller fullskjermsmodus slås av eller på. Krever RDC 8.0 eller høyere. - - - Angi informasjon for lastbalanseringsrutere for å velge den beste verten. - - - Velg om utklippstavlen skal deles. - - - Velg om standard lydinndataenhet på den eksterne maskinen skal omadresseres til denne maskinen. - - - Automatisk størrelsesendring - - - Lastbalanseringsinformasjon - - - Utklippstavle - - - Lydopptak - - - Passord for {0} - - - Vis på verktøylinjen - - - Endringsloggen kunne ikke lastes ned. - RDP tidsavbrudd @@ -2005,4 +1999,14 @@ Nightly-kanalen inkluderer alpha-, beta- og release candidate-versjoner. Miljø + + Gateway + + + Lagre tilkoblinger ved avslutning + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.nl.resx b/mRemoteNG/Language/Language.nl.resx index 195e808f..a50f0853 100644 --- a/mRemoteNG/Language/Language.nl.resx +++ b/mRemoteNG/Language/Language.nl.resx @@ -225,9 +225,6 @@ Scherm - - Gateway - Diversen @@ -1355,9 +1352,6 @@ Bericht: Wil je de huidige verbindingen opslaan voordat er een andere wordt geopend? - - Sla verbindingen op bij afsluiten - Graphics Interchange Format bestand (.gif)|*.gif|Joint Photographic Experts Group bestand (.jpeg)|*.jpeg|Joint Photographic Experts Group bestand (.jpg)|*.jpg|Portable Network Graphics bestand (.png)|*.png @@ -1588,4 +1582,14 @@ mRemoteNG zal nu worden gesloten en beginnen met de installatie. Maximaal aantal inlogpogingen overschreden. Maak opnieuw verbinding. C# to Powershell transfer issue with encoding possible + + Gateway + + + Sla verbindingen op bij afsluiten + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pl.resx b/mRemoteNG/Language/Language.pl.resx index 67769c6d..80e952a1 100644 --- a/mRemoteNG/Language/Language.pl.resx +++ b/mRemoteNG/Language/Language.pl.resx @@ -231,9 +231,6 @@ Wyświetl - - Brama - Pozostałe @@ -2359,4 +2356,11 @@ Kanał nocny obejmuje wersje alfa, beta i RC (gotowe do wydania). Maksymalna liczba prób została przekroczona. Proszę połączyć się ponownie. Problem z transferem z C# do Powershell z możliwym kodowaniem - + + Brama + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pt-BR.resx b/mRemoteNG/Language/Language.pt-BR.resx index de44c454..c1e61fda 100644 --- a/mRemoteNG/Language/Language.pt-BR.resx +++ b/mRemoteNG/Language/Language.pt-BR.resx @@ -59,7 +59,7 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - + @@ -105,17 +105,17 @@ - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - text/microsoft-resx 2.0 + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Sobre @@ -222,9 +222,6 @@ Mostrar - - Gateway - Diversos @@ -369,4 +366,11 @@ Arquivo de conexões "{0}" não pôde ser carregado! Começando com o novo arquivo de conexões. + + Gateway + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pt.resx b/mRemoteNG/Language/Language.pt.resx index 2485dcf3..d64d73b9 100644 --- a/mRemoteNG/Language/Language.pt.resx +++ b/mRemoteNG/Language/Language.pt.resx @@ -59,7 +59,7 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - + @@ -105,17 +105,17 @@ - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - text/microsoft-resx 2.0 + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Sobre @@ -225,9 +225,6 @@ Ecrã - - Gateway - Diversos @@ -1341,9 +1338,6 @@ Você deseja salvar o arquivo atual de ligações antes de carregar outro? - - Salvar as ligações à saída - Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png @@ -1554,4 +1548,14 @@ Sim + + Gateway + + + Salvar as ligações à saída + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.resx b/mRemoteNG/Language/Language.resx index c76d522b..75436593 100644 --- a/mRemoteNG/Language/Language.resx +++ b/mRemoteNG/Language/Language.resx @@ -2453,4 +2453,7 @@ Nightly Channel includes Alphas, Betas & Release Candidates. WarnMeOnlyWhenClosingMultipleConnections + + Vault or Openbao + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ru.resx b/mRemoteNG/Language/Language.ru.resx index f4c93f5a..999c82ed 100644 --- a/mRemoteNG/Language/Language.ru.resx +++ b/mRemoteNG/Language/Language.ru.resx @@ -1995,4 +1995,8 @@ mRemoteNG сейчас прекратит работу и начнет проц Сохранять подключения при выходе + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.sv-SE.resx b/mRemoteNG/Language/Language.sv-SE.resx index 2b90e053..f6f13893 100644 --- a/mRemoteNG/Language/Language.sv-SE.resx +++ b/mRemoteNG/Language/Language.sv-SE.resx @@ -1,17 +1,17 @@  - - - + + - + - - - - + + + + - - + + - - + + - - - - + + + + - + - + @@ -228,9 +228,6 @@ Skärm - - Nätverksnod (gateway) - Blandat @@ -2172,4 +2169,11 @@ Nattliga kanalen inkluderar Alfa, Betor & Utgåvokandidater. Remote Desktop Manager-filer (*.csv) + + Nätverksnod (gateway) + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ta.resx b/mRemoteNG/Language/Language.ta.resx index b2881828..3c5d8981 100644 --- a/mRemoteNG/Language/Language.ta.resx +++ b/mRemoteNG/Language/Language.ta.resx @@ -2416,4 +2416,8 @@ முன்னறிவிப்பு - + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.tr-TR.resx b/mRemoteNG/Language/Language.tr-TR.resx index a77970fb..31f45dc2 100644 --- a/mRemoteNG/Language/Language.tr-TR.resx +++ b/mRemoteNG/Language/Language.tr-TR.resx @@ -118,1514 +118,1518 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Hakkında - + Hakkında + - XML'den node ekleme başarısız! - + XML'den node ekleme başarısız! + - Uygulamanın yalnızca bir örneğine izin ver (mRemoteNG yeniden başlatılmalı) - + Uygulamanın yalnızca bir örneğine izin ver (mRemoteNG yeniden başlatılmalı) + - Daima - + Daima + - Kimlik doğrulama başarısız olsa da daima bağlan - + Kimlik doğrulama başarısız olsa da daima bağlan + - Bağlantı açılırken panel seçme diyalogunu daima göster - + Bağlantı açılırken panel seçme diyalogunu daima göster + - Panel sekmesini daima göster - + Panel sekmesini daima göster + - Bilgilendirme alanı simgelerini daima göster - + Bilgilendirme alanı simgelerini daima göster + - Daha sonra tekrar sor - + Daha sonra tekrar sor + - Ayarları şimdi özelleştir - + Ayarları şimdi özelleştir + - Tavsiye edilen ayarları kullan - + Tavsiye edilen ayarları kullan + - {0} yeni özellikler ve hata düzeltmelerinin bulunduğu güncelleştirmeleri otomatik olarak kontrol edebilir. Haftalık olarak güncelleştirmeleri kontrol etmesi için {0} 'ye izin vermeniz önerilir. - + {0} yeni özellikler ve hata düzeltmelerinin bulunduğu güncelleştirmeleri otomatik olarak kontrol edebilir. Haftalık olarak güncelleştirmeleri kontrol etmesi için {0} 'ye izin vermeniz önerilir. + - Otomatik güncelleştirme ayarları - + Otomatik güncelleştirme ayarları + - Görünüş - + Görünüş + - Otomatik kaydet her: - + Otomatik kaydet her: + - Son sürüm - + Son sürüm + - &Aç - + &Aç + - &İptal - + &İptal + - Değiştir - + Değiştir + - &Kapat - + &Kapat + - Varsayılan Devralma - + Varsayılan Devralma + - Varsayılan Özellikler - + Varsayılan Özellikler + - Bağlantıyı kes - + Bağlantıyı kes + - Simge - + Simge + - &İçe aktar - + &İçe aktar + - Devral - + Devral + - &Çalıştır - + &Çalıştır + - Putty'yi çalıştır - + Putty'yi çalıştır + - &Tamam - + &Tamam + - Özellikler - + Özellikler + - &Tara - + &Tara + - &Dur - - - Bağlantı - - - Ağ geçidi - - - Protokol - - - Yönlendir - - - Kontrol başarısız! - - - Bu mesajı tekrar gösterme - - - Bu proxy sunucusu kimlik doğrulama gerektirir - - - Özel PuTTY yolu kullan: - - - Hazır olduğunda tekrar bağlan - - - Kullanıcı adı - - - Tekrar kontrol et - - - Şimdi kontrol et - - - Kapalı portlar - - - Evet - - - Güvenlik - - - Dinamik - - - Yüksek - - - Orta - - - Ses Kalitesi - - - İndirme Tamamlandı! - - - İndir - - - Sunucu bağlantısı kesildiğinde otomatik olarak yeniden bağlanmayı deneyin (yalnızca RDP && ICA) - - - Bağlanmak için proxy sunucusu kullan - - - Çıkış için bekleyin - - - Güncelleştirmeleri açılışta denetle - - - Başlangıçta bileşenlerin doğruluğunu kontrol edin - - - Argümanlar - - - Dosya adı - - - Mesaj - - - Ç&ıkış {0} - - - Komut satırı argümanları ayrıştırılamadı - - - &Bağlantı dosyası aç - - - &Tekrar deneyin - - - {0}, bu sistemde çalışan Lenovo Auto Scroll Utility algıladı. Bu yardımcı programın {0} ile ilgili sorunlara neden olduğu bilinmektedir. Devre dışı bırakmanız veya kaldırmanız önerilir. - - - Uyumluluk sorunu tespit edildi - - - btnIcon_Click başarısız! - - - ShowHideGridItems başarısız! - - - IconMenu_Click başarısız! - - - Özellik Izgara nesnesi başarısız oldu! - - - SetHostStatus başarısız! - - - pGrid_PopertyValueChanged başarısız! - - - Ayar arayüzü yükleme başarısız! - - - Panelini kapatmak istediğinizden emin misiniz, "{0}"? İçerdiği tüm bağlantılar da kapatılacaktır. - - - Harici aracı silmek istediğinizden emin misiniz, "{0}"? - - - Seçilen harici araçları {0} silmek istediğinizden emin misiniz? - - - Bağlantıyı silmek istediğinize emin misiniz, "{0}"? - - - Boş klasörü silmek istediğinize emin misiniz, "{0}"? - - - Bu klasörü silmek istediğinizden emin misiniz, "{0}"? İçerdiği klasörler veya bağlantılar da silinir. - - - Bütün açık bağlantılar kapatlsın mı? - - - Panelleri varsayılan yerleşimine sıfırlamak istediğinizden emin misiniz? - - - Bağlan - - - Tam ekran modunda bağlan - - - Bağlanıyor... - - - Protokol Event Bağlandı - - - "{2}" kullanıcısı tarafından kurulan "{1}" yoluyla "{0}" bağlantısı (Açıklama: "{3}"; Kullanıcı Alanı: "{4}") - - - Bağlantı başarısız! - - - Protokol Event Hata Gerçekleşti - - - Bağlantıyı açma başarısız! - - - -Bağlantı açılamıyor: Hostname belirtilmedi! - - - Bağlantılar - - - Varsayılan bağlantı noktası ayarlanamadı! - - - Bağlantılar dosyasının yedeğini oluşturulamadı! - - - "{0}" bağlantı dosyası yüklenemedi! - - - "{0}" bağlantı dosyası yüklenemedi! -Yeni bağlantılar dosyası ile başlanıyor. - + &Dur + - Test Vekil Sunucu - + Test Vekil Sunucu + - Port taraması başlatılamadı, IP formatı geçersiz! - + Port taraması başlatılamadı, IP formatı geçersiz! + - Görünüm - + Görünüm + + + Bağlantı + - Ekran - + Ekran + - Çeşitli - - - Şifreleme Motoru - - - Temel Türev Fonksiyon Yinelemeleri - - - Protokol tarafından sağlanan Ses Kalitesini seçin: Dinamik, Orta, Yüksek - + Çeşitli + + + Protokol + + + Yönlendir + + + Kontrol başarısız! + + + Sunucu bağlantısı kesildiğinde otomatik olarak yeniden bağlanmayı deneyin (yalnızca RDP && ICA) + + + Bu mesajı tekrar gösterme + + + Bu proxy sunucusu kimlik doğrulama gerektirir + + + Özel PuTTY yolu kullan: + + + Hazır olduğunda tekrar bağlan + + + Bağlanmak için proxy sunucusu kullan + + + Kullanıcı adı + + + Çıkış için bekleyin + + + Tekrar kontrol et + + + Güncelleştirmeleri açılışta denetle + + + Şimdi kontrol et + + + Başlangıçta bileşenlerin doğruluğunu kontrol edin + - Bağlanmadan önce paneli seç - + Bağlanmadan önce paneli seç + + + Kapalı portlar + - Bütün klasörleri daralt - + Bütün klasörleri daralt + + + Argümanlar + + + Dosya adı + + + Mesaj + + + Ç&ıkış {0} + + + Komut satırı argümanları ayrıştırılamadı + + + &Bağlantı dosyası aç + + + &Tekrar deneyin + + + {0}, bu sistemde çalışan Lenovo Auto Scroll Utility algıladı. Bu yardımcı programın {0} ile ilgili sorunlara neden olduğu bilinmektedir. Devre dışı bırakmanız veya kaldırmanız önerilir. + + + Uyumluluk sorunu tespit edildi + + + btnIcon_Click başarısız! + + + ShowHideGridItems başarısız! + + + IconMenu_Click başarısız! + + + Özellik Izgara nesnesi başarısız oldu! + + + SetHostStatus başarısız! + + + pGrid_PopertyValueChanged başarısız! + + + Ayar arayüzü yükleme başarısız! + + + Panelini kapatmak istediğinizden emin misiniz, "{0}"? İçerdiği tüm bağlantılar da kapatılacaktır. + + + Harici aracı silmek istediğinizden emin misiniz, "{0}"? + + + Seçilen harici araçları {0} silmek istediğinizden emin misiniz? + + + Bağlantıyı silmek istediğinize emin misiniz, "{0}"? + + + Boş klasörü silmek istediğinize emin misiniz, "{0}"? + + + Bu klasörü silmek istediğinizden emin misiniz, "{0}"? İçerdiği klasörler veya bağlantılar da silinir. + + + Bütün açık bağlantılar kapatlsın mı? + + + Panelleri varsayılan yerleşimine sıfırlamak istediğinizden emin misiniz? + + + Bağlan + + + Tam ekran modunda bağlan + + + Bağlanıyor... + + + Protokol Event Bağlandı + + + "{2}" kullanıcısı tarafından kurulan "{1}" yoluyla "{0}" bağlantısı (Açıklama: "{3}"; Kullanıcı Alanı: "{4}") + + + Bağlantı başarısız! + + + Protokol Event Hata Gerçekleşti + + + Bağlantıyı açma başarısız! + + + +Bağlantı açılamıyor: Hostname belirtilmedi! + + + Bağlantılar + + + Varsayılan bağlantı noktası ayarlanamadı! + + + Bağlantılar dosyasının yedeğini oluşturulamadı! + + + "{0}" bağlantı dosyası yüklenemedi! + + + "{0}" bağlantı dosyası yüklenemedi! +Yeni bağlantılar dosyası ile başlanıyor. + - "{0}" bağlantı dosyası kaydedilemiyor! - + "{0}" bağlantı dosyası kaydedilemiyor! + - Kimlik olmadan bağlan - + Kimlik olmadan bağlan + - Konsol oturumuna bağlan - + Konsol oturumuna bağlan + - Bağlan (Ayarları kullanarak) - + Bağlan (Ayarları kullanarak) + - {1} ile bağlanılan {0}, {2} tarafından kapatıldı. - + {1} ile bağlanılan {0}, {2} tarafından kapatıldı. + - Bağlantı kapatıldı - + Bağlantı kapatıldı + - Bağlantı kapatılma başarısız! - + Bağlantı kapatılma başarısız! + - Yeni bağlantı dosyası oluşturulamadı! - + Yeni bağlantı dosyası oluşturulamadı! + - ToolStrip kontrolü FilteredPropertyGrid içinde bulunamadı. - + ToolStrip kontrolü FilteredPropertyGrid içinde bulunamadı. + - Algıla - + Algıla + - Konsol oturumuna bağlanma - + Konsol oturumuna bağlanma + - Kimlik doğrulama başarısız olursa bağlanma - + Kimlik doğrulama başarısız olursa bağlanma + - Sekmeyi çift tıklayarak kapatın - + Sekmeyi çift tıklayarak kapatın + - İndir ve Yükle - + İndir ve Yükle + - Çoğalt - + Çoğalt + - Parola olmadan devam etmek istiyor musunuz? - + Parola olmadan devam etmek istiyor musunuz? + - Boş bırakılan Kullanıcı adı, Parola ve Domain için: - + Boş bırakılan Kullanıcı adı, Parola ve Domain için: + - Bağlantı dosyası şifreleme - + Bağlantı dosyası şifreleme + - Son IP - + Son IP + - Son Port - + Son Port + - Araç çubuğuna harici araç ekleme (frmMain) başarısız. {0} - + Araç çubuğuna harici araç ekleme (frmMain) başarısız. {0} + - Klasör ekle ((UI.Window.ConnectionTreeWindow) başarısız. {0} - + Klasör ekle ((UI.Window.ConnectionTreeWindow) başarısız. {0} + - Veritabanı {0} sürümü, {1} sürümüyle uyumlu değil. - + Veritabanı {0} sürümü, {1} sürümüyle uyumlu değil. + - Bağlantı listesi kaydedilemedi. - + Bağlantı listesi kaydedilemedi. + - PuTTY başlatılamadı. - + PuTTY başlatılamadı. + - Çözümleme başarısız. {0} - + Çözümleme başarısız. {0} + - Şifreleme başarısız. {0} - + Şifreleme başarısız. {0} + - Hatalar - + Hatalar + - Başlangıç bağlantı dosyası yüklenemedi. {0}{0}{2}{0}{3}{0}{0} veri kaybını önlemek için {1}'den şimdi çıkılacak. - + Başlangıç bağlantı dosyası yüklenemedi. {0}{0}{2}{0}{3}{0}{0} veri kaybını önlemek için {1}'den şimdi çıkılacak. + - Veritabanı sürümü doğrulaması (Config.Connections.Save) başarısız. {0} - + Veritabanı sürümü doğrulaması (Config.Connections.Save) başarısız. {0} + - Tüm klasörleri genişlet - + Tüm klasörleri genişlet + - Deneysel - + Deneysel + - Dışa aktar - + Dışa aktar + - Herşeyi dışa aktar - + Herşeyi dışa aktar + - Dosyayı dışa aktar - + Dosyayı dışa aktar + - Öğeleri dışa aktar - + Öğeleri dışa aktar + - Seçenekleri dışa aktar - + Seçenekleri dışa aktar + - Seçili olan bağlantıları dışa aktar - + Seçili olan bağlantıları dışa aktar + - Seçili olan klasörleri dışa aktar - + Seçili olan klasörleri dışa aktar + - &Dosyaya dışa atar... - + &Dosyaya dışa atar... + - Yeni harici araç - + Yeni harici araç + - Dosya &Formatı: - + Dosya &Formatı: + - Tüm Dosyalar (*.*) - + Tüm Dosyalar (*.*) + - Tüm alınabilir dosyalar - + Tüm alınabilir dosyalar + - Uygulama Dosyaları (*.exe) - + Uygulama Dosyaları (*.exe) + - mRemote CSV Dosyaları (*.csv) - + mRemote CSV Dosyaları (*.csv) + - mRemote XML Dosyaları (*.xml) - + mRemote XML Dosyaları (*.xml) + - PuTTY Bağlantı Yöneticisi dosyaları - + PuTTY Bağlantı Yöneticisi dosyaları + - Uzak Masaüstü Bğlantı Yöneticisi dosyaları (*.rdg) - + Uzak Masaüstü Bğlantı Yöneticisi dosyaları (*.rdg) + - RDP Dosyaları (*.rdp) - + RDP Dosyaları (*.rdp) + - Miras {0} - + Miras {0} + - Miras kalan özelliklerin açıklaması: {0} - + Miras kalan özelliklerin açıklaması: {0} + - Boş - + Boş + - Tam Ekran - + Tam Ekran + - Genel - + Genel + - "{1}" den "{0}" için bağlantı bilgileri alınırken bir hata oluştu. {2} - + "{1}" den "{0}" için bağlantı bilgileri alınırken bir hata oluştu. {2} + - Otomatik Yeniden Bağlan - + Otomatik Yeniden Bağlan + - Harici Araç Özellikleri - + Harici Araç Özellikleri + - Dosyalar - + Dosyalar + - HTTP Bağlantısı Başarısız! - + HTTP Bağlantısı Başarısız! + - Yeni HTTP Bağlantısı oluşturulamadı! - + Yeni HTTP Bağlantısı oluşturulamadı! + - HTTP Doküman Dosyasını Değiştirme Başarısız! - + HTTP Doküman Dosyasını Değiştirme Başarısız! + - HTTP Prop'larını değiştirme başarısız! - - - Veritabanı: - - - Doğrula: - - - Dil - - - (Otomatik Algıla) - - - Dili değiştirmek için {0} yeniden başlatılmalıdır. - - - SQL'den yükleme başarısız! - - - Bağlantı bilgileri SQL sunucusundan yüklenemedi. - - - XML'den yükleme başarısız! - - - Yerel dosya - - - Yerel dosya yok! - - - Bağlantı Paneli Ekle - - - Güncelleştirmeleri Konrol Et - - - Ayar - - - Bağlantı Paneli - - - Kopyala - - - Harici Aracı Sil... - - - Bağış Yap - - - Sekmeyi Çoğalt - - - Çıkış - - - Harici Araçlar Araç çubuğu - - - &Dosya - - - &Yardım - - - mRemoteNG Yardım - - - Harici Aracı Çalıştır - - - Yeni Bağlantı Dosyası - - - Yeni Harici Araç - - - Bildirim - - - Hepsini Kopyala - - - Hepsini Sil - - - Bağlantı Dosyasını Aç - - - Ayarlar - - - Port Taraması - - - Hızlı Bağlantı Araç Çubuğu - - - Yeniden Bağlan - - - Ekranı Yenile (VNC) - - - Sekmeyi Yeniden Adlandır - - - Hata Raporla - - - Düzeni sıfırla - - - Bağlantı Dosyasını Kaydet - - - Bağlantı Dosyasını Farklı Kaydet - - - Özel Tuş Gönder (VNC) - - - &Yardım Metnini Görüntüle - - - Metni Görüntüle - - - Akıllı Boyutlandırma (RDP/VNC) - - - SSH Dosya Transferi - - - Sohbet'i Başlat (VNC) - - - Destek Forumu - - - &Araçlar - - - Dosya Transferi (SSH) - - - &Görünüm - - - Yalnızca Gör (VNC) - - - Web Sitesi - - - Bilgilendirme alanına küçült - - - Aşağı in - - - Yukarı çık - - - Şimdiki kimlik bilgilerim (Windows oturum açma bilgileri) - - - Asla - - - Yeni Bağlantı - - - Yeni Klasör - - - Yeni Panel - - - Yeni Başlık - - - Hayır - - - Sıkıştırmasız - - - Harici Uygulama belirtilmedi - - - Yok - - - Akıllı Boyutlandırma yok - - - Güncelleştirme yok - - - MRemote'un çok eski bir sürümü kullanılarak oluşturulmuş bir bağlantı dosyası yüklemeye çalışıyorsunuz, bu bir çalışma zamanı hatasına neden olabilir. -Böyle bir hatayla karşılaşırsanız, lütfen yeni bir bağlantı dosyası oluşturun! - - - Seçili sekmenin sağında yeni sekme açın - - - Açık Portlar - - - Test ediliyor... - - - Tema - - - &Sil - - - &Yeni - - - VNC Yalnızca Bak geçişi başarısız! - - - Kimlik doğrulama başarısız olduğunda beni uyar - - - Uyarılar - - - RDP Bağlantısı Zamanaşımı - - - Bu düğüm zaten bu klasörde. - - - Düğümü kendine sürükleyemezsiniz. - - - Üst düğüm alt öğeye sürüklenemez. - - - Bu düğüm sürüklenemez - - - Güncelleştirme karşıdan yüklemesi başlatılamadı. - - - Her {0} günde bir - - - Günlük - - - Aylık - - - Haftalık - - - Değişiklik günlüğü indirilemedi. - - - Faklı bir kullanıcı adı ve parola kullan - - - Kullanıcı - - - Aynı kullanıcı adı ve parolasını kullan - - - Smart Kart kullan - - - Sürüm - - - Hata ({0}) - - - Bilgi ({0}) - - - Parola - - - {0} için parola - - - Panel Seçin - - - Uyarı ({0}) - - - Bütünleştirmeyi deneyin - - - Kaydedilmesini istemediğiniz özelliklerin işaretini kaldırın! - - - MRemoteNG bir güncelleme gerektiriyor - - - MRemoteNG, düzenli olarak güncellemeleri kontrol etmek için mRemoteNG web sitesine bağlanabilir. - - - Güncelleştirme bilgileri indirilemedi. - - - İndirme tamamlandı! -MRemoteNG şimdi kapanacak ve kurulum başlayacak. - - - Güncelleme indirilemedi. - + HTTP Prop'larını değiştirme başarısız! + - "Hızlı:" önekini ekleyerek hızlı bağlantı sekmelerini belirleyin - + "Hızlı:" önekini ekleyerek hızlı bağlantı sekmelerini belirleyin + - Active Directoy'den içe aktar - + Active Directoy'den içe aktar + - Dosya alınırken bir hata oluştu, "{0}". - + Dosya alınırken bir hata oluştu, "{0}". + - &Dosyadan içe aktar... - + &Dosyadan içe aktar... + - Port Taramasından içe aktar - + Port Taramasından içe aktar + - Bilgiler - + Bilgiler + - Int App kaldırma işlemi başarısız! - + Int App kaldırma işlemi başarısız! + - Int App odaklaması başarısız! - + Int App odaklaması başarısız! + - Int App işleme: {0} - + Int App işleme: {0} + - Int App durdurma başarısız! - + Int App durdurma başarısız! + - Int App yeniden boyutlandırma başarız! - + Int App yeniden boyutlandırma başarız! + - --- IntApp Ekibi --- - + --- IntApp Ekibi --- + - Int App Başlığı: {0} - + Int App Başlığı: {0} + - Adres: - + Adres: + - Bağlantı kapatılırken: - + Bağlantı kapatılırken: + - Görünen Ad - + Görünen Ad + - Taşınabilir Sürüm - + Taşınabilir Sürüm + - PuTTY oturumlarını yapılandırmak için bu butona tıklayın: - + PuTTY oturumlarını yapılandırmak için bu butona tıklayın: + - + PuTTY ve harici araçlar için en fazla bekleme süresi: - + - GNU Genel Kamu Lisansı (GPL) kapsamında çıkarıldı - + GNU Genel Kamu Lisansı (GPL) kapsamında çıkarıldı + - saniyeler - + saniyeler + - Aşağıdaki listeden bir panel seçin veya yeni bir panel eklemek için Yeni'yi tıklayın. Devam etmek için Tamam'ı tıklayın. - + Aşağıdaki listeden bir panel seçin veya yeni bir panel eklemek için Yeni'yi tıklayın. Devam etmek için Tamam'ı tıklayın. + - Sunucu Durumu: - + Sunucu Durumu: + + + Veritabanı: + + + Doğrula: + + + Dil + + + (Otomatik Algıla) + + + Dili değiştirmek için {0} yeniden başlatılmalıdır. + + + SQL'den yükleme başarısız! + + + Bağlantı bilgileri SQL sunucusundan yüklenemedi. + + + XML'den yükleme başarısız! + + + Yerel dosya + + + Yerel dosya yok! + + + Bağlantı Paneli Ekle + + + Güncelleştirmeleri Konrol Et + + + Ayar + + + Bağlantı Paneli + + + Kopyala + + + Harici Aracı Sil... + + + Bağış Yap + + + Sekmeyi Çoğalt + + + Çıkış + + + Harici Araçlar Araç çubuğu + + + &Dosya + + + &Yardım + + + mRemoteNG Yardım + + + Harici Aracı Çalıştır + + + Yeni Bağlantı Dosyası + + + Yeni Harici Araç + + + Bildirim + + + Hepsini Kopyala + + + Hepsini Sil + + + Bağlantı Dosyasını Aç + + + Ayarlar + + + Port Taraması + + + Hızlı Bağlantı Araç Çubuğu + + + Yeniden Bağlan + + + Ekranı Yenile (VNC) + + + Sekmeyi Yeniden Adlandır + + + Hata Raporla + + + Düzeni sıfırla + + + Bağlantı Dosyasını Kaydet + + + Bağlantı Dosyasını Farklı Kaydet + + + Özel Tuş Gönder (VNC) + + + &Yardım Metnini Görüntüle + + + Metni Görüntüle + + + Akıllı Boyutlandırma (RDP/VNC) + + + SSH Dosya Transferi + + + Sohbet'i Başlat (VNC) + + + Destek Forumu + + + &Araçlar + + + Dosya Transferi (SSH) + + + &Görünüm + + + Yalnızca Gör (VNC) + + + Web Sitesi + + + Bilgilendirme alanına küçült + + + Aşağı in + + + Yukarı çık + + + Şimdiki kimlik bilgilerim (Windows oturum açma bilgileri) + + + Asla + + + Yeni Bağlantı + + + Yeni Klasör + + + Yeni Panel + + + Yeni Başlık + + + Hayır + + + Sıkıştırmasız + + + Harici Uygulama belirtilmedi + + + Yok + + + Akıllı Boyutlandırma yok + + + Güncelleştirme yok + + + MRemote'un çok eski bir sürümü kullanılarak oluşturulmuş bir bağlantı dosyası yüklemeye çalışıyorsunuz, bu bir çalışma zamanı hatasına neden olabilir. +Böyle bir hatayla karşılaşırsanız, lütfen yeni bir bağlantı dosyası oluşturun! + + + Seçili sekmenin sağında yeni sekme açın + + + Açık Portlar + + + Test ediliyor... + + + Tema + + + &Sil + + + &Yeni + - Panel Adı - + Panel Adı + - Parola koruması - + Parola koruması + - Parolalar eşleşmelidir. - + Parolalar eşleşmelidir. + - Parolama en az 3 karakter uzunluğunda olmalıdır. - + Parolama en az 3 karakter uzunluğunda olmalıdır. + - Lütfen tüm alanları doldurun - + Lütfen tüm alanları doldurun + - Port taraması tamamlandı. - + Port taraması tamamlandı. + - PortScan paneli yüklenemedi! - + PortScan paneli yüklenemedi! + - Bağlanmak istediğiniz ana makine adını veya ip'yi girin. - + Bağlanmak istediğiniz ana makine adını veya ip'yi girin. + - Tüm kalıtım seçeneklerini açın veya kapatın. - + Tüm kalıtım seçeneklerini açın veya kapatın. + - Bu bağlantının hangi kimlik doğrulama düzeyini kullanması gerektiğini seçin. - + Bu bağlantının hangi kimlik doğrulama düzeyini kullanması gerektiğini seçin. + - VNC sunucusuna nasıl kimlik doğrulama yapmak istediğinizi seçin. - + VNC sunucusuna nasıl kimlik doğrulama yapmak istediğinizi seçin. + - Pencere yeniden boyutlandırıldığında veya tam ekran modu değiştirildiğinde pencereyi yeniden boyutlandırılmasını seçin. RDP 8.0 veya üstü gerektirir. - + Pencere yeniden boyutlandırıldığında veya tam ekran modu değiştirildiğinde pencereyi yeniden boyutlandırılmasını seçin. RDP 8.0 veya üstü gerektirir. + - Bitmap önbellekleme kullanılıp kullanılmayacağını seçin. - + Bitmap önbellekleme kullanılıp kullanılmayacağını seçin. + - Kullanılacak renk kalitesini seçin. - + Kullanılacak renk kalitesini seçin. + - Kullanılacak sıkıştırma değerini seçin. - + Kullanılacak sıkıştırma değerini seçin. + - Host için notlarınızı veya açıklamanızı buraya yazın. - + Host için notlarınızı veya açıklamanızı buraya yazın. + - Uzak host teması görüntülenmesi gerekiyorsa evet'i seçin. - + Uzak host teması görüntülenmesi gerekiyorsa evet'i seçin. + - Uzak host duvar kağıdının görüntülenmesi gerekiyorsa evet'i seçin. - + Uzak host duvar kağıdının görüntülenmesi gerekiyorsa evet'i seçin. + - Alan adınızı girin. - + Alan adınızı girin. + - Masaüstü kompozisyonunu kullanıp kullanmamayı seçin. - + Masaüstü kompozisyonunu kullanıp kullanmamayı seçin. + - Yazı tipi yumuşatmayı kullanıp kullanmamayı seçin. - + Yazı tipi yumuşatmayı kullanıp kullanmamayı seçin. + - Kullanılacak kodlama modunu seçin. - + Kullanılacak kodlama modunu seçin. + - Başlatılacak harici aracı seçin. - + Başlatılacak harici aracı seçin. + - Uzak host bağlantısı kesildikten sonra başlatılacak harici bir aracı seçin. - + Uzak host bağlantısı kesildikten sonra başlatılacak harici bir aracı seçin. + - Uzak host bağlantısı kurulmadan önce başlatılacak harici bir araç seçin. - + Uzak host bağlantısı kurulmadan önce başlatılacak harici bir araç seçin. + - Host bağlantısı kurulduğunda görüntülenecek bir simge seçin. - + Host bağlantısı kurulduğunda görüntülenecek bir simge seçin. + - Yük dengeleyici, yönlendiriciler tarafından en iyi sunucuyu seçmek için kullanılacak yük dengeleme bilgilerini belirtir. - + Yük dengeleyici, yönlendiriciler tarafından en iyi sunucuyu seçmek için kullanılacak yük dengeleme bilgilerini belirtir. + - Harici bir araç içinde kullanmak isterseniz uzaktaki bilgisayarın MAC adresini girin. - + Harici bir araç içinde kullanmak isterseniz uzaktaki bilgisayarın MAC adresini girin. + - Bu, bağlantı ağacında görüntülenecek addır. - + Bu, bağlantı ağacında görüntülenecek addır. + - Bağlantının açılacağı paneli ayarlar. - + Bağlantının açılacağı paneli ayarlar. + - Parolanızı girin. - + Parolanızı girin. + - Seçilen protokolün dinlediği portu girin. - - - Baplantıları yüklemek ve kaydetmek için SQL Sunucusu kullanın - - - VNC bağlantı kesme başarısız! - - - VNC ekrar yenileme başarısız! - - - VNC Özel tuş gönderme başarısız! - - - VNC Olay İşleyicileri başarısız oldu! - - - VNC Seçenek ayarlama başarısız! - - - VNC Akıllı Boyut Değiştirme Başarısız! - - - Blok Şifre Modu - + Seçilen protokolün dinlediği portu girin. + - Host bağlantısı için mRemoteNG'nin kullanması gereken protokolü seçin. - + Host bağlantısı için mRemoteNG'nin kullanması gereken protokolü seçin. + - Bağlanırken kullanılacak bir PuTTY oturumu seçin. - + Bağlanırken kullanılacak bir PuTTY oturumu seçin. + - Bir kullanıcının RD Ağ Geçidi sunucusuna bağlanmak için sağladığı alan adını belirtir. - + Bir kullanıcının RD Ağ Geçidi sunucusuna bağlanmak için sağladığı alan adını belirtir. + - Uzak Masaüstü Ağ Geçidi sunucusunun host adını belirtir. - + Uzak Masaüstü Ağ Geçidi sunucusunun host adını belirtir. + - Uzak Masaüstü Ağ Geçidi (RD Ağ Geçidi) sunucusunun ne zaman kullanılacağını belirtir. - + Uzak Masaüstü Ağ Geçidi (RD Ağ Geçidi) sunucusunun ne zaman kullanılacağını belirtir. + - Bağlantı olarak aynı kullanıcı adı ve parolayı kullanarak ağ geçidinde oturum açıp açmayacağını belirtir. - + Bağlantı olarak aynı kullanıcı adı ve parolayı kullanarak ağ geçidinde oturum açıp açmayacağını belirtir. + - Bir kullanıcının RD Ağ Geçidi sunucusuna bağlanmak için sağladığı kullanıcı adını belirtir. - + Bir kullanıcının RD Ağ Geçidi sunucusuna bağlanmak için sağladığı kullanıcı adını belirtir. + - Yerel disk sürücülerinin uzak host içinde gösterilip gösterilmeyeceğini seçin. - + Yerel disk sürücülerinin uzak host içinde gösterilip gösterilmeyeceğini seçin. + - Tuş kombinasyonlarının (ör. Alt-Sekme) uzaktaki host'a yönlendirilip yönlendirilmeyeceğini seçin. - + Tuş kombinasyonlarının (ör. Alt-Sekme) uzaktaki host'a yönlendirilip yönlendirilmeyeceğini seçin. + - Uzak ana bilgisayarda yerel bağlantı noktalarının (yani com, paralel) gösterilip gösterilmeyeceğini seçin. - + Uzak ana bilgisayarda yerel bağlantı noktalarının (yani com, paralel) gösterilip gösterilmeyeceğini seçin. + - Uzak host'da yazıcıların gösterilip gösterilmeyeceğini seçin. - + Uzak host'da yazıcıların gösterilip gösterilmeyeceğini seçin. + - Yerel akıllı kartların uzaktaki bilgisayarda bulunup bulunmayacağını seçin. - + Yerel akıllı kartların uzaktaki bilgisayarda bulunup bulunmayacağını seçin. + - Uzak sesin nasıl yönlendirileceğini seçin. - + Uzak sesin nasıl yönlendirileceğini seçin. + - HTML'yi görüntülemek için kullanılacak kullanılabilir oluşturma motorlarından birini seçin. - + HTML'yi görüntülemek için kullanılacak kullanılabilir oluşturma motorlarından birini seçin. + - Bu bağlantının açılacağı çözünürlüğü veya modu seçin. - + Bu bağlantının açılacağı çözünürlüğü veya modu seçin. + - Kullanılacak akıllı boyutlandırma modunu seçin. - + Kullanılacak akıllı boyutlandırma modunu seçin. + - Uzak host'un konsol oturumuna bağlanın. - + Uzak host'un konsol oturumuna bağlanın. + - Kimlik doğrulama için eğer kullanılabilirse, Kimlik Bilgisi Güvenliği Destek Sağlayıcısı'nı (CredSSP) kullanın. - + Kimlik doğrulama için eğer kullanılabilirse, Kimlik Bilgisi Güvenliği Destek Sağlayıcısı'nı (CredSSP) kullanın. + - İhtiyacınız olan bilgileri buraya girmekten çekinmeyin. - + İhtiyacınız olan bilgileri buraya girmekten çekinmeyin. + - Kullanıcı adınızı yazın - + Kullanıcı adınızı yazın + - Host'a yalnızca izlemek için bağlantı oluşturmak istiyorsanız evet'i seçin. - + Host'a yalnızca izlemek için bağlantı oluşturmak istiyorsanız evet'i seçin. + - Kullanılacak proxy adresini girin. - + Kullanılacak proxy adresini girin. + - Proxy ile kimlik doğrulamak için parolanızı girin. - + Proxy ile kimlik doğrulamak için parolanızı girin. + - Proxy sunucusunun dinlediği bağlantı noktasını girin. - + Proxy sunucusunun dinlediği bağlantı noktasını girin. + - VNC bağlantılarını tünellemek için bir proxy kullanırsanız, hangi tip olduğunu seçin. - + VNC bağlantılarını tünellemek için bir proxy kullanırsanız, hangi tip olduğunu seçin. + - Proxy ile kimlik doğrulamak için kullanıcı adınızı girin. - + Proxy ile kimlik doğrulamak için kullanıcı adınızı girin. + - Hepsi - + Hepsi + - Sunucu Kimlik Doğrulama - + Sunucu Kimlik Doğrulama + - Kimlik Doğrulama Modu - + Kimlik Doğrulama Modu + - Otomatik Boyutlandır - + Otomatik Boyutlandır + - Küçük Resimleri Önbelleğe Al - + Küçük Resimleri Önbelleğe Al + - Renkler - + Renkler + - Sıkıştırma - + Sıkıştırma + - Açıklama - + Açıklama + - Temaları Göster - + Temaları Göster + - Duvar Kağıdını Göster - + Duvar Kağıdını Göster + - Masaüstü Bileşimi - + Masaüstü Bileşimi + - Font Yumuşatma - + Font Yumuşatma + - Kodlama - + Kodlama + - Harici Araç - + Harici Araç + - Harici Araç Sonrası - + Harici Araç Sonrası + - Harici Araç Öncesi - + Harici Araç Öncesi + - Yük Dengeleme Bilgisi - + Yük Dengeleme Bilgisi + - MAC Adresi - + MAC Adresi + - Ad - + Ad + - Parola - + Parola + - PuTTY Oturumu - + PuTTY Oturumu + - Uzak Masaüstü Gateway Parolası - + Uzak Masaüstü Gateway Parolası + - Gateway Kullan - + Gateway Kullan + - Gateway Kimlik bilgileri - + Gateway Kimlik bilgileri + - Gateway Kullanıcı Adı - + Gateway Kullanıcı Adı + - Disk Sürücüleri - + Disk Sürücüleri + - Tuş Kombinasyonları - + Tuş Kombinasyonları + - Portlar - + Portlar + - Yazıcılar - + Yazıcılar + - Sesler - + Sesler + - Render Motoru - + Render Motoru + - Çözünürlük - + Çözünürlük + - SmartSize Modu - + SmartSize Modu + - Konsol Oturumunu Kullan - + Konsol Oturumunu Kullan + - CredSSP Kullan - + CredSSP Kullan + - Kulanıcı Alanı - + Kulanıcı Alanı + - Proxy Adresi - + Proxy Adresi + - Proxy Parolası - + Proxy Parolası + - Proxy Portu - + Proxy Portu + - Proxy Tipi - + Proxy Tipi + - Proxy Kullanıcı Adı - + Proxy Kullanıcı Adı + - Protokol Bağlantısı Kesildi. + Protokol Bağlantısı Kesildi. Mesaj: {0} - + - Protokol Bağlantı kesme İşlemi Başarısız. + Protokol Bağlantı kesme İşlemi Başarısız. {0} - + - İçe alma protokolü - + İçe alma protokolü + - Proxy testi başarısız! - + Proxy testi başarısız! + - Proxy testi başarılı! - + Proxy testi başarılı! + - Putty işleminin kapatma başarısız oldu! - + Putty işleminin kapatma başarısız oldu! + - Odaklama ayarlanamadı! - + Odaklama ayarlanamadı! + - Putty işlemini sonlandırma başarısız! - + Putty işlemini sonlandırma başarısız! + - Putty yeniden boyutlandırma başarısız! - + Putty yeniden boyutlandırma başarısız! + - PuTTY kaydedilen oturumlar - + PuTTY kaydedilen oturumlar + - PuTTY Ayarları - + PuTTY Ayarları + - PuTTY Ayarları gösterilemedi! - + PuTTY Ayarları gösterilemedi! + - --- PuTTY Ekibi --- - + --- PuTTY Ekibi --- + - Putty Başlığı: {0} - + Putty Başlığı: {0} + - Hızlı: {0} - + Hızlı: {0} + - Hızlı Bağlan - + Hızlı Bağlan + - Hızlı Bağlantı Ekleme Başarısız! - + Hızlı Bağlantı Ekleme Başarısız! + - Hızlı bağlantı oluşturma başarısız - + Hızlı bağlantı oluşturma başarısız + - &Bağlantılar kapatılırken beni uyar - + &Bağlantılar kapatılırken beni uyar + - Beni yalnızca mRemoteNG &kapatılırken uyar - + Beni yalnızca mRemoteNG &kapatılırken uyar + - Beni yalnızca birden &fazla bağlantı kapatılırken uyar - + Beni yalnızca birden &fazla bağlantı kapatılırken uyar + - Bağlantılar kapatılırken beni uyarma - + Bağlantılar kapatılırken beni uyarma + - RDP kontrolü oluşturulamadı, lütfen mRemoteNG gereksinimlerini kontrol edin. - + RDP kontrolü oluşturulamadı, lütfen mRemoteNG gereksinimlerini kontrol edin. + - İmleci yanıp sönme özelliğini devre dışı bırak - + İmleci yanıp sönme özelliğini devre dışı bırak + - İmleç Gölgesini Devre Dışı Bırak - + İmleç Gölgesini Devre Dışı Bırak + - Tam Pencere sürüklemeyi devre dışı bırak - + Tam Pencere sürüklemeyi devre dışı bırak + - Menü Animasyonlarını Devre Dışı Bırak - + Menü Animasyonlarını Devre Dışı Bırak + - RDP bağlantısı kesilemedi, kapatmaya çalışılıyor! - + RDP bağlantısı kesilemedi, kapatmaya çalışılıyor! + - Dahili hata kodu 1. - + Dahili hata kodu 1. + - Dahili hata kodu 2. - + Dahili hata kodu 2. + - Dahili hata kodu 3. Bu geçerli bir durum değil. - + Dahili hata kodu 3. Bu geçerli bir durum değil. + - Dahili hata kodu 4. - + Dahili hata kodu 4. + - İstemci bağlantısı sırasında kurtarılamayan bir hata oluştu. - + İstemci bağlantısı sırasında kurtarılamayan bir hata oluştu. + - Hata çağırma başarısız (Önemli Hatalar) - + Hata çağırma başarısız (Önemli Hatalar) + - Bir bellek yetersiz hatası oluştu. - + Bir bellek yetersiz hatası oluştu. + - Bilinmeyen bir hata oluştu. - + Bilinmeyen bir hata oluştu. + - Bir pencere oluşturma hatası oluştu. - + Bir pencere oluşturma hatası oluştu. + - Winsock başlatma hatası. - + Winsock başlatma hatası. + - Panele Sığdır - + Panele Sığdır + - RDP Odaklama başarısız oldu! - + RDP Odaklama başarısız oldu! + - RD Ağ Geçidi desteklenmektedir. - + RD Ağ Geçidi desteklenmektedir. + - RD Ağ Geçidi desteklenmemektedir. - + RD Ağ Geçidi desteklenmemektedir. + - RDP yeniden bağlanma sayısı: - + RDP yeniden bağlanma sayısı: + - RDP Kimlik Doğrulama Düzeyi Ayarlanamadı! - + RDP Kimlik Doğrulama Düzeyi Ayarlanamadı! + - RDP konsol oturumunu kullanma başarısız! - + RDP konsol oturumunu kullanma başarısız! + - RDC {0} için Konsol anahtarını ayarlama. - + RDC {0} için Konsol anahtarını ayarlama. + - RDP Kimlik bilgilerini ayarlama başarısız oldu! - + RDP Kimlik bilgilerini ayarlama başarısız oldu! + - RDP Olay İşleyicisi ayarlama başarısız oldu! - + RDP Olay İşleyicisi ayarlama başarısız oldu! + - RDP RD Gateway ayarlama başarısız oldu! - + RDP RD Gateway ayarlama başarısız oldu! + - RDP Performans ayarları başarısız oldu! - + RDP Performans ayarları başarısız oldu! + - RDP Port ayarlama başarısız! - + RDP Port ayarlama başarısız! + - RDP Prob'ları ayarlama başarısız! - + RDP Prob'ları ayarlama başarısız! + - Rdp Yönlendirme ayarlaması Başarısız! - + Rdp Yönlendirme ayarlaması Başarısız! + - RDP Yönlendirme Anahtarlarını ayarlama başarısız! - + RDP Yönlendirme Anahtarlarını ayarlama başarısız! + - RDP Çözünürlük ayarlama başarısız! - + RDP Çözünürlük ayarlama başarısız! + - Bu bilgisayara getirin - + Bu bilgisayara getirin + - Oynatma - + Oynatma + - Uzak bilgisayarda bırakın - + Uzak bilgisayarda bırakın + - RDP Tam Ekrana Geçiş başarısız! - + RDP Tam Ekrana Geçiş başarısız! + - RDP Akıllı Boyutlandırma başarısız! - + RDP Akıllı Boyutlandırma başarısız! + - Başlangıçta daha önce açılmış oturumlara yeniden bağlan - + Başlangıçta daha önce açılmış oturumlara yeniden bağlan + - Uzak Dosya - + Uzak Dosya + - Hepsini Sil - + Hepsini Sil + - Yeniden Adlandır - + Yeniden Adlandır + - Kaydet - + Kaydet + - Hepsini Kaydet - + Hepsini Kaydet + - Başka bir yüklemeden önce geçerli bağlantı dosyasını kaydetmek istiyor musunuz? - - - Çıkışta bağlantıları kaydet - + Başka bir yüklemeden önce geçerli bağlantı dosyasını kaydetmek istiyor musunuz? + - Ekran - + Ekran + - Ekran Görüntüsü - + Ekran Görüntüsü + - Ekran Görüntüleri - + Ekran Görüntüleri + - Ara - + Ara + - Gönder... - + Gönder... + - Bağlantılar oluştururken veya yeniden adlandırırken ana bilgisayar adını görüntü adı gibi ayarla - + Bağlantılar oluştururken veya yeniden adlandırırken ana bilgisayar adını görüntü adı gibi ayarla + - Ayarlar kaydedilemiyor veya sistem tepsisi simgesi atılamıyor! - + Ayarlar kaydedilemiyor veya sistem tepsisi simgesi atılamıyor! + - Bağlantı ağacında açıklama araç ipuçları göster - + Bağlantı ağacında açıklama araç ipuçları göster + - Pencere başlığında bağlantıların tam yolunu göster - + Pencere başlığında bağlantıların tam yolunu göster + - Sekme adlarında oturum açma bilgilerini göster - + Sekme adlarında oturum açma bilgilerini göster + - Sekme adlarında protokolleri göster - + Sekme adlarında protokolleri göster + - Bağlantı tek tıklama ile açılır - + Bağlantı tek tıklama ile açılır + - Bağlantı Ağacı'nda açılan bağlantıyı tek tıklattığınızda Bağlantı Sekmesi açılır - + Bağlantı Ağacı'nda açılan bağlantıyı tek tıklattığınızda Bağlantı Sekmesi açılır + - Sırala - + Sırala + - Artan (A-Z) - + Artan (A-Z) + - Azalan (Z-A) - + Azalan (Z-A) + - Lütfen daha fazla bilgi için Yardım - Başlarken - SQL Yapılandırması bölümüne bakın! - + Lütfen daha fazla bilgi için Yardım - Başlarken - SQL Yapılandırması bölümüne bakın! + - SSH arkaplan trasferi başarısız! - + SSH arkaplan trasferi başarısız! + - SSH transferi başarısız. - + SSH transferi başarısız. + - Başlangıç IP - + Başlangıç IP + - Başlangıç Port - + Başlangıç Port + - Açılış/Çıkış - + Açılış/Çıkış + - Durum - + Durum + - Şunlardan bildirimler paneline geçin: - + Şunlardan bildirimler paneline geçin: + - Gelişmiş - + Gelişmiş + - Sekmeler && Paneller - + Sekmeler && Paneller + - Güncellemeler - + Güncellemeler + - Aşağıdaki: - + Aşağıdaki: + + + Hata ({0}) + + + Bilgi ({0}) + + + Parola + + + {0} için parola + + + Panel Seçin + + + Uyarı ({0}) + + + Bütünleştirmeyi deneyin + + + Kaydedilmesini istemediğiniz özelliklerin işaretini kaldırın! + + + MRemoteNG bir güncelleme gerektiriyor + + + MRemoteNG, düzenli olarak güncellemeleri kontrol etmek için mRemoteNG web sitesine bağlanabilir. + + + Güncelleştirme bilgileri indirilemedi. + + + İndirme tamamlandı! +MRemoteNG şimdi kapanacak ve kurulum başlayacak. + + + Güncelleme indirilemedi. + + + Güncelleştirme karşıdan yüklemesi başlatılamadı. + + + Her {0} günde bir + + + Günlük + + + Aylık + + + Haftalık + + + Değişiklik günlüğü indirilemedi. + + + Faklı bir kullanıcı adı ve parola kullan + + + Kullanıcı + + + Aynı kullanıcı adı ve parolasını kullan + + + Smart Kart kullan + + + Baplantıları yüklemek ve kaydetmek için SQL Sunucusu kullanın + + + Sürüm + + + VNC bağlantı kesme başarısız! + + + VNC ekrar yenileme başarısız! + + + VNC Özel tuş gönderme başarısız! + + + VNC Olay İşleyicileri başarısız oldu! + + + VNC Seçenek ayarlama başarısız! + + + VNC Akıllı Boyut Değiştirme Başarısız! + + + VNC Yalnızca Bak geçişi başarısız! + + + Kimlik doğrulama başarısız olduğunda beni uyar + + + Uyarılar + + + Evet + + + RDP Bağlantısı Zamanaşımı + + + Bu düğüm zaten bu klasörde. + + + Düğümü kendine sürükleyemezsiniz. + + + Üst düğüm alt öğeye sürüklenemez. + + + Bu düğüm sürüklenemez + + + Blok Şifre Modu + + + Şifreleme Motoru + + + Güvenlik + + + Temel Türev Fonksiyon Yinelemeleri + + + Dinamik + + + Yüksek + + + Orta + + + Protokol tarafından sağlanan Ses Kalitesini seçin: Dinamik, Orta, Yüksek + + + Ses Kalitesi + + + İndirme Tamamlandı! + + + İndir + + + Ağ geçidi + + + Çıkışta bağlantıları kaydet + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.uk.resx b/mRemoteNG/Language/Language.uk.resx index 4965fe74..d8082aa6 100644 --- a/mRemoteNG/Language/Language.uk.resx +++ b/mRemoteNG/Language/Language.uk.resx @@ -59,7 +59,7 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - + @@ -105,17 +105,17 @@ - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - text/microsoft-resx 2.0 + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Про програму @@ -135,6 +135,9 @@ Завжди показувати діалог вибору вкладки при відкритті з'єднання + + Завжди показувати панель вкладок + Завжди показувати значок в системному треї @@ -192,6 +195,9 @@ Успадковування + + &Запустити + Запустити PuTTY @@ -222,9 +228,6 @@ Вигляд - - Шлюз - Різне @@ -291,9 +294,24 @@ Повідомлення + + &Вихід {0} + Неможливо розібрати аргументи командного рядка! + + &Відкрити файл з'єднань + + + &Спробувати знову + + + {0} виявив запущену програму Lenovo Auto Scroll Utility. Ця програма створює проблеми з {0}. Рекомендується вимкнути або видалити її. + + + Виявлена проблема сумісності + Помилка btnIcon_Click! @@ -385,6 +403,9 @@ Не вдалося зберегти файл з'єднань як «{0}»! + + З'єднатися без облікових даних + З'єднатися з консольним сеансом @@ -403,9 +424,15 @@ Не вдається створити новий файл з'єднань! + + Не вдається знайти «ToolStrip control» у «FilteredPropertyGrid». + Виявлення + + Не під'єднуватися до консольного сеансу + Не під'єднувати без перевірки @@ -445,12 +472,22 @@ Неможливо зберегти список з'єднань. + + Неможливо запустити PuTTY. + Не вдалося розшифрувати. {0} Не вдалося зашифрувати. {0} + + Увімкнено налаштування безпеки Windows «System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing». + +Додаткову інформацію дивись у статті Microsoft Support на http://support.microsoft.com/kb/811833 + +{0} не повністю сумісний з FIPS. Натисніть ОК, щоб продовжити на власний розсуд, або Скасувати для виходу. + Помилки @@ -469,9 +506,39 @@ Експорт + + Експортувати все + + + Файл експорту + + + Експорт елементів + + + Параметри експорту + + + Експортувати вибране з'єднання + + + Експортувати вибрану папку + + + &Експорт у файл… + + + Новий зовнішній інструмент + + + &Формат файлу: + Всі файли (*.*) + + Усі файли, які можна імпортувати + Файли додатків (*.exe) @@ -481,6 +548,12 @@ Файли mRemote XML (*.xml) + + Файли PuTTY Connection Manager + + + Файли Remote Desktop Connection Manager (*.rdg) + Файли RDP (*.rdp) @@ -517,12 +590,24 @@ Не вдається створити нове HTTP з'єднання! + + Не вдається змінити заголовок HTTP документу! + Не вдалося задати параметри HTTP! + + Визначати вкладки швидкого підключення, додавши префікс «Quick» + Імпорт з Active Directory + + Під час імпорту файлу «{0}» сталася помилка. + + + Імпорт з &файлу… + Імпорт з просканованих портів @@ -547,6 +632,9 @@ Адреса: + + При закритті з'єднань: + Коротке ім'я @@ -595,6 +683,9 @@ Завантаження з SQL не вдалося! + + Інформацію про з'єднання не вдалося завантажити з SQL сервера. + Завантаження з XML не вдалося! @@ -661,6 +752,12 @@ Сповіщення + + Копіювати все + + + Видалити все + Відкрити файл з'єднань… @@ -697,6 +794,9 @@ Надіслати спец. клавіші (VNC) + + &Показати текст довідки + Показати текст @@ -766,6 +866,9 @@ Нормальний + + Немає SmartSize + Немає доступних оновлень @@ -779,18 +882,36 @@ Відкриті порти + + Тестування… + Тема + + &Видалити + + + &Нова + Назва панелі Захист паролем + + Обидва паролі повинні збігатися. + + + Пароль повинен містити не менше 3 символів. + Будь ласка, заповніть всі поля + + Сканування портів завершено. + Не вдалося завантажити панель сканера портів! @@ -806,6 +927,9 @@ Виберіть спосіб авторизації на сервері VNC. + + Виберіть, чи слід автоматично змінювати розмір вікна з'єднання, коли змінюється розмір вікна програми, або коли програма перемикається в повноекранний режим. Потрібен RDC 8.0 або вище. + Виберіть, чи використовувати кешування растрових зображень. @@ -848,6 +972,9 @@ Виберіть піктограму, яка відображатиметься при підключенні до хоста. + + Визначає інформацію про балансування навантаження для використання маршрутизаторами балансування навантаження для вибору найкращого сервера. + Введіть МАС-адресу віддаленого хоста, якщо ви хочете використовувати його в зовнішньому інструменті. @@ -896,12 +1023,18 @@ Вкажіть, чи локальні принтери будуть доступні на віддаленому хості. + + Вкажіть, чи слід ділитися буфером обміну з віддаленим хостом. + Вкажіть, чи будуть локальні смарт-карти доступні на віддаленому хості. Виберіть, як слід перенаправляти віддалений звук. + + Виберіть, чи слід перенаправляти пристрій аудіо введення за замовчуванням на віддаленій машині на цей комп'ютер. + Виберіть один із доступних механізмів візуалізації, який використовуватиметься для відображення HTML. @@ -914,6 +1047,9 @@ Підключитися до консольного сеансу віддаленого хоста. + + Використовати Credential Security Support Provider (CredSSP) для аутентифікації, якщо він доступний. + Не соромтеся вводити тут інформацію, яка вам потрібна. @@ -950,6 +1086,9 @@ Режим аутентифікації + + Автоматична зміна розміру + Кеш графіки @@ -986,6 +1125,9 @@ Зовнішній інструмент до + + Інформація про балансування + MAC-адреса @@ -1034,9 +1176,15 @@ Принтери + + Буфер обміну + Звуки + + Захоплення аудіо + Рушій візуалізації @@ -1049,6 +1197,9 @@ Використовувати консольну сесію + + Використовувати CredSSP + Користувацьке поле @@ -1101,6 +1252,9 @@ Помилка зміни розміру вікна Putty! + + Збережені сесії PuTTY + Налаштування PuTTY @@ -1122,6 +1276,18 @@ Створити швидке з'єднання не вдалося + + &Попередити мене при закритті з'єднань + + + Попередити мене лише при &виході з mRemoteNG + + + Попередити мене лише при закритті &декількох з'єднань + + + &Не попереджати мене при закритті з'єднань + 16 млн. кольорів (24-біт) @@ -1170,6 +1336,9 @@ Сталася непоправна помилка під час з'єднання з клієнтом. + + Помилка GetError (FatalErrors) + Сталася помилка через брак пам'яті. @@ -1269,9 +1438,6 @@ Перед завантаженням нового файлу з'єднання, хочете зберегти поточний? - - Зберігати з'єднання при виході - Файл Graphics Interchange Format (GIF.) | *. GIF | Файл Joint Photographic Experts Group (JPEG.) | *. JPEG | Файл Joint Photographic Experts Group (JPG.) | *. JPG | Файл Portable Network Graphics (PNG). | *. PNG @@ -1284,6 +1450,9 @@ Скріншоти + + Шукати + Надіслати… @@ -1371,6 +1540,9 @@ Пароль + + Пароль для: {0} + Вибеніть панель @@ -1383,6 +1555,9 @@ Спробувати інтегрувати + + Показати на панелі інструментів + Порт UltraVNC SingleClick: @@ -1420,6 +1595,9 @@ mRemoteNG зараз припинить роботу і почне процес Щотижня + + Не вдалося завантажити журнал змін. + Використовувати інше ім'я користувача і пароль @@ -1468,538 +1646,364 @@ mRemoteNG зараз припинить роботу і почне процес Так - - Завжди показувати панель вкладок - - - &Запустити - - - &Вихід {0} - - - &Відкрити файл з'єднань - - - &Спробувати знову - - - {0} виявив запущену програму Lenovo Auto Scroll Utility. Ця програма створює проблеми з {0}. Рекомендується вимкнути або видалити її. - - - Виявлена проблема сумісності - - - З'єднатися без облікових даних - - - Не вдається знайти «ToolStrip control» у «FilteredPropertyGrid». - - - Не під'єднуватися до консольного сеансу - - - Неможливо запустити PuTTY. - - - Увімкнено налаштування безпеки Windows «System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing». - -Додаткову інформацію дивись у статті Microsoft Support на http://support.microsoft.com/kb/811833 - -{0} не повністю сумісний з FIPS. Натисніть ОК, щоб продовжити на власний розсуд, або Скасувати для виходу. - - - Експортувати все - - - Файл експорту - - - Експорт елементів - - - Параметри експорту - - - Експортувати вибране з'єднання - - - Експортувати вибрану папку - - - &Експорт у файл… - - - &Формат файлу: - - - Облікові дані - - - Новий зовнішній інструмент - - - Усі файли, які можна імпортувати - - - Файли PuTTY Connection Manager - - - Файли Remote Desktop Connection Manager (*.rdg) - - - Не вдається змінити заголовок HTTP документу! - - - Визначати вкладки швидкого підключення, додавши префікс «Quick» - - - Під час імпорту файлу «{0}» сталася помилка. - - - Імпорт з &файлу… - - - При закритті з'єднань: - - - Інформацію про з'єднання не вдалося завантажити з SQL сервера. - - - Копіювати все - - - Видалити все - - - &Показати текст довідки - - - Немає SmartSize - - - Тестування… - - - &Видалити - - - &Нова - - - Обидва паролі повинні збігатися. - - - Пароль повинен містити не менше 3 символів. - - - Сканування портів завершено. - - - Виберіть, чи слід автоматично змінювати розмір вікна з'єднання, коли змінюється розмір вікна програми, або коли програма перемикається в повноекранний режим. Потрібен RDC 8.0 або вище. - - - Визначає інформацію про балансування навантаження для використання маршрутизаторами балансування навантаження для вибору найкращого сервера. - - - Вкажіть, чи слід ділитися буфером обміну з віддаленим хостом. - - - Виберіть, чи слід перенаправляти пристрій аудіо введення за замовчуванням на віддаленій машині на цей комп'ютер. - - - Використовати Credential Security Support Provider (CredSSP) для аутентифікації, якщо він доступний. - - - Автоматична зміна розміру - - - Інформація про балансування - - - Буфер обміну - - - Захоплення аудіо - - - Використовувати CredSSP - - - Збережені сесії PuTTY - - - &Попередити мене при закритті з'єднань - - - Попередити мене лише при &виході з mRemoteNG - - - Попередити мене лише при закритті &декількох з'єднань - - - &Не попереджати мене при закритті з'єднань - - - Помилка GetError (FatalErrors) - - - Шукати - - - Пароль для: {0} - - - Показати на панелі інструментів - - - Не вдалося завантажити журнал змін. - - Тайм-аут RDP з'єднання - + Тайм-аут RDP з'єднання + - Цей вузол вже в цій папці. - + Цей вузол вже в цій папці. + - Неможливо перемістити вузол в себе. - + Неможливо перемістити вузол в себе. + - Неможливо перетягнути батьківський вузол до дочірнього. - + Неможливо перетягнути батьківський вузол до дочірнього. + - Цей вузол не перетягується. - + Цей вузол не перетягується. + - Режим блочного шифру - + Режим блочного шифру + - Рушій шифрування - + Рушій шифрування + - Безпека - + Безпека + - Ітерації функції формування ключа(KDF) - + Ітерації функції формування ключа(KDF) + - Динамічна - + Динамічна + - Висока - + Висока + - Середня - + Середня + - Виберіть якість звуку: динамічна, Середня, Висока - + Виберіть якість звуку: динамічна, Середня, Висока + - Якість звуку - + Якість звуку + - Завантаження завершено! - + Завантаження завершено! + - Завантажити - + Завантажити + - Скільки хвилин перебувати в режимі очікування перед автоматичним відключенням RDP сеансу (0 - без обмежень) - + Скільки хвилин перебувати в режимі очікування перед автоматичним відключенням RDP сеансу (0 - без обмежень) + - Хвилин простою - + Хвилин простою + - Додати - + Додати + - Заголовок - + Заголовок + - Дійсно хочете видалити обліковий запис: {0}? - + Дійсно хочете видалити обліковий запис: {0}? + - Виберіть, чи отримувати попередження після відключення сеансу RDP через неактивність - + Виберіть, чи отримувати попередження після відключення сеансу RDP через неактивність + - Пароль повинен містити принаймні {0} таких символів: {1} - + Пароль повинен містити принаймні {0} таких символів: {1} + - Пароль повинен містити принаймні {0} малі символи(ів) - + Пароль повинен містити принаймні {0} малі символи(ів) + - Пароль повинен містити принаймні {0} номер(и) - + Пароль повинен містити принаймні {0} номер(и) + - Пароль повинен містити принаймні {0} великі символи(ів) - + Пароль повинен містити принаймні {0} великі символи(ів) + - Довжина пароля повинна бути від {0} до {1} - + Довжина пароля повинна бути від {0} до {1} + - Виберіть шлях для файлу журналу mRemoteNG - + Виберіть шлях для файлу журналу mRemoteNG + - Відлагодження - + Відлагодження + - Показувати ці повідомлення - + Показувати ці повідомлення + - Шлях до файлу журналу - + Шлях до файлу журналу + - Записувати в журнал ці типи повідомлень - + Записувати в журнал ці типи повідомлень + - Вибрати шлях - + Вибрати шлях + - Відкрити файл - + Відкрити файл + - За замовчуванням - + За замовчуванням + - Ведення журналу - + Ведення журналу + - Виринаючі вікна - + Виринаючі вікна + - Записувати в каталог програми - + Записувати в каталог програми + - Призначені облікові дані - + Призначені облікові дані + + + Облікові дані + - Відкрти інший файл - + Відкрти інший файл + - Обліковий запис не доступний - + Обліковий запис не доступний + - Дійсно видалити цю тему? - + Дійсно видалити цю тему? + - Нова назва теми - + Нова назва теми + - Не вдається створити тему, таке ім'я вже існує, або присутні спеціальні символи - + Не вдається створити тему, таке ім'я вже існує, або присутні спеціальні символи + - Введіть нову назву теми - + Введіть нову назву теми + - Попередження: для зміни будь-якої конфігурації теми потрібен перезапуск. - + Попередження: для зміни будь-якої конфігурації теми потрібен перезапуск. + - Не вдалося знайти зовнішній інструмент із назвою «{0}» - + Не вдалося знайти зовнішній інструмент із назвою «{0}» + - Створити новий файл з'єднання - + Створити новий файл з'єднання + - Не вдалося знайти файл з'єднання. - + Не вдалося знайти файл з'єднання. + - Імпортувати існуючий файл - + Імпортувати існуючий файл + - Використовуйте спеціальний шлях до файлу - + Використовуйте спеціальний шлях до файлу + - Перевіряємо з'єднання - + Перевіряємо з'єднання + - Сервер «{0}» недоступний. - + Сервер «{0}» недоступний. + - Підключення успішне - + Підключення успішне + - Не вдалося ввійти для користувача «{0}». - + Не вдалося ввійти для користувача «{0}». + - База даних «{0}» недоступна. - + База даних «{0}» недоступна. + - Зберігати з'єднання після кожного редагування - + Зберігати з'єднання після кожного редагування + - Фільтр збігів пошуку в дереві з'єднань - + Фільтр збігів пошуку в дереві з'єднань + - Тест з'єднання - + Тест з'єднання + - Лише для читання: - + Лише для читання: + - Використовувати кодування UTF8 для властивості RDP "Інформація про балансування" - + Використовувати кодування UTF8 для властивості RDP "Інформація про балансування" + - Тайм-аут [секунди] - + Тайм-аут [секунди] + - Робочий каталог: - + Робочий каталог: + - Запускати з вищими правами - + Запускати з вищими правами + - Показати на панелі інструментів - + Показати на панелі інструментів + - Робочий каталог - + Робочий каталог + - Фіксувати позиції панелі інструментів - + Фіксувати позиції панелі інструментів + - Панель Multi SSH - + Панель Multi SSH + - Імпорт дочірніх OU - + Імпорт дочірніх OU + - Додаткові параметри безпеки - + Додаткові параметри безпеки + - Параметри mRemoteNG - + Параметри mRemoteNG + - Створювати порожню вкладку, при запуску mRemoteNG - + Створювати порожню вкладку, при запуску mRemoteNG + - Має бути між 0 і 255 - + Має бути між 0 і 255 + - Поза межами - + Поза межами + - Видалити… - + Видалити… + - Повторно підключити усі з'єднання - + Повторно підключити усі з'єднання + - Відключити вкладки праворуч - + Відключити вкладки праворуч + - Відключити все, окрім цієї вкладки - + Відключити все, окрім цієї вкладки + - Ви дійсно хочете закрити всі з'єднання, окрім «{0}»? - + Ви дійсно хочете закрити всі з'єднання, окрім «{0}»? + - Сталася помилка під час спроби знову підключитися до RDP хоста «{0}» - + Сталася помилка під час спроби знову підключитися до RDP хоста «{0}» + - Сталася помилка під час спроби змінити роздільну здатність з'єднання на хості «{0}» - + Сталася помилка під час спроби змінити роздільну здатність з'єднання на хості «{0}» + - Повідомлення про виняток - + Повідомлення про виняток + - Стався необроблений виняток - + Стався необроблений виняток + - Цей виняток змусить mRemoteNG закритися - + Цей виняток змусить mRemoteNG закритися + - Скопіювати ім'я хоста - + Скопіювати ім'я хоста + - Розмістити рядок пошуку над деревом з'єднань - + Розмістити рядок пошуку над деревом з'єднань + - Відстежувати активне з'єднання у дереві з'єднань - + Відстежувати активне з'єднання у дереві з'єднань + - Завжди показувати вкладки підключення - + Завжди показувати вкладки підключення + - Канал оновлень - + Канал оновлень + - Канал «Stable» включає лише остаточні стабільні випуски. + Канал «Stable» включає лише остаточні стабільні випуски. Канал «Preview» включає Beta та Release Candidate. Канал «Nightly» включає Alpha, Beta та Release Candidate версії. - + - Застосувати - + Застосувати + - Проксі - + Проксі + - Натисніть ENTER для надсилання. Ctrl+C надсилається негайно. - + Натисніть ENTER для надсилання. Ctrl+C надсилається негайно. + - Показати це з'єднання в меню обраних. - + Показати це з'єднання в меню обраних. + - Улюблене - + Улюблене + - Улюблені - + Улюблені + - Очистити рядок пошуку - + Очистити рядок пошуку + - Підключіться в режимі лише для перегляду - + Підключіться в режимі лише для перегляду + - Не обрізати пробіли в іменах користувачів - + Не обрізати пробіли в іменах користувачів + - Середовище - + Середовище + - Шифрування {0} записів за допомогою {1}/{2} та {3} ітерацій зайняло {4} секунд(и). - + Шифрування {0} записів за допомогою {1}/{2} та {3} ітерацій зайняло {4} секунд(и). + - Тест шифрування - + Тест шифрування + - Тест налаштувань - + Тест налаштувань + - Встановіть версію RDP, що буде використовуватись при відкритті з'єднань. - + Встановіть версію RDP, що буде використовуватись при відкритті з'єднань. + - Версія RDP - + Версія RDP + - Використовувати VM ID для підключення до VM, що працюють на Hyper-V. - + Використовувати VM ID для підключення до VM, що працюють на Hyper-V. + - ID віртуальної машини Hyper-V, до якогї потрібно підключитися. - + ID віртуальної машини Hyper-V, до якогї потрібно підключитися. + - Використовувати VM ID - + Використовувати VM ID + - Не вдалося створити RDP клієнт. Версія протоколу RDP {0} не підтримується на цій машині. Виберіть старішу версію протоколу. - + Не вдалося створити RDP клієнт. Версія протоколу RDP {0} не підтримується на цій машині. Виберіть старішу версію протоколу. + - Запускати згорнутим - + Запускати згорнутим + - Встановіть пароль, що необхідний для шифрування файлу з'єднань. Перед запуском mRemoteNG вам буде пропонуватись ввести цей пароль. - + Встановіть пароль, що необхідний для шифрування файлу з'єднань. Перед запуском mRemoteNG вам буде пропонуватись ввести цей пароль. + - Підключатися до хоста Hyper-V із увімкненим розширеним режимом. - + Підключатися до хоста Hyper-V із увімкненим розширеним режимом. + - Використовувати розширений режим - + Використовувати розширений режим + - Вказує пароль сервера Remote Desktop Gateway. - + Вказує пароль сервера Remote Desktop Gateway. + - Закривати в область сповіщень - + Закривати в область сповіщень + + + Шлюз + + + Зберігати з'єднання при виході + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.zh-CN.resx b/mRemoteNG/Language/Language.zh-CN.resx index b79ec347..13905d0d 100644 --- a/mRemoteNG/Language/Language.zh-CN.resx +++ b/mRemoteNG/Language/Language.zh-CN.resx @@ -231,9 +231,6 @@ 显示 - - 网关 - 杂项 @@ -1483,9 +1480,6 @@ 打开其它连接配置文件前,是否保存当前配置文件? - - 退出时保存连接配置文件 - 图形交换格式文件 (.gif)|*.gif|联合图像专家组文件 (.jpeg)|*.jpeg|联合图像专家组文件 (.jpg)|*.jpg|便携式网络图形文件 (.png)|*.png @@ -2080,4 +2074,14 @@ mRemoteNG 将退出并安装更新。 PowerShell + + 网关 + + + 退出时保存连接配置文件 + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.zh-TW.resx b/mRemoteNG/Language/Language.zh-TW.resx index 526929c3..5cb95f25 100644 --- a/mRemoteNG/Language/Language.zh-TW.resx +++ b/mRemoteNG/Language/Language.zh-TW.resx @@ -59,7 +59,7 @@ : using a System.ComponentModel.TypeConverter : and then encoded with base64 encoding. --> - + @@ -105,17 +105,17 @@ - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - text/microsoft-resx 2.0 + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 關於 @@ -225,9 +225,6 @@ 顯示 - - 閘道 - 雜項 @@ -1358,9 +1355,6 @@ 您要在載入另一個之前先儲存目前的連線檔案嗎? - - 結束時儲存連線 - Graphics Interchange Format 檔案 (.gif)|*.gif|Joint Photographic Experts Group 檔案 (.jpeg)|*.jpeg|Joint Photographic Experts Group 檔案 (.jpg)|*.jpg|Portable Network Graphics 檔案 (.png)|*.png @@ -1575,4 +1569,14 @@ mRemoteNG 將立即結束並開始安裝。 + + 閘道 + + + 結束時儲存連線 + + + + + \ No newline at end of file From 0e83e525febdac8df0f72c2dd0141ba737ae0989 Mon Sep 17 00:00:00 2001 From: "massimo.antonello" Date: Thu, 16 Oct 2025 15:06:16 +0200 Subject: [PATCH 2/7] Properties --- ExternalConnectors/VO/VaultOpenbao.cs | 3 ++ .../Connection/AbstractConnectionRecord.cs | 16 +++++++++ mRemoteNG/Connection/Protocol/PuttyBase.cs | 12 +++---- .../Connection/Protocol/RDP/RdpProtocol.cs | 7 ++++ mRemoteNG/Language/Language.Designer.cs | 36 +++++++++++++++++++ mRemoteNG/Language/Language.cs-CZ.resx | 18 ++++++++-- mRemoteNG/Language/Language.de.resx | 13 +++++++ mRemoteNG/Language/Language.el.resx | 13 +++++++ mRemoteNG/Language/Language.es-AR.resx | 12 +++++++ mRemoteNG/Language/Language.es.resx | 13 +++++++ mRemoteNG/Language/Language.fi-FI.resx | 13 +++++++ mRemoteNG/Language/Language.fr.resx | 13 +++++++ mRemoteNG/Language/Language.hu.resx | 13 +++++++ mRemoteNG/Language/Language.it.resx | 16 +++++++++ mRemoteNG/Language/Language.ja-JP.resx | 13 +++++++ mRemoteNG/Language/Language.ko-KR.resx | 13 +++++++ mRemoteNG/Language/Language.lt.resx | 13 +++++++ mRemoteNG/Language/Language.nb-NO.resx | 13 +++++++ mRemoteNG/Language/Language.nl.resx | 13 +++++++ mRemoteNG/Language/Language.pl.resx | 13 +++++++ mRemoteNG/Language/Language.pt-BR.resx | 13 +++++++ mRemoteNG/Language/Language.pt.resx | 13 +++++++ mRemoteNG/Language/Language.resx | 12 +++++++ mRemoteNG/Language/Language.ru.resx | 12 +++++++ mRemoteNG/Language/Language.sv-SE.resx | 13 +++++++ mRemoteNG/Language/Language.ta.resx | 13 +++++++ mRemoteNG/Language/Language.tr-TR.resx | 13 +++++++ mRemoteNG/Language/Language.uk.resx | 13 +++++++ mRemoteNG/Language/Language.zh-CN.resx | 13 +++++++ mRemoteNG/Language/Language.zh-TW.resx | 13 +++++++ .../ConnectionInfoPropertyGrid.cs | 14 +++++++- 31 files changed, 407 insertions(+), 11 deletions(-) diff --git a/ExternalConnectors/VO/VaultOpenbao.cs b/ExternalConnectors/VO/VaultOpenbao.cs index 9ddbede9..eb2cb57c 100644 --- a/ExternalConnectors/VO/VaultOpenbao.cs +++ b/ExternalConnectors/VO/VaultOpenbao.cs @@ -3,6 +3,9 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using VaultSharp; +using VaultSharp.V1.AuthMethods; +using VaultSharp.V1.AuthMethods.Token; namespace ExternalConnectors.VO { public class VaultOpenbao { diff --git a/mRemoteNG/Connection/AbstractConnectionRecord.cs b/mRemoteNG/Connection/AbstractConnectionRecord.cs index 5e35d375..8139eb98 100644 --- a/mRemoteNG/Connection/AbstractConnectionRecord.cs +++ b/mRemoteNG/Connection/AbstractConnectionRecord.cs @@ -247,6 +247,22 @@ namespace mRemoteNG.Connection set => SetField(ref _password, value, "Password"); } + [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), + LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoMount)), + LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoMountDescription)), + AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.VNC, ProtocolType.ARD, ProtocolType.SSH1, + ProtocolType.SSH2, ProtocolType.Telnet, ProtocolType.RAW, ProtocolType.HTTP, ProtocolType.HTTPS, + ProtocolType.IntApp)] + public virtual string VaultMount { get; set; } + + [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), + LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoRole)), + LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoRoleDescription)), + AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.VNC, ProtocolType.ARD, ProtocolType.SSH1, + ProtocolType.SSH2, ProtocolType.Telnet, ProtocolType.RAW, ProtocolType.HTTP, ProtocolType.HTTPS, + ProtocolType.IntApp)] + public virtual string VaultRole { get; set; } + [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), LocalizedAttributes.LocalizedDisplayName(nameof(Language.Domain)), LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionDomain)), diff --git a/mRemoteNG/Connection/Protocol/PuttyBase.cs b/mRemoteNG/Connection/Protocol/PuttyBase.cs index 384938f8..ec1a527f 100644 --- a/mRemoteNG/Connection/Protocol/PuttyBase.cs +++ b/mRemoteNG/Connection/Protocol/PuttyBase.cs @@ -15,7 +15,6 @@ using System.Linq; using System.Runtime.Versioning; using System.Threading; using System.Windows.Forms; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; // ReSharper disable ArrangeAccessorOwnerBody @@ -104,7 +103,6 @@ namespace mRemoteNG.Connection.Protocol string username = InterfaceControl.Info?.Username ?? ""; //string password = InterfaceControl.Info?.Password?.ConvertToUnsecureString() ?? ""; string password = InterfaceControl.Info?.Password ?? ""; - string domain = InterfaceControl.Info?.Domain ?? ""; string UserViaAPI = InterfaceControl.Info?.UserViaAPI ?? ""; string privatekey = ""; @@ -113,7 +111,7 @@ namespace mRemoteNG.Connection.Protocol { try { - ExternalConnectors.DSS.SecretServerInterface.FetchSecretFromServer($"{UserViaAPI}", out username, out password, out domain, out privatekey); + ExternalConnectors.DSS.SecretServerInterface.FetchSecretFromServer($"{UserViaAPI}", out username, out password, out _, out privatekey); if (!string.IsNullOrEmpty(privatekey)) { @@ -134,7 +132,7 @@ namespace mRemoteNG.Connection.Protocol { try { - ExternalConnectors.CPS.PasswordstateInterface.FetchSecretFromServer($"{UserViaAPI}", out username, out password, out domain, out privatekey); + ExternalConnectors.CPS.PasswordstateInterface.FetchSecretFromServer($"{UserViaAPI}", out username, out password, out _, out privatekey); if (!string.IsNullOrEmpty(privatekey)) { @@ -154,7 +152,7 @@ namespace mRemoteNG.Connection.Protocol else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.OnePassword) { try { - ExternalConnectors.OP.OnePasswordCli.ReadPassword($"{UserViaAPI}", out username, out password, out domain, out privatekey); + ExternalConnectors.OP.OnePasswordCli.ReadPassword($"{UserViaAPI}", out username, out password, out _, out privatekey); } catch (ExternalConnectors.OP.OnePasswordCliException ex) { @@ -181,7 +179,7 @@ namespace mRemoteNG.Connection.Protocol try { ExternalConnectors.DSS.SecretServerInterface.FetchSecretFromServer( - $"{Properties.OptionsCredentialsPage.Default.UserViaAPIDefault}", out username, out password, out domain, out privatekey); + $"{Properties.OptionsCredentialsPage.Default.UserViaAPIDefault}", out username, out password, out _, out privatekey); } catch (Exception ex) { @@ -214,7 +212,7 @@ namespace mRemoteNG.Connection.Protocol if (!string.IsNullOrEmpty(password)) { - string random = string.Join("", Guid.NewGuid().ToString("n").Take(8).Select(o => o)); + string random = string.Join("", Guid.NewGuid().ToString("n").Take(8)); // write data to pipe Thread thread = new(new ParameterizedThreadStart(CreatePipe)); thread.Start($"{random}{password}"); diff --git a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs index 99111481..77227a25 100644 --- a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs +++ b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs @@ -595,6 +595,13 @@ namespace mRemoteNG.Connection.Protocol.RDP Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ECPOnePasswordReadFailed + Environment.NewLine + ex.Message); } } + else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { + try { + ExternalConnectors.VO.VaultOpenbao.ReadPassword($"{userViaApi}", out userName, out password, out domain, out pkey); + } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { + Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); + } + } if (string.IsNullOrEmpty(userName)) { diff --git a/mRemoteNG/Language/Language.Designer.cs b/mRemoteNG/Language/Language.Designer.cs index 781f50bb..40797ae0 100644 --- a/mRemoteNG/Language/Language.Designer.cs +++ b/mRemoteNG/Language/Language.Designer.cs @@ -6829,6 +6829,42 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Mount. + /// + internal static string VaultOpenbaoMount { + get { + return ResourceManager.GetString("VaultOpenbaoMount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mount where the secret is stored. + /// + internal static string VaultOpenbaoMountDescription { + get { + return ResourceManager.GetString("VaultOpenbaoMountDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role. + /// + internal static string VaultOpenbaoRole { + get { + return ResourceManager.GetString("VaultOpenbaoRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name or path of the secret. + /// + internal static string VaultOpenbaoRoleDescription { + get { + return ResourceManager.GetString("VaultOpenbaoRoleDescription", resourceCulture); + } + } + /// /// Looks up a localized string similar to Verify:. /// diff --git a/mRemoteNG/Language/Language.cs-CZ.resx b/mRemoteNG/Language/Language.cs-CZ.resx index 242375c4..5af302aa 100644 --- a/mRemoteNG/Language/Language.cs-CZ.resx +++ b/mRemoteNG/Language/Language.cs-CZ.resx @@ -1878,11 +1878,23 @@ mRemoteNG se nyní ukončí a zahájí instalaci. Kliknutím na již otevřené připojení v seznamu otevře jeho záložku - - Upozornit mě pouze při ukončení několika připojení - + + Upozornit mě pouze při ukončení několika připojení + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.de.resx b/mRemoteNG/Language/Language.de.resx index cd6224d8..a1a11719 100644 --- a/mRemoteNG/Language/Language.de.resx +++ b/mRemoteNG/Language/Language.de.resx @@ -2050,4 +2050,17 @@ Nightly umfasst Alphas, Betas und Release Candidates. WebView2-Erstellung fehlgeschlagen + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.el.resx b/mRemoteNG/Language/Language.el.resx index 7bd9d12e..d137f21b 100644 --- a/mRemoteNG/Language/Language.el.resx +++ b/mRemoteNG/Language/Language.el.resx @@ -273,4 +273,17 @@ Πύλη + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.es-AR.resx b/mRemoteNG/Language/Language.es-AR.resx index bc08c7ce..115774fa 100644 --- a/mRemoteNG/Language/Language.es-AR.resx +++ b/mRemoteNG/Language/Language.es-AR.resx @@ -313,4 +313,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.es.resx b/mRemoteNG/Language/Language.es.resx index b04613a0..e89d5f72 100644 --- a/mRemoteNG/Language/Language.es.resx +++ b/mRemoteNG/Language/Language.es.resx @@ -1541,4 +1541,17 @@ mRemoteNG ahora se cerrará y comenzará la instalación. Guardar conexiones al salir + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.fi-FI.resx b/mRemoteNG/Language/Language.fi-FI.resx index dd6242e5..972b7392 100644 --- a/mRemoteNG/Language/Language.fi-FI.resx +++ b/mRemoteNG/Language/Language.fi-FI.resx @@ -138,4 +138,17 @@ 65536 Värit (16-bit) + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.fr.resx b/mRemoteNG/Language/Language.fr.resx index a1c1a529..6e1ead5c 100644 --- a/mRemoteNG/Language/Language.fr.resx +++ b/mRemoteNG/Language/Language.fr.resx @@ -2153,4 +2153,17 @@ Le canal nightly inclut les versions alpha, beta et release candidates. Création WebView2 échouée avec une exception + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.hu.resx b/mRemoteNG/Language/Language.hu.resx index e66fcf12..383a87b4 100644 --- a/mRemoteNG/Language/Language.hu.resx +++ b/mRemoteNG/Language/Language.hu.resx @@ -333,4 +333,17 @@ Átjáró + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.it.resx b/mRemoteNG/Language/Language.it.resx index 75256c54..67a917af 100644 --- a/mRemoteNG/Language/Language.it.resx +++ b/mRemoteNG/Language/Language.it.resx @@ -1556,4 +1556,20 @@ mRemoteNG verrà chiuso e l'installazione avrà inizio. Salva le connessioni all'uscita + + Vault o Openbao + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ja-JP.resx b/mRemoteNG/Language/Language.ja-JP.resx index 6121aa5b..f49c296f 100644 --- a/mRemoteNG/Language/Language.ja-JP.resx +++ b/mRemoteNG/Language/Language.ja-JP.resx @@ -1716,4 +1716,17 @@ mRemoteNGを終了してインストールを開始します 終了時に保存する + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ko-KR.resx b/mRemoteNG/Language/Language.ko-KR.resx index aa28909d..ef615b51 100644 --- a/mRemoteNG/Language/Language.ko-KR.resx +++ b/mRemoteNG/Language/Language.ko-KR.resx @@ -1806,4 +1806,17 @@ mRemoteNG는 이제 종료되고 설치로 시작됩니다. 종료시 연결 저장 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.lt.resx b/mRemoteNG/Language/Language.lt.resx index eb884b7d..176bfacf 100644 --- a/mRemoteNG/Language/Language.lt.resx +++ b/mRemoteNG/Language/Language.lt.resx @@ -228,4 +228,17 @@ Nightly Channel includes Alphas, Betas & Release Candidates. Proxy + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.nb-NO.resx b/mRemoteNG/Language/Language.nb-NO.resx index cd5f88c5..afea821c 100644 --- a/mRemoteNG/Language/Language.nb-NO.resx +++ b/mRemoteNG/Language/Language.nb-NO.resx @@ -2005,4 +2005,17 @@ Nightly-kanalen inkluderer alpha-, beta- og release candidate-versjoner. Lagre tilkoblinger ved avslutning + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.nl.resx b/mRemoteNG/Language/Language.nl.resx index 740879e5..167e520b 100644 --- a/mRemoteNG/Language/Language.nl.resx +++ b/mRemoteNG/Language/Language.nl.resx @@ -1588,4 +1588,17 @@ mRemoteNG zal nu worden gesloten en beginnen met de installatie. Sla verbindingen op bij afsluiten + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pl.resx b/mRemoteNG/Language/Language.pl.resx index 5756cf8d..365511d3 100644 --- a/mRemoteNG/Language/Language.pl.resx +++ b/mRemoteNG/Language/Language.pl.resx @@ -2359,4 +2359,17 @@ Kanał nocny obejmuje wersje alfa, beta i RC (gotowe do wydania). Brama + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pt-BR.resx b/mRemoteNG/Language/Language.pt-BR.resx index f14c096d..5afad580 100644 --- a/mRemoteNG/Language/Language.pt-BR.resx +++ b/mRemoteNG/Language/Language.pt-BR.resx @@ -369,4 +369,17 @@ Gateway + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pt.resx b/mRemoteNG/Language/Language.pt.resx index 36a8cb1f..ee2a41a0 100644 --- a/mRemoteNG/Language/Language.pt.resx +++ b/mRemoteNG/Language/Language.pt.resx @@ -1554,4 +1554,17 @@ Salvar as ligações à saída + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.resx b/mRemoteNG/Language/Language.resx index 50ed009f..8f145845 100644 --- a/mRemoteNG/Language/Language.resx +++ b/mRemoteNG/Language/Language.resx @@ -2470,4 +2470,16 @@ Nightly Channel includes Alphas, Betas & Release Candidates. Vault or Openbao + + Mount + + + Mount where the secret is stored + + + Role + + + Name or path of the secret + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ru.resx b/mRemoteNG/Language/Language.ru.resx index 999c82ed..949b645a 100644 --- a/mRemoteNG/Language/Language.ru.resx +++ b/mRemoteNG/Language/Language.ru.resx @@ -1999,4 +1999,16 @@ mRemoteNG сейчас прекратит работу и начнет проц + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.sv-SE.resx b/mRemoteNG/Language/Language.sv-SE.resx index 50408a06..10c1ce53 100644 --- a/mRemoteNG/Language/Language.sv-SE.resx +++ b/mRemoteNG/Language/Language.sv-SE.resx @@ -2172,4 +2172,17 @@ Nattliga kanalen inkluderar Alfa, Betor & Utgåvokandidater. Nätverksnod (gateway) + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ta.resx b/mRemoteNG/Language/Language.ta.resx index 6eb7bce8..78d40e5e 100644 --- a/mRemoteNG/Language/Language.ta.resx +++ b/mRemoteNG/Language/Language.ta.resx @@ -2416,4 +2416,17 @@ முன்னறிவிப்பு + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.tr-TR.resx b/mRemoteNG/Language/Language.tr-TR.resx index 7196be5d..b2293ab5 100644 --- a/mRemoteNG/Language/Language.tr-TR.resx +++ b/mRemoteNG/Language/Language.tr-TR.resx @@ -1628,4 +1628,17 @@ MRemoteNG şimdi kapanacak ve kurulum başlayacak. Çıkışta bağlantıları kaydet + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.uk.resx b/mRemoteNG/Language/Language.uk.resx index 632fbb95..4933e665 100644 --- a/mRemoteNG/Language/Language.uk.resx +++ b/mRemoteNG/Language/Language.uk.resx @@ -2002,4 +2002,17 @@ mRemoteNG зараз припинить роботу і почне процес Зберігати з'єднання при виході + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.zh-CN.resx b/mRemoteNG/Language/Language.zh-CN.resx index 5700271d..477df223 100644 --- a/mRemoteNG/Language/Language.zh-CN.resx +++ b/mRemoteNG/Language/Language.zh-CN.resx @@ -2080,4 +2080,17 @@ mRemoteNG 将退出并安装更新。 退出时保存连接配置文件 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.zh-TW.resx b/mRemoteNG/Language/Language.zh-TW.resx index 7502972b..f0fa6a88 100644 --- a/mRemoteNG/Language/Language.zh-TW.resx +++ b/mRemoteNG/Language/Language.zh-TW.resx @@ -1575,4 +1575,17 @@ mRemoteNG 將立即結束並開始安裝。 結束時儲存連線 + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs b/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs index 241c19d8..dd916e6f 100644 --- a/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs +++ b/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs @@ -238,6 +238,8 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.None) { strHide.Add(nameof(AbstractConnectionRecord.UserViaAPI)); + strHide.Add(nameof(AbstractConnectionRecord.VaultMount)); + strHide.Add(nameof(AbstractConnectionRecord.VaultRole)); } else if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.DelineaSecretServer || SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.ClickstudiosPasswordState) @@ -245,8 +247,18 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid strHide.Add(nameof(AbstractConnectionRecord.Username)); strHide.Add(nameof(AbstractConnectionRecord.Password)); strHide.Add(nameof(AbstractConnectionRecord.Domain)); + strHide.Add(nameof(AbstractConnectionRecord.VaultMount)); + strHide.Add(nameof(AbstractConnectionRecord.VaultRole)); + } + else if(SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.OnePassword) { + strHide.Add(nameof(AbstractConnectionRecord.VaultMount)); + strHide.Add(nameof(AbstractConnectionRecord.VaultRole)); + } + else if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { + strHide.Add(nameof(AbstractConnectionRecord.Username)); + strHide.Add(nameof(AbstractConnectionRecord.Password)); + strHide.Add(nameof(AbstractConnectionRecord.Domain)); } - return strHide; } From 77643848b69a83c3347abadc641c15204ac2ba18 Mon Sep 17 00:00:00 2001 From: "massimo.antonello" Date: Fri, 17 Oct 2025 11:48:40 +0200 Subject: [PATCH 3/7] new properties --- .../Xml/XmlConnectionNodeSerializer28.cs | 4 ++ .../Xml/XmlConnectionsDeserializer.cs | 6 ++- .../Xml/XmlRootNodeSerializer.cs | 1 + .../Connection/AbstractConnectionRecord.cs | 12 +++++- mRemoteNG/Language/Language.Designer.cs | 38 ++++++++++++++++++- mRemoteNG/Language/Language.cs-CZ.resx | 18 +++++++-- mRemoteNG/Language/Language.de.resx | 12 ++++++ mRemoteNG/Language/Language.el.resx | 12 ++++++ mRemoteNG/Language/Language.es-AR.resx | 12 ++++++ mRemoteNG/Language/Language.es.resx | 12 ++++++ mRemoteNG/Language/Language.fi-FI.resx | 12 ++++++ mRemoteNG/Language/Language.fr.resx | 12 ++++++ mRemoteNG/Language/Language.hu.resx | 12 ++++++ mRemoteNG/Language/Language.it.resx | 12 ++++++ mRemoteNG/Language/Language.ja-JP.resx | 12 ++++++ mRemoteNG/Language/Language.ko-KR.resx | 12 ++++++ mRemoteNG/Language/Language.lt.resx | 12 ++++++ mRemoteNG/Language/Language.nb-NO.resx | 12 ++++++ mRemoteNG/Language/Language.nl.resx | 12 ++++++ mRemoteNG/Language/Language.pl.resx | 12 ++++++ mRemoteNG/Language/Language.pt-BR.resx | 12 ++++++ mRemoteNG/Language/Language.pt.resx | 12 ++++++ mRemoteNG/Language/Language.resx | 12 ++++++ mRemoteNG/Language/Language.ru.resx | 12 ++++++ mRemoteNG/Language/Language.sv-SE.resx | 12 ++++++ mRemoteNG/Language/Language.ta.resx | 12 ++++++ mRemoteNG/Language/Language.tr-TR.resx | 12 ++++++ mRemoteNG/Language/Language.uk.resx | 12 ++++++ mRemoteNG/Language/Language.zh-CN.resx | 12 ++++++ mRemoteNG/Language/Language.zh-TW.resx | 12 ++++++ mRemoteNG/Tree/Root/RootNodeInfo.cs | 21 ++++++++++ .../ConnectionInfoPropertyGrid.cs | 6 ++- 32 files changed, 384 insertions(+), 10 deletions(-) diff --git a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer28.cs b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer28.cs index a12d8ed7..00020f07 100644 --- a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer28.cs +++ b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer28.cs @@ -152,6 +152,10 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml element.Add(new XAttribute("EC2Region", connectionInfo.EC2Region)); element.Add(new XAttribute("ExternalCredentialProvider", connectionInfo.ExternalCredentialProvider)); element.Add(new XAttribute("ExternalAddressProvider", connectionInfo.ExternalAddressProvider)); + + // Vault/OpenBao specific + element.Add(new XAttribute("VaultMount", connectionInfo.VaultMount ?? string.Empty)); + element.Add(new XAttribute("VaultRole", connectionInfo.VaultRole ?? string.Empty)); } private void SetInheritanceAttributes(XContainer element, IInheritable connectionInfo) diff --git a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs index 7f053ea1..1fb05a36 100644 --- a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs +++ b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs @@ -119,8 +119,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml private void InitializeRootNode(XmlElement connectionsRootElement) { - string rootNodeName = connectionsRootElement?.Attributes["Name"]?.Value.Trim(); - _rootNodeInfo.Name = rootNodeName; + _rootNodeInfo.Name = connectionsRootElement?.Attributes["Name"]?.Value.Trim(); + _rootNodeInfo.OpenbaoVaultUrl = connectionsRootElement?.Attributes["OpenbaoVaultUrl"]?.Value.Trim(); } private void CreateDecryptor(RootNodeInfo rootNodeInfo, XmlElement connectionsRootElement = null) @@ -517,6 +517,8 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml connectionInfo.UserViaAPI = xmlnode.GetAttributeAsString("UserViaAPI"); connectionInfo.Inheritance.UserViaAPI = xmlnode.GetAttributeAsBool("InheritUserViaAPI"); connectionInfo.ExternalAddressProvider = xmlnode.GetAttributeAsEnum("ExternalAddressProvider", ExternalAddressProvider.None); + connectionInfo.VaultMount = xmlnode.GetAttributeAsString("VaultMount"); + connectionInfo.VaultRole = xmlnode.GetAttributeAsString("VaultRole"); connectionInfo.EC2InstanceId = xmlnode.GetAttributeAsString("EC2InstanceId"); connectionInfo.EC2Region = xmlnode.GetAttributeAsString("EC2Region"); connectionInfo.UseRestrictedAdmin = xmlnode.GetAttributeAsBool("UseRestrictedAdmin"); diff --git a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs index 12dc9415..b102f662 100644 --- a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs +++ b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs @@ -15,6 +15,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml XElement element = new(xmlNamespace + "Connections"); element.Add(new XAttribute(XNamespace.Xmlns + "mrng", xmlNamespace)); element.Add(new XAttribute(XName.Get("Name"), rootNodeInfo.Name)); + element.Add(new XAttribute(XName.Get("OpenbaoVaultUrl"), rootNodeInfo.OpenbaoVaultUrl)); element.Add(new XAttribute(XName.Get("Export"), "false")); element.Add(new XAttribute(XName.Get("EncryptionEngine"), cryptographyProvider.CipherEngine)); element.Add(new XAttribute(XName.Get("BlockCipherMode"), cryptographyProvider.CipherMode)); diff --git a/mRemoteNG/Connection/AbstractConnectionRecord.cs b/mRemoteNG/Connection/AbstractConnectionRecord.cs index 8139eb98..890bc523 100644 --- a/mRemoteNG/Connection/AbstractConnectionRecord.cs +++ b/mRemoteNG/Connection/AbstractConnectionRecord.cs @@ -35,6 +35,8 @@ namespace mRemoteNG.Connection private string _username = ""; //private SecureString _password = null; private string _password = null; + private string _vaultRole = null; + private string _vaultMount = null; private string _domain = ""; private string _vmId = ""; private bool _useEnhancedMode; @@ -253,7 +255,10 @@ namespace mRemoteNG.Connection AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.VNC, ProtocolType.ARD, ProtocolType.SSH1, ProtocolType.SSH2, ProtocolType.Telnet, ProtocolType.RAW, ProtocolType.HTTP, ProtocolType.HTTPS, ProtocolType.IntApp)] - public virtual string VaultMount { get; set; } + public virtual string VaultMount { + get => GetPropertyValue("VaultMount", _vaultMount); + set => SetField(ref _vaultMount, value, "VaultMount"); + } [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoRole)), @@ -261,7 +266,10 @@ namespace mRemoteNG.Connection AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.VNC, ProtocolType.ARD, ProtocolType.SSH1, ProtocolType.SSH2, ProtocolType.Telnet, ProtocolType.RAW, ProtocolType.HTTP, ProtocolType.HTTPS, ProtocolType.IntApp)] - public virtual string VaultRole { get; set; } + public virtual string VaultRole { + get => GetPropertyValue("VaultRole", _vaultRole); + set => SetField(ref _vaultRole, value, "VaultRole"); + } [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), LocalizedAttributes.LocalizedDisplayName(nameof(Language.Domain)), diff --git a/mRemoteNG/Language/Language.Designer.cs b/mRemoteNG/Language/Language.Designer.cs index 40797ae0..d574b15c 100644 --- a/mRemoteNG/Language/Language.Designer.cs +++ b/mRemoteNG/Language/Language.Designer.cs @@ -19,7 +19,7 @@ namespace mRemoteNG.Resources.Language { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Language { @@ -3486,6 +3486,42 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Token for Openbao/Vault. + /// + internal static string OpenbaoVaultToken { + get { + return ResourceManager.GetString("OpenbaoVaultToken", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Token to access Openbao/Vault server. + /// + internal static string OpenbaoVaultTokenPropertyDescription { + get { + return ResourceManager.GetString("OpenbaoVaultTokenPropertyDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Openbao/Vault Url. + /// + internal static string OpenbaoVaultUrl { + get { + return ResourceManager.GetString("OpenbaoVaultUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The URL of the Openbao/Vault server to retrieve credentials. + /// + internal static string OpenbaoVaultUrlPropertyDescription { + get { + return ResourceManager.GetString("OpenbaoVaultUrlPropertyDescription", resourceCulture); + } + } + /// /// Looks up a localized string similar to Open Connection File.... /// diff --git a/mRemoteNG/Language/Language.cs-CZ.resx b/mRemoteNG/Language/Language.cs-CZ.resx index 5af302aa..5187d8ab 100644 --- a/mRemoteNG/Language/Language.cs-CZ.resx +++ b/mRemoteNG/Language/Language.cs-CZ.resx @@ -1882,9 +1882,6 @@ mRemoteNG se nyní ukončí a zahájí instalaci. - - Upozornit mě pouze při ukončení několika připojení - @@ -1897,4 +1894,19 @@ mRemoteNG se nyní ukončí a zahájí instalaci. + + + + + + + + Upozornit mě pouze při ukončení několika připojení + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.de.resx b/mRemoteNG/Language/Language.de.resx index a1a11719..d1bded1b 100644 --- a/mRemoteNG/Language/Language.de.resx +++ b/mRemoteNG/Language/Language.de.resx @@ -2063,4 +2063,16 @@ Nightly umfasst Alphas, Betas und Release Candidates. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.el.resx b/mRemoteNG/Language/Language.el.resx index d137f21b..a16ded57 100644 --- a/mRemoteNG/Language/Language.el.resx +++ b/mRemoteNG/Language/Language.el.resx @@ -286,4 +286,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.es-AR.resx b/mRemoteNG/Language/Language.es-AR.resx index 115774fa..31c7ba16 100644 --- a/mRemoteNG/Language/Language.es-AR.resx +++ b/mRemoteNG/Language/Language.es-AR.resx @@ -325,4 +325,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.es.resx b/mRemoteNG/Language/Language.es.resx index e89d5f72..bb3cee4d 100644 --- a/mRemoteNG/Language/Language.es.resx +++ b/mRemoteNG/Language/Language.es.resx @@ -1554,4 +1554,16 @@ mRemoteNG ahora se cerrará y comenzará la instalación. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.fi-FI.resx b/mRemoteNG/Language/Language.fi-FI.resx index 972b7392..3e0fd1db 100644 --- a/mRemoteNG/Language/Language.fi-FI.resx +++ b/mRemoteNG/Language/Language.fi-FI.resx @@ -151,4 +151,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.fr.resx b/mRemoteNG/Language/Language.fr.resx index 6e1ead5c..e1f1dfff 100644 --- a/mRemoteNG/Language/Language.fr.resx +++ b/mRemoteNG/Language/Language.fr.resx @@ -2166,4 +2166,16 @@ Le canal nightly inclut les versions alpha, beta et release candidates. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.hu.resx b/mRemoteNG/Language/Language.hu.resx index 383a87b4..4ffc5bfa 100644 --- a/mRemoteNG/Language/Language.hu.resx +++ b/mRemoteNG/Language/Language.hu.resx @@ -346,4 +346,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.it.resx b/mRemoteNG/Language/Language.it.resx index 67a917af..9243f820 100644 --- a/mRemoteNG/Language/Language.it.resx +++ b/mRemoteNG/Language/Language.it.resx @@ -1572,4 +1572,16 @@ mRemoteNG verrà chiuso e l'installazione avrà inizio. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ja-JP.resx b/mRemoteNG/Language/Language.ja-JP.resx index f49c296f..ab0fa83d 100644 --- a/mRemoteNG/Language/Language.ja-JP.resx +++ b/mRemoteNG/Language/Language.ja-JP.resx @@ -1729,4 +1729,16 @@ mRemoteNGを終了してインストールを開始します + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ko-KR.resx b/mRemoteNG/Language/Language.ko-KR.resx index ef615b51..c41e0cc8 100644 --- a/mRemoteNG/Language/Language.ko-KR.resx +++ b/mRemoteNG/Language/Language.ko-KR.resx @@ -1819,4 +1819,16 @@ mRemoteNG는 이제 종료되고 설치로 시작됩니다. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.lt.resx b/mRemoteNG/Language/Language.lt.resx index 176bfacf..67d28290 100644 --- a/mRemoteNG/Language/Language.lt.resx +++ b/mRemoteNG/Language/Language.lt.resx @@ -241,4 +241,16 @@ Nightly Channel includes Alphas, Betas & Release Candidates. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.nb-NO.resx b/mRemoteNG/Language/Language.nb-NO.resx index afea821c..833f3687 100644 --- a/mRemoteNG/Language/Language.nb-NO.resx +++ b/mRemoteNG/Language/Language.nb-NO.resx @@ -2018,4 +2018,16 @@ Nightly-kanalen inkluderer alpha-, beta- og release candidate-versjoner. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.nl.resx b/mRemoteNG/Language/Language.nl.resx index 167e520b..251fc454 100644 --- a/mRemoteNG/Language/Language.nl.resx +++ b/mRemoteNG/Language/Language.nl.resx @@ -1601,4 +1601,16 @@ mRemoteNG zal nu worden gesloten en beginnen met de installatie. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pl.resx b/mRemoteNG/Language/Language.pl.resx index 365511d3..9d2a68c6 100644 --- a/mRemoteNG/Language/Language.pl.resx +++ b/mRemoteNG/Language/Language.pl.resx @@ -2372,4 +2372,16 @@ Kanał nocny obejmuje wersje alfa, beta i RC (gotowe do wydania). + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pt-BR.resx b/mRemoteNG/Language/Language.pt-BR.resx index 5afad580..2af65cdf 100644 --- a/mRemoteNG/Language/Language.pt-BR.resx +++ b/mRemoteNG/Language/Language.pt-BR.resx @@ -382,4 +382,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pt.resx b/mRemoteNG/Language/Language.pt.resx index ee2a41a0..b3a113c4 100644 --- a/mRemoteNG/Language/Language.pt.resx +++ b/mRemoteNG/Language/Language.pt.resx @@ -1567,4 +1567,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.resx b/mRemoteNG/Language/Language.resx index 8f145845..5be5e9fb 100644 --- a/mRemoteNG/Language/Language.resx +++ b/mRemoteNG/Language/Language.resx @@ -2482,4 +2482,16 @@ Nightly Channel includes Alphas, Betas & Release Candidates. Name or path of the secret + + Token for Openbao/Vault + + + Token to access Openbao/Vault server + + + Openbao/Vault Url + + + The URL of the Openbao/Vault server to retrieve credentials + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ru.resx b/mRemoteNG/Language/Language.ru.resx index 949b645a..fb6aad9f 100644 --- a/mRemoteNG/Language/Language.ru.resx +++ b/mRemoteNG/Language/Language.ru.resx @@ -2011,4 +2011,16 @@ mRemoteNG сейчас прекратит работу и начнет проц + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.sv-SE.resx b/mRemoteNG/Language/Language.sv-SE.resx index 10c1ce53..f70f928d 100644 --- a/mRemoteNG/Language/Language.sv-SE.resx +++ b/mRemoteNG/Language/Language.sv-SE.resx @@ -2185,4 +2185,16 @@ Nattliga kanalen inkluderar Alfa, Betor & Utgåvokandidater. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ta.resx b/mRemoteNG/Language/Language.ta.resx index 78d40e5e..6f80e8dd 100644 --- a/mRemoteNG/Language/Language.ta.resx +++ b/mRemoteNG/Language/Language.ta.resx @@ -2429,4 +2429,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.tr-TR.resx b/mRemoteNG/Language/Language.tr-TR.resx index b2293ab5..2f4e23c4 100644 --- a/mRemoteNG/Language/Language.tr-TR.resx +++ b/mRemoteNG/Language/Language.tr-TR.resx @@ -1641,4 +1641,16 @@ MRemoteNG şimdi kapanacak ve kurulum başlayacak. + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.uk.resx b/mRemoteNG/Language/Language.uk.resx index 4933e665..96dda122 100644 --- a/mRemoteNG/Language/Language.uk.resx +++ b/mRemoteNG/Language/Language.uk.resx @@ -2015,4 +2015,16 @@ mRemoteNG зараз припинить роботу і почне процес + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.zh-CN.resx b/mRemoteNG/Language/Language.zh-CN.resx index 477df223..532b3a63 100644 --- a/mRemoteNG/Language/Language.zh-CN.resx +++ b/mRemoteNG/Language/Language.zh-CN.resx @@ -2093,4 +2093,16 @@ mRemoteNG 将退出并安装更新。 + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.zh-TW.resx b/mRemoteNG/Language/Language.zh-TW.resx index f0fa6a88..cc02db8a 100644 --- a/mRemoteNG/Language/Language.zh-TW.resx +++ b/mRemoteNG/Language/Language.zh-TW.resx @@ -1588,4 +1588,16 @@ mRemoteNG 將立即結束並開始安裝。 + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Tree/Root/RootNodeInfo.cs b/mRemoteNG/Tree/Root/RootNodeInfo.cs index 27ba11f8..4f327b6d 100644 --- a/mRemoteNG/Tree/Root/RootNodeInfo.cs +++ b/mRemoteNG/Tree/Root/RootNodeInfo.cs @@ -14,6 +14,8 @@ namespace mRemoteNG.Tree.Root { private string _name = Language.Connections; private string _customPassword = ""; + private string _openbaoVaultToken = ""; + private string _openbaoVaultUrl = ""; public RootNodeInfo(RootNodeType rootType) : this(rootType, Guid.NewGuid().ToString()) @@ -61,6 +63,25 @@ namespace mRemoteNG.Tree.Root ? TreeNodeType.Root : TreeNodeType.PuttyRoot; } + [LocalizedAttributes.LocalizedCategory(nameof(Language.Miscellaneous)), + Browsable(true), + LocalizedAttributes.LocalizedDefaultValue(nameof(Language.Connections)), + LocalizedAttributes.LocalizedDisplayName(nameof(Language.OpenbaoVaultUrl)), + LocalizedAttributes.LocalizedDescription(nameof(Language.OpenbaoVaultUrlPropertyDescription))] + public string OpenbaoVaultUrl { + get => _openbaoVaultUrl; + set => _openbaoVaultUrl = value; + } + + [LocalizedAttributes.LocalizedCategory(nameof(Language.Miscellaneous)), + Browsable(true), + LocalizedAttributes.LocalizedDefaultValue(nameof(Language.Connections)), + LocalizedAttributes.LocalizedDisplayName(nameof(Language.OpenbaoVaultToken)), + LocalizedAttributes.LocalizedDescription(nameof(Language.OpenbaoVaultTokenPropertyDescription))] + public string OpenbaoVaultToken { + get => _openbaoVaultToken; + set => _openbaoVaultToken = value; + } #endregion } diff --git a/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs b/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs index dd916e6f..1f1818ca 100644 --- a/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs +++ b/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs @@ -134,7 +134,9 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid BrowsableProperties = new[] { nameof(RootNodeInfo.Name), - nameof(RootNodeInfo.Password) + nameof(RootNodeInfo.Password), + nameof(RootNodeInfo.OpenbaoVaultUrl), + nameof(RootNodeInfo.OpenbaoVaultToken) }; } @@ -255,9 +257,9 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid strHide.Add(nameof(AbstractConnectionRecord.VaultRole)); } else if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { + strHide.Add(nameof(AbstractConnectionRecord.UserViaAPI)); strHide.Add(nameof(AbstractConnectionRecord.Username)); strHide.Add(nameof(AbstractConnectionRecord.Password)); - strHide.Add(nameof(AbstractConnectionRecord.Domain)); } return strHide; } From 61dd2ec8db0cf979afa162a45306b471848b4bc1 Mon Sep 17 00:00:00 2001 From: "massimo.antonello" Date: Fri, 17 Oct 2025 11:49:17 +0200 Subject: [PATCH 4/7] started working --- ExternalConnectors/VO/VaultOpenbao.cs | 45 ++++++++++++++++++- mRemoteNG/Connection/Protocol/PuttyBase.cs | 14 +++++- .../Connection/Protocol/RDP/RdpProtocol.cs | 45 ++++++++++++------- 3 files changed, 87 insertions(+), 17 deletions(-) diff --git a/ExternalConnectors/VO/VaultOpenbao.cs b/ExternalConnectors/VO/VaultOpenbao.cs index eb2cb57c..249f3b8a 100644 --- a/ExternalConnectors/VO/VaultOpenbao.cs +++ b/ExternalConnectors/VO/VaultOpenbao.cs @@ -8,6 +8,49 @@ using VaultSharp.V1.AuthMethods; using VaultSharp.V1.AuthMethods.Token; namespace ExternalConnectors.VO { - public class VaultOpenbao { + public class VaultOpenbaoException(string message, string arguments) : Exception(message) { + public string Arguments { get; set; } = arguments; + } + + public static class VaultOpenbao { + public static void ReadPasswordSSH(string url, string token, string mount, string role, string address, string username, out string password) { + IAuthMethodInfo authMethod = new TokenAuthMethodInfo(token); + var vaultClientSettings = new VaultClientSettings(url, authMethod); + VaultClient vaultClient = new(vaultClientSettings); + var mountType = vaultClient.V1.System.GetSecretBackendAsync(mount).Result.Data.Type; + switch (mountType.Type) { + case "ssh": + var ssh = vaultClient.V1.Secrets.SSH.GetCredentialsAsync(role, address, username, mount).Result; + password = ssh.Data.Key; + return; + default: + throw new VaultOpenbaoException($"Backend of type {mountType.Type} is not supported", null); + } + + } + public static void ReadPasswordRDP(string url, string token, string mount, string role, out string username, out string password) { + IAuthMethodInfo authMethod = new TokenAuthMethodInfo(token); + var vaultClientSettings = new VaultClientSettings(url, authMethod); + VaultClient vaultClient = new(vaultClientSettings); + var mountType = vaultClient.V1.System.GetSecretBackendAsync(mount).Result.Data.Type; + switch (mountType.Type) { + case "ldap": + try { // don't care if dynamic or static. try both + var secret = vaultClient.V1.Secrets.OpenLDAP.GetDynamicCredentialsAsync(role, mount).Result; + username = secret.Data.Username; + password = secret.Data.Password; + } catch (Exception) { + var secret = vaultClient.V1.Secrets.OpenLDAP.GetStaticCredentialsAsync(role, mount).Result; + username = secret.Data.Username; + password = secret.Data.Password; + } + return; + + default: + throw new VaultOpenbaoException($"Backend of type {mountType.Type} is not supported", null); + } + + } + } } diff --git a/mRemoteNG/Connection/Protocol/PuttyBase.cs b/mRemoteNG/Connection/Protocol/PuttyBase.cs index ec1a527f..9a8b9d0a 100644 --- a/mRemoteNG/Connection/Protocol/PuttyBase.cs +++ b/mRemoteNG/Connection/Protocol/PuttyBase.cs @@ -5,6 +5,7 @@ using mRemoteNG.Security; using mRemoteNG.Security.SymmetricEncryption; using mRemoteNG.Tools; using mRemoteNG.Tools.Cmdline; +using mRemoteNG.Tree.Root; using mRemoteNG.UI; using System; using System.Diagnostics; @@ -160,7 +161,18 @@ namespace mRemoteNG.Connection.Protocol Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ECPOnePasswordReadFailed + Environment.NewLine + ex.Message); } } - + else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { + try { + RootNodeInfo? rootNode = InterfaceControl.Info?.GetRootParent() as RootNodeInfo; + if (rootNode == null) { + Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); + return false; + } + ExternalConnectors.VO.VaultOpenbao.ReadPasswordSSH(rootNode.OpenbaoVaultUrl, rootNode.OpenbaoVaultToken, InterfaceControl.Info?.VaultMount ?? "", InterfaceControl.Info?.VaultRole ?? "", InterfaceControl.Info?.Hostname ?? "", InterfaceControl.Info?.Username ?? "root", out password); + } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { + Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); + } + } if (string.IsNullOrEmpty(username)) { diff --git a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs index 77227a25..78784476 100644 --- a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs +++ b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs @@ -1,26 +1,23 @@ -using System; -using System.Diagnostics; -using System.IO; -using System.Runtime.InteropServices; -using System.Threading; -using System.Timers; -using System.Windows.Forms; -using AxMSTSCLib; +using AxMSTSCLib; using mRemoteNG.App; using mRemoteNG.Messages; using mRemoteNG.Properties; +using mRemoteNG.Resources.Language; using mRemoteNG.Security.SymmetricEncryption; using mRemoteNG.Tools; +using mRemoteNG.Tree.Root; using mRemoteNG.UI; using mRemoteNG.UI.Forms; using mRemoteNG.UI.Tabs; using MSTSCLib; -using mRemoteNG.Resources.Language; +using System; +using System.Diagnostics; +using System.IO; +using System.Runtime.InteropServices; using System.Runtime.Versioning; -using FileDialog = Microsoft.Win32.FileDialog; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; -using System.DirectoryServices.ActiveDirectory; -using mRemoteNG.Security; +using System.Threading; +using System.Timers; +using System.Windows.Forms; namespace mRemoteNG.Connection.Protocol.RDP { @@ -483,9 +480,22 @@ namespace mRemoteNG.Connection.Protocol.RDP Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ECPOnePasswordReadFailed + Environment.NewLine + ex.Message); } } + else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) + { + try { + RootNodeInfo? rootNode = connectionInfo?.GetRootParent() as RootNodeInfo; + if (rootNode == null) { + Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); + return; + } + ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP(rootNode.OpenbaoVaultUrl, rootNode.OpenbaoVaultToken, connectionInfo.VaultMount, connectionInfo.VaultRole, out gwu, out gwp); + } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { + Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); + } + } - if (connectionInfo.RDGatewayUseConnectionCredentials != RDGatewayUseConnectionCredentials.AccessToken) + if (connectionInfo.RDGatewayUseConnectionCredentials != RDGatewayUseConnectionCredentials.AccessToken) { _rdpClient.TransportSettings2.GatewayUsername = gwu; _rdpClient.TransportSettings2.GatewayPassword = gwp; @@ -597,7 +607,12 @@ namespace mRemoteNG.Connection.Protocol.RDP } else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { try { - ExternalConnectors.VO.VaultOpenbao.ReadPassword($"{userViaApi}", out userName, out password, out domain, out pkey); + RootNodeInfo? rootNode = connectionInfo?.GetRootParent() as RootNodeInfo; + if (rootNode == null) { + Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); + return; + } + ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP(rootNode.OpenbaoVaultUrl, rootNode.OpenbaoVaultToken, connectionInfo?.VaultMount ?? "", connectionInfo?.VaultRole ?? "", out userName, out password); } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); } From 0991cf74ef0374bbb9f80787d21ea0ed22cd10b4 Mon Sep 17 00:00:00 2001 From: "massimo.antonello" Date: Fri, 17 Oct 2025 14:53:01 +0200 Subject: [PATCH 5/7] Secret Engine Property --- ExternalConnectors/VO/VaultOpenbao.cs | 72 ++++--- .../Xml/XmlConnectionNodeSerializer28.cs | 5 +- .../Xml/XmlConnectionsDeserializer.cs | 7 +- .../Xml/XmlRootNodeSerializer.cs | 2 +- .../Connection/AbstractConnectionRecord.cs | 33 +-- mRemoteNG/Connection/Protocol/PuttyBase.cs | 2 +- .../Connection/Protocol/RDP/RdpProtocol.cs | 8 +- .../Connection/VaultOpenbaoSecretEngine.cs | 20 ++ mRemoteNG/Language/Language.Designer.cs | 117 +++++++---- mRemoteNG/Language/Language.cs-CZ.resx | 31 ++- mRemoteNG/Language/Language.de.resx | 23 ++- mRemoteNG/Language/Language.el.resx | 23 ++- mRemoteNG/Language/Language.es-AR.resx | 23 ++- mRemoteNG/Language/Language.es.resx | 23 ++- mRemoteNG/Language/Language.fi-FI.resx | 23 ++- mRemoteNG/Language/Language.fr.resx | 23 ++- mRemoteNG/Language/Language.hu.resx | 23 ++- mRemoteNG/Language/Language.it.resx | 23 ++- mRemoteNG/Language/Language.ja-JP.resx | 23 ++- mRemoteNG/Language/Language.ko-KR.resx | 23 ++- mRemoteNG/Language/Language.lt.resx | 23 ++- mRemoteNG/Language/Language.nb-NO.resx | 23 ++- mRemoteNG/Language/Language.nl.resx | 23 ++- mRemoteNG/Language/Language.pl.resx | 23 ++- mRemoteNG/Language/Language.pt-BR.resx | 23 ++- mRemoteNG/Language/Language.pt.resx | 23 ++- mRemoteNG/Language/Language.resx | 31 ++- mRemoteNG/Language/Language.ru.resx | 23 ++- mRemoteNG/Language/Language.sv-SE.resx | 23 ++- mRemoteNG/Language/Language.ta.resx | 23 ++- mRemoteNG/Language/Language.tr-TR.resx | 23 ++- mRemoteNG/Language/Language.uk.resx | 23 ++- mRemoteNG/Language/Language.zh-CN.resx | 23 ++- mRemoteNG/Language/Language.zh-TW.resx | 23 ++- mRemoteNG/Tree/Root/RootNodeInfo.cs | 24 +-- .../ConnectionInfoPropertyGrid.cs | 189 ++++++------------ 36 files changed, 741 insertions(+), 329 deletions(-) create mode 100644 mRemoteNG/Connection/VaultOpenbaoSecretEngine.cs diff --git a/ExternalConnectors/VO/VaultOpenbao.cs b/ExternalConnectors/VO/VaultOpenbao.cs index 249f3b8a..c41d9942 100644 --- a/ExternalConnectors/VO/VaultOpenbao.cs +++ b/ExternalConnectors/VO/VaultOpenbao.cs @@ -1,4 +1,5 @@ -using System; +using Newtonsoft.Json.Linq; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -6,6 +7,7 @@ using System.Threading.Tasks; using VaultSharp; using VaultSharp.V1.AuthMethods; using VaultSharp.V1.AuthMethods.Token; +using VaultSharp.V1.SecretsEngines; namespace ExternalConnectors.VO { public class VaultOpenbaoException(string message, string arguments) : Exception(message) { @@ -13,41 +15,57 @@ namespace ExternalConnectors.VO { } public static class VaultOpenbao { - public static void ReadPasswordSSH(string url, string token, string mount, string role, string address, string username, out string password) { + private static VaultClient GetClient(string url, string token) { IAuthMethodInfo authMethod = new TokenAuthMethodInfo(token); var vaultClientSettings = new VaultClientSettings(url, authMethod); - VaultClient vaultClient = new(vaultClientSettings); - var mountType = vaultClient.V1.System.GetSecretBackendAsync(mount).Result.Data.Type; - switch (mountType.Type) { - case "ssh": - var ssh = vaultClient.V1.Secrets.SSH.GetCredentialsAsync(role, address, username, mount).Result; - password = ssh.Data.Key; + return new(vaultClientSettings); + } + private static void TestMountType(VaultClient vaultClient, string mount, int VaultOpenbaoSecretEngine) { + switch (vaultClient.V1.System.GetSecretBackendAsync(mount).Result.Data.Type.Type) { + case "kv" when VaultOpenbaoSecretEngine != 0: + throw new VaultOpenbaoException($"Backend of type kv does not match expected type {VaultOpenbaoSecretEngine}", null); + case "ldap" when VaultOpenbaoSecretEngine != 1 && VaultOpenbaoSecretEngine != 2: + throw new VaultOpenbaoException($"Backend of type ldap does not match expected type {VaultOpenbaoSecretEngine}", null); + } + } + public static void ReadPasswordSSH(string url, string token, int secretEngine, string mount, string role, string username, out string password) { + VaultClient vaultClient = GetClient(url, token); + TestMountType(vaultClient, mount, secretEngine); + switch (secretEngine) { + case 0: + var kv = vaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(role, mountPoint: mount).Result; + password = kv.Data.Data[username].ToString(); return; + //case "ssh": // TODO: does not work with Keyboard-Interactive yet + // var ssh = vaultClient.V1.Secrets.SSH.GetCredentialsAsync(role, address, username, mount).Result; + // password = ssh.Data.Key; + // return; default: - throw new VaultOpenbaoException($"Backend of type {mountType.Type} is not supported", null); + throw new VaultOpenbaoException($"Backend of type {secretEngine} is not supported", null); } } - public static void ReadPasswordRDP(string url, string token, string mount, string role, out string username, out string password) { - IAuthMethodInfo authMethod = new TokenAuthMethodInfo(token); - var vaultClientSettings = new VaultClientSettings(url, authMethod); - VaultClient vaultClient = new(vaultClientSettings); - var mountType = vaultClient.V1.System.GetSecretBackendAsync(mount).Result.Data.Type; - switch (mountType.Type) { - case "ldap": - try { // don't care if dynamic or static. try both - var secret = vaultClient.V1.Secrets.OpenLDAP.GetDynamicCredentialsAsync(role, mount).Result; - username = secret.Data.Username; - password = secret.Data.Password; - } catch (Exception) { - var secret = vaultClient.V1.Secrets.OpenLDAP.GetStaticCredentialsAsync(role, mount).Result; - username = secret.Data.Username; - password = secret.Data.Password; - } + public static void ReadPasswordRDP(string url, string token, int secretEngine, string mount, string role, ref string username, out string password) { + VaultClient vaultClient = GetClient(url, token); + TestMountType(vaultClient, mount, secretEngine); + switch (secretEngine) { + case 0: + var kv = vaultClient.V1.Secrets.KeyValue.V2.ReadSecretAsync(role, mountPoint: mount).Result; + password = kv.Data.Data[username].ToString(); return; - + case 1: + var ldapd = vaultClient.V1.Secrets.OpenLDAP.GetDynamicCredentialsAsync(role, mount).Result; + username = ldapd.Data.Username; + password = ldapd.Data.Password; + return; + case 2: + var ldaps = vaultClient.V1.Secrets.OpenLDAP.GetStaticCredentialsAsync(role, mount).Result; + username = ldaps.Data.Username; + password = ldaps.Data.Password; + return; + default: - throw new VaultOpenbaoException($"Backend of type {mountType.Type} is not supported", null); + throw new VaultOpenbaoException($"Backend of type {secretEngine} is not supported", null); } } diff --git a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer28.cs b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer28.cs index 00020f07..0e8743f3 100644 --- a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer28.cs +++ b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer28.cs @@ -154,8 +154,9 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml element.Add(new XAttribute("ExternalAddressProvider", connectionInfo.ExternalAddressProvider)); // Vault/OpenBao specific - element.Add(new XAttribute("VaultMount", connectionInfo.VaultMount ?? string.Empty)); - element.Add(new XAttribute("VaultRole", connectionInfo.VaultRole ?? string.Empty)); + element.Add(new XAttribute("VaultOpenbaoMount", connectionInfo.VaultOpenbaoMount ?? string.Empty)); + element.Add(new XAttribute("VaultOpenbaoRole", connectionInfo.VaultOpenbaoRole ?? string.Empty)); + element.Add(new XAttribute("VaultOpenbaoSecretEngine", connectionInfo.VaultOpenbaoSecretEngine)); } private void SetInheritanceAttributes(XContainer element, IInheritable connectionInfo) diff --git a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs index 1fb05a36..97d15dde 100644 --- a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs +++ b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs @@ -120,7 +120,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml private void InitializeRootNode(XmlElement connectionsRootElement) { _rootNodeInfo.Name = connectionsRootElement?.Attributes["Name"]?.Value.Trim(); - _rootNodeInfo.OpenbaoVaultUrl = connectionsRootElement?.Attributes["OpenbaoVaultUrl"]?.Value.Trim(); + _rootNodeInfo.VaultOpenbaoUrl = connectionsRootElement?.Attributes["VaultOpenbaoUrl"]?.Value.Trim(); } private void CreateDecryptor(RootNodeInfo rootNodeInfo, XmlElement connectionsRootElement = null) @@ -517,8 +517,9 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml connectionInfo.UserViaAPI = xmlnode.GetAttributeAsString("UserViaAPI"); connectionInfo.Inheritance.UserViaAPI = xmlnode.GetAttributeAsBool("InheritUserViaAPI"); connectionInfo.ExternalAddressProvider = xmlnode.GetAttributeAsEnum("ExternalAddressProvider", ExternalAddressProvider.None); - connectionInfo.VaultMount = xmlnode.GetAttributeAsString("VaultMount"); - connectionInfo.VaultRole = xmlnode.GetAttributeAsString("VaultRole"); + connectionInfo.VaultOpenbaoMount = xmlnode.GetAttributeAsString("VaultOpenbaoMount"); + connectionInfo.VaultOpenbaoRole = xmlnode.GetAttributeAsString("VaultOpenbaoRole"); + connectionInfo.VaultOpenbaoSecretEngine = xmlnode.GetAttributeAsEnum("VaultOpenbaoSecretEngine", VaultOpenbaoSecretEngine.Kv); connectionInfo.EC2InstanceId = xmlnode.GetAttributeAsString("EC2InstanceId"); connectionInfo.EC2Region = xmlnode.GetAttributeAsString("EC2Region"); connectionInfo.UseRestrictedAdmin = xmlnode.GetAttributeAsBool("UseRestrictedAdmin"); diff --git a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs index b102f662..8b8f3cc7 100644 --- a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs +++ b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs @@ -15,7 +15,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml XElement element = new(xmlNamespace + "Connections"); element.Add(new XAttribute(XNamespace.Xmlns + "mrng", xmlNamespace)); element.Add(new XAttribute(XName.Get("Name"), rootNodeInfo.Name)); - element.Add(new XAttribute(XName.Get("OpenbaoVaultUrl"), rootNodeInfo.OpenbaoVaultUrl)); + element.Add(new XAttribute(XName.Get("VaultOpenbaoUrl"), rootNodeInfo.VaultOpenbaoUrl)); element.Add(new XAttribute(XName.Get("Export"), "false")); element.Add(new XAttribute(XName.Get("EncryptionEngine"), cryptographyProvider.CipherEngine)); element.Add(new XAttribute(XName.Get("BlockCipherMode"), cryptographyProvider.CipherMode)); diff --git a/mRemoteNG/Connection/AbstractConnectionRecord.cs b/mRemoteNG/Connection/AbstractConnectionRecord.cs index 890bc523..d0ddbc4b 100644 --- a/mRemoteNG/Connection/AbstractConnectionRecord.cs +++ b/mRemoteNG/Connection/AbstractConnectionRecord.cs @@ -37,6 +37,7 @@ namespace mRemoteNG.Connection private string _password = null; private string _vaultRole = null; private string _vaultMount = null; + private VaultOpenbaoSecretEngine _vaultSecretEngine = VaultOpenbaoSecretEngine.Kv; private string _domain = ""; private string _vmId = ""; private bool _useEnhancedMode; @@ -252,25 +253,33 @@ namespace mRemoteNG.Connection [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoMount)), LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoMountDescription)), - AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.VNC, ProtocolType.ARD, ProtocolType.SSH1, - ProtocolType.SSH2, ProtocolType.Telnet, ProtocolType.RAW, ProtocolType.HTTP, ProtocolType.HTTPS, - ProtocolType.IntApp)] - public virtual string VaultMount { - get => GetPropertyValue("VaultMount", _vaultMount); - set => SetField(ref _vaultMount, value, "VaultMount"); + AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.SSH1, ProtocolType.SSH2)] + public virtual string VaultOpenbaoMount { + get => GetPropertyValue("VaultOpenbaoMount", _vaultMount); + set => SetField(ref _vaultMount, value, "VaultOpenbaoMount"); } [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoRole)), LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoRoleDescription)), - AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.VNC, ProtocolType.ARD, ProtocolType.SSH1, - ProtocolType.SSH2, ProtocolType.Telnet, ProtocolType.RAW, ProtocolType.HTTP, ProtocolType.HTTPS, - ProtocolType.IntApp)] - public virtual string VaultRole { - get => GetPropertyValue("VaultRole", _vaultRole); - set => SetField(ref _vaultRole, value, "VaultRole"); + AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.SSH1, ProtocolType.SSH2)] + public virtual string VaultOpenbaoRole { + get => GetPropertyValue("VaultOpenbaoRole", _vaultRole); + set => SetField(ref _vaultRole, value, "VaultOpenbaoRole"); } + // external credential provider selector + [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), + LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoSecretEngine)), + LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionVaultOpenbaoSecretEngine)), + TypeConverter(typeof(MiscTools.EnumTypeConverter)), + AttributeUsedInProtocol(ProtocolType.RDP, ProtocolType.SSH1, ProtocolType.SSH2)] + public VaultOpenbaoSecretEngine VaultOpenbaoSecretEngine { + get => GetPropertyValue("VaultOpenbaoSecretEngine", _vaultSecretEngine); + set => SetField(ref _vaultSecretEngine, value, "VaultOpenbaoSecretEngine"); + } + + [LocalizedAttributes.LocalizedCategory(nameof(Language.Connection), 2), LocalizedAttributes.LocalizedDisplayName(nameof(Language.Domain)), LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionDomain)), diff --git a/mRemoteNG/Connection/Protocol/PuttyBase.cs b/mRemoteNG/Connection/Protocol/PuttyBase.cs index 9a8b9d0a..b4a2dba6 100644 --- a/mRemoteNG/Connection/Protocol/PuttyBase.cs +++ b/mRemoteNG/Connection/Protocol/PuttyBase.cs @@ -168,7 +168,7 @@ namespace mRemoteNG.Connection.Protocol Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); return false; } - ExternalConnectors.VO.VaultOpenbao.ReadPasswordSSH(rootNode.OpenbaoVaultUrl, rootNode.OpenbaoVaultToken, InterfaceControl.Info?.VaultMount ?? "", InterfaceControl.Info?.VaultRole ?? "", InterfaceControl.Info?.Hostname ?? "", InterfaceControl.Info?.Username ?? "root", out password); + ExternalConnectors.VO.VaultOpenbao.ReadPasswordSSH(rootNode.VaultOpenbaoUrl, rootNode.VaultOpenbaoToken, (int)InterfaceControl.Info?.VaultOpenbaoSecretEngine, InterfaceControl.Info?.VaultOpenbaoMount ?? "", InterfaceControl.Info?.VaultOpenbaoRole ?? "", InterfaceControl.Info?.Username ?? "root", out password); } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); } diff --git a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs index 78784476..a3dc8a96 100644 --- a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs +++ b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs @@ -488,7 +488,9 @@ namespace mRemoteNG.Connection.Protocol.RDP Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); return; } - ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP(rootNode.OpenbaoVaultUrl, rootNode.OpenbaoVaultToken, connectionInfo.VaultMount, connectionInfo.VaultRole, out gwu, out gwp); + if (connectionInfo.VaultOpenbaoSecretEngine == VaultOpenbaoSecretEngine.Kv) + gwu = connectionInfo.RDGatewayUsername; + ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP(rootNode.VaultOpenbaoUrl, rootNode.VaultOpenbaoToken, (int)connectionInfo.VaultOpenbaoSecretEngine, connectionInfo.VaultOpenbaoMount, connectionInfo.VaultOpenbaoRole, ref gwu, out gwp); } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); } @@ -612,7 +614,9 @@ namespace mRemoteNG.Connection.Protocol.RDP Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); return; } - ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP(rootNode.OpenbaoVaultUrl, rootNode.OpenbaoVaultToken, connectionInfo?.VaultMount ?? "", connectionInfo?.VaultRole ?? "", out userName, out password); + if(connectionInfo.VaultOpenbaoSecretEngine == VaultOpenbaoSecretEngine.Kv) + userName = connectionInfo?.Username ?? ""; + ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP(rootNode.VaultOpenbaoUrl, rootNode.VaultOpenbaoToken, (int)connectionInfo.VaultOpenbaoSecretEngine, connectionInfo?.VaultOpenbaoMount ?? "", connectionInfo?.VaultOpenbaoRole ?? "", ref userName, out password); } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); } diff --git a/mRemoteNG/Connection/VaultOpenbaoSecretEngine.cs b/mRemoteNG/Connection/VaultOpenbaoSecretEngine.cs new file mode 100644 index 00000000..507dcb06 --- /dev/null +++ b/mRemoteNG/Connection/VaultOpenbaoSecretEngine.cs @@ -0,0 +1,20 @@ +using mRemoteNG.Resources.Language; +using mRemoteNG.Tools; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace mRemoteNG.Connection { + public enum VaultOpenbaoSecretEngine { + [LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoSecretEngineKeyValue))] + Kv = 0, + + [LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoSecretEngineLDAPDynamic))] + LdapDynamic = 1, + + [LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoSecretEngineLDAPStatic))] + LdapStatic = 2, + } +} diff --git a/mRemoteNG/Language/Language.Designer.cs b/mRemoteNG/Language/Language.Designer.cs index d574b15c..fbcbaf71 100644 --- a/mRemoteNG/Language/Language.Designer.cs +++ b/mRemoteNG/Language/Language.Designer.cs @@ -3486,42 +3486,6 @@ namespace mRemoteNG.Resources.Language { } } - /// - /// Looks up a localized string similar to Token for Openbao/Vault. - /// - internal static string OpenbaoVaultToken { - get { - return ResourceManager.GetString("OpenbaoVaultToken", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Token to access Openbao/Vault server. - /// - internal static string OpenbaoVaultTokenPropertyDescription { - get { - return ResourceManager.GetString("OpenbaoVaultTokenPropertyDescription", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Openbao/Vault Url. - /// - internal static string OpenbaoVaultUrl { - get { - return ResourceManager.GetString("OpenbaoVaultUrl", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The URL of the Openbao/Vault server to retrieve credentials. - /// - internal static string OpenbaoVaultUrlPropertyDescription { - get { - return ResourceManager.GetString("OpenbaoVaultUrlPropertyDescription", resourceCulture); - } - } - /// /// Looks up a localized string similar to Open Connection File.... /// @@ -4566,6 +4530,15 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Secret engine used in Vault/Openbao to store the secret. + /// + internal static string PropertyDescriptionVaultOpenbaoSecretEngine { + get { + return ResourceManager.GetString("PropertyDescriptionVaultOpenbaoSecretEngine", resourceCulture); + } + } + /// /// Looks up a localized string similar to If you want to establish a view only connection to the host select yes.. /// @@ -6901,6 +6874,78 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Vault/Openbao Secret Engine. + /// + internal static string VaultOpenbaoSecretEngine { + get { + return ResourceManager.GetString("VaultOpenbaoSecretEngine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to KeyValue (Username as Key). + /// + internal static string VaultOpenbaoSecretEngineKeyValue { + get { + return ResourceManager.GetString("VaultOpenbaoSecretEngineKeyValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LDAP dynamic role. + /// + internal static string VaultOpenbaoSecretEngineLDAPDynamic { + get { + return ResourceManager.GetString("VaultOpenbaoSecretEngineLDAPDynamic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to LDAP static role. + /// + internal static string VaultOpenbaoSecretEngineLDAPStatic { + get { + return ResourceManager.GetString("VaultOpenbaoSecretEngineLDAPStatic", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Token for Vault/Openbao. + /// + internal static string VaultOpenbaoToken { + get { + return ResourceManager.GetString("VaultOpenbaoToken", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Token to access Vault/Openbao server. + /// + internal static string VaultOpenbaoTokenPropertyDescription { + get { + return ResourceManager.GetString("VaultOpenbaoTokenPropertyDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Vault/Openbao Url. + /// + internal static string VaultOpenbaoUrl { + get { + return ResourceManager.GetString("VaultOpenbaoUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The URL of the Vault/Openbao server to retrieve credentials. + /// + internal static string VaultOpenbaoUrlPropertyDescription { + get { + return ResourceManager.GetString("VaultOpenbaoUrlPropertyDescription", resourceCulture); + } + } + /// /// Looks up a localized string similar to Verify:. /// diff --git a/mRemoteNG/Language/Language.cs-CZ.resx b/mRemoteNG/Language/Language.cs-CZ.resx index 5187d8ab..9fa17507 100644 --- a/mRemoteNG/Language/Language.cs-CZ.resx +++ b/mRemoteNG/Language/Language.cs-CZ.resx @@ -1894,19 +1894,34 @@ mRemoteNG se nyní ukončí a zahájí instalaci. - + - + + + + + + + + + + + + + + + + + + + + + + Upozornit mě pouze při ukončení několika připojení - - - - - - \ No newline at end of file diff --git a/mRemoteNG/Language/Language.de.resx b/mRemoteNG/Language/Language.de.resx index d1bded1b..c12f1f3c 100644 --- a/mRemoteNG/Language/Language.de.resx +++ b/mRemoteNG/Language/Language.de.resx @@ -2063,16 +2063,31 @@ Nightly umfasst Alphas, Betas und Release Candidates. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.el.resx b/mRemoteNG/Language/Language.el.resx index a16ded57..ace2cfb2 100644 --- a/mRemoteNG/Language/Language.el.resx +++ b/mRemoteNG/Language/Language.el.resx @@ -286,16 +286,31 @@ - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.es-AR.resx b/mRemoteNG/Language/Language.es-AR.resx index 31c7ba16..536c97a9 100644 --- a/mRemoteNG/Language/Language.es-AR.resx +++ b/mRemoteNG/Language/Language.es-AR.resx @@ -325,16 +325,31 @@ - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.es.resx b/mRemoteNG/Language/Language.es.resx index bb3cee4d..4dc12c48 100644 --- a/mRemoteNG/Language/Language.es.resx +++ b/mRemoteNG/Language/Language.es.resx @@ -1554,16 +1554,31 @@ mRemoteNG ahora se cerrará y comenzará la instalación. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.fi-FI.resx b/mRemoteNG/Language/Language.fi-FI.resx index 3e0fd1db..d8ed19cc 100644 --- a/mRemoteNG/Language/Language.fi-FI.resx +++ b/mRemoteNG/Language/Language.fi-FI.resx @@ -151,16 +151,31 @@ - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.fr.resx b/mRemoteNG/Language/Language.fr.resx index e1f1dfff..88d73f50 100644 --- a/mRemoteNG/Language/Language.fr.resx +++ b/mRemoteNG/Language/Language.fr.resx @@ -2166,16 +2166,31 @@ Le canal nightly inclut les versions alpha, beta et release candidates. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.hu.resx b/mRemoteNG/Language/Language.hu.resx index 4ffc5bfa..5d5ae888 100644 --- a/mRemoteNG/Language/Language.hu.resx +++ b/mRemoteNG/Language/Language.hu.resx @@ -346,16 +346,31 @@ - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.it.resx b/mRemoteNG/Language/Language.it.resx index 9243f820..5a1b7dc3 100644 --- a/mRemoteNG/Language/Language.it.resx +++ b/mRemoteNG/Language/Language.it.resx @@ -1572,16 +1572,31 @@ mRemoteNG verrà chiuso e l'installazione avrà inizio. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ja-JP.resx b/mRemoteNG/Language/Language.ja-JP.resx index ab0fa83d..5e2a58db 100644 --- a/mRemoteNG/Language/Language.ja-JP.resx +++ b/mRemoteNG/Language/Language.ja-JP.resx @@ -1729,16 +1729,31 @@ mRemoteNGを終了してインストールを開始します - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ko-KR.resx b/mRemoteNG/Language/Language.ko-KR.resx index c41e0cc8..2b537381 100644 --- a/mRemoteNG/Language/Language.ko-KR.resx +++ b/mRemoteNG/Language/Language.ko-KR.resx @@ -1819,16 +1819,31 @@ mRemoteNG는 이제 종료되고 설치로 시작됩니다. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.lt.resx b/mRemoteNG/Language/Language.lt.resx index 67d28290..4cedd646 100644 --- a/mRemoteNG/Language/Language.lt.resx +++ b/mRemoteNG/Language/Language.lt.resx @@ -241,16 +241,31 @@ Nightly Channel includes Alphas, Betas & Release Candidates. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.nb-NO.resx b/mRemoteNG/Language/Language.nb-NO.resx index 833f3687..51efed4b 100644 --- a/mRemoteNG/Language/Language.nb-NO.resx +++ b/mRemoteNG/Language/Language.nb-NO.resx @@ -2018,16 +2018,31 @@ Nightly-kanalen inkluderer alpha-, beta- og release candidate-versjoner. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.nl.resx b/mRemoteNG/Language/Language.nl.resx index 251fc454..cd461392 100644 --- a/mRemoteNG/Language/Language.nl.resx +++ b/mRemoteNG/Language/Language.nl.resx @@ -1601,16 +1601,31 @@ mRemoteNG zal nu worden gesloten en beginnen met de installatie. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pl.resx b/mRemoteNG/Language/Language.pl.resx index 9d2a68c6..863489b9 100644 --- a/mRemoteNG/Language/Language.pl.resx +++ b/mRemoteNG/Language/Language.pl.resx @@ -2372,16 +2372,31 @@ Kanał nocny obejmuje wersje alfa, beta i RC (gotowe do wydania). - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pt-BR.resx b/mRemoteNG/Language/Language.pt-BR.resx index 2af65cdf..77fb4202 100644 --- a/mRemoteNG/Language/Language.pt-BR.resx +++ b/mRemoteNG/Language/Language.pt-BR.resx @@ -382,16 +382,31 @@ - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.pt.resx b/mRemoteNG/Language/Language.pt.resx index b3a113c4..6bcaec29 100644 --- a/mRemoteNG/Language/Language.pt.resx +++ b/mRemoteNG/Language/Language.pt.resx @@ -1567,16 +1567,31 @@ - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.resx b/mRemoteNG/Language/Language.resx index 5be5e9fb..61286304 100644 --- a/mRemoteNG/Language/Language.resx +++ b/mRemoteNG/Language/Language.resx @@ -2482,16 +2482,31 @@ Nightly Channel includes Alphas, Betas & Release Candidates. Name or path of the secret - - Token for Openbao/Vault + + Token for Vault/Openbao - - Token to access Openbao/Vault server + + Token to access Vault/Openbao server - - Openbao/Vault Url + + Vault/Openbao Url - - The URL of the Openbao/Vault server to retrieve credentials + + The URL of the Vault/Openbao server to retrieve credentials + + + Vault/Openbao Secret Engine + + + Secret engine used in Vault/Openbao to store the secret + + + KeyValue (Username as Key) + + + LDAP dynamic role + + + LDAP static role \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ru.resx b/mRemoteNG/Language/Language.ru.resx index fb6aad9f..07be01cc 100644 --- a/mRemoteNG/Language/Language.ru.resx +++ b/mRemoteNG/Language/Language.ru.resx @@ -2011,16 +2011,31 @@ mRemoteNG сейчас прекратит работу и начнет проц - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.sv-SE.resx b/mRemoteNG/Language/Language.sv-SE.resx index f70f928d..76b1a293 100644 --- a/mRemoteNG/Language/Language.sv-SE.resx +++ b/mRemoteNG/Language/Language.sv-SE.resx @@ -2185,16 +2185,31 @@ Nattliga kanalen inkluderar Alfa, Betor & Utgåvokandidater. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.ta.resx b/mRemoteNG/Language/Language.ta.resx index 6f80e8dd..6753502a 100644 --- a/mRemoteNG/Language/Language.ta.resx +++ b/mRemoteNG/Language/Language.ta.resx @@ -2429,16 +2429,31 @@ - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.tr-TR.resx b/mRemoteNG/Language/Language.tr-TR.resx index 2f4e23c4..fc9428b2 100644 --- a/mRemoteNG/Language/Language.tr-TR.resx +++ b/mRemoteNG/Language/Language.tr-TR.resx @@ -1641,16 +1641,31 @@ MRemoteNG şimdi kapanacak ve kurulum başlayacak. - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.uk.resx b/mRemoteNG/Language/Language.uk.resx index 96dda122..ee789c43 100644 --- a/mRemoteNG/Language/Language.uk.resx +++ b/mRemoteNG/Language/Language.uk.resx @@ -2015,16 +2015,31 @@ mRemoteNG зараз припинить роботу і почне процес - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.zh-CN.resx b/mRemoteNG/Language/Language.zh-CN.resx index 532b3a63..b1b6f074 100644 --- a/mRemoteNG/Language/Language.zh-CN.resx +++ b/mRemoteNG/Language/Language.zh-CN.resx @@ -2093,16 +2093,31 @@ mRemoteNG 将退出并安装更新。 - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Language/Language.zh-TW.resx b/mRemoteNG/Language/Language.zh-TW.resx index cc02db8a..ac4a7847 100644 --- a/mRemoteNG/Language/Language.zh-TW.resx +++ b/mRemoteNG/Language/Language.zh-TW.resx @@ -1588,16 +1588,31 @@ mRemoteNG 將立即結束並開始安裝。 - + - + - + - + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mRemoteNG/Tree/Root/RootNodeInfo.cs b/mRemoteNG/Tree/Root/RootNodeInfo.cs index 4f327b6d..2cf34641 100644 --- a/mRemoteNG/Tree/Root/RootNodeInfo.cs +++ b/mRemoteNG/Tree/Root/RootNodeInfo.cs @@ -14,8 +14,8 @@ namespace mRemoteNG.Tree.Root { private string _name = Language.Connections; private string _customPassword = ""; - private string _openbaoVaultToken = ""; - private string _openbaoVaultUrl = ""; + private string _vaultOpenbaoToken = ""; + private string _vaultOpenbaoUrl = ""; public RootNodeInfo(RootNodeType rootType) : this(rootType, Guid.NewGuid().ToString()) @@ -66,21 +66,21 @@ namespace mRemoteNG.Tree.Root [LocalizedAttributes.LocalizedCategory(nameof(Language.Miscellaneous)), Browsable(true), LocalizedAttributes.LocalizedDefaultValue(nameof(Language.Connections)), - LocalizedAttributes.LocalizedDisplayName(nameof(Language.OpenbaoVaultUrl)), - LocalizedAttributes.LocalizedDescription(nameof(Language.OpenbaoVaultUrlPropertyDescription))] - public string OpenbaoVaultUrl { - get => _openbaoVaultUrl; - set => _openbaoVaultUrl = value; + LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoUrl)), + LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoUrlPropertyDescription))] + public string VaultOpenbaoUrl { + get => _vaultOpenbaoUrl; + set => _vaultOpenbaoUrl = value; } [LocalizedAttributes.LocalizedCategory(nameof(Language.Miscellaneous)), Browsable(true), LocalizedAttributes.LocalizedDefaultValue(nameof(Language.Connections)), - LocalizedAttributes.LocalizedDisplayName(nameof(Language.OpenbaoVaultToken)), - LocalizedAttributes.LocalizedDescription(nameof(Language.OpenbaoVaultTokenPropertyDescription))] - public string OpenbaoVaultToken { - get => _openbaoVaultToken; - set => _openbaoVaultToken = value; + LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoToken)), + LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoTokenPropertyDescription))] + public string VaultOpenbaoToken { + get => _vaultOpenbaoToken; + set => _vaultOpenbaoToken = value; } #endregion diff --git a/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs b/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs index 1f1818ca..780b693d 100644 --- a/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs +++ b/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs @@ -19,11 +19,9 @@ using mRemoteNG.Tree.Root; using mRemoteNG.Resources.Language; using System.Runtime.Versioning; -namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid -{ +namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid { [SupportedOSPlatform("windows")] - public partial class ConnectionInfoPropertyGrid : FilteredPropertyGrid.FilteredPropertyGrid - { + public partial class ConnectionInfoPropertyGrid : FilteredPropertyGrid.FilteredPropertyGrid { private readonly Dictionary> _propertyCache = []; private ConnectionInfo _selectedConnectionInfo; private PropertyMode _propertyMode; @@ -32,11 +30,9 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid /// The currently being shown by this /// property grid. /// - public ConnectionInfo SelectedConnectionInfo - { + public ConnectionInfo SelectedConnectionInfo { get => _selectedConnectionInfo; - set - { + set { if (_selectedConnectionInfo == value) return; @@ -49,11 +45,9 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid /// /// Determines which set of properties this grid will display. /// - public PropertyMode PropertyMode - { + public PropertyMode PropertyMode { get => _propertyMode; - set - { + set { if (_propertyMode == value) return; _propertyMode = value; @@ -82,18 +76,15 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid /// public bool RootNodeSelected { get; private set; } - public ConnectionInfoPropertyGrid() - { + public ConnectionInfoPropertyGrid() { InitializeComponent(); PropertyValueChanged += pGrid_PropertyValueChanged; } - private void SetGridObject() - { + private void SetGridObject() { ClearFilters(); - switch (PropertyMode) - { + switch (PropertyMode) { case PropertyMode.Connection: default: SelectedObject = SelectedConnectionInfo; @@ -113,30 +104,24 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid ShowHideGridItems(); } - private void ShowHideGridItems() - { - try - { + private void ShowHideGridItems() { + try { if (SelectedConnectionInfo == null) return; - if (RootNodeSelected && PropertyMode == PropertyMode.Connection) - { - if (SelectedConnectionInfo is RootPuttySessionsNodeInfo) - { + if (RootNodeSelected && PropertyMode == PropertyMode.Connection) { + if (SelectedConnectionInfo is RootPuttySessionsNodeInfo) { BrowsableProperties = new[] { nameof(RootPuttySessionsNodeInfo.Name) }; - } - else if (SelectedConnectionInfo is RootNodeInfo) - { + } else if (SelectedConnectionInfo is RootNodeInfo) { BrowsableProperties = new[] { nameof(RootNodeInfo.Name), nameof(RootNodeInfo.Password), - nameof(RootNodeInfo.OpenbaoVaultUrl), - nameof(RootNodeInfo.OpenbaoVaultToken) + nameof(RootNodeInfo.VaultOpenbaoUrl), + nameof(RootNodeInfo.VaultOpenbaoToken) }; } @@ -154,8 +139,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid List strHide = new(); - if (PropertyMode == PropertyMode.Connection) - { + if (PropertyMode == PropertyMode.Connection) { // hide any inherited properties strHide.AddRange(SelectedConnectionInfo.Inheritance.GetEnabledInheritanceProperties()); @@ -164,8 +148,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid strHide.AddRange(SpecialExternalCredentialProviderExclusions()); // ReSharper disable once SwitchStatementMissingSomeCases - switch (SelectedConnectionInfo.Protocol) - { + switch (SelectedConnectionInfo.Protocol) { case ProtocolType.RDP: strHide.AddRange(SpecialRdpExclusions()); break; @@ -180,18 +163,14 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid if (SelectedConnectionInfo is PuttySessionInfo) strHide.Add(nameof(AbstractConnectionRecord.Favorite)); - } - else if (PropertyMode == PropertyMode.DefaultConnection) - { + } else if (PropertyMode == PropertyMode.DefaultConnection) { strHide.Add(nameof(AbstractConnectionRecord.Hostname)); strHide.Add(nameof(AbstractConnectionRecord.Name)); } HiddenProperties = strHide.ToArray(); Refresh(); - } - catch (Exception ex) - { + } catch (Exception ex) { Runtime.MessageCollector.AddMessage( MessageClass.ErrorMsg, Language.ConfigPropertyGridHideItemsFailed + @@ -199,8 +178,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid } } - private IEnumerable GetPropertiesForGridObject(object currentGridObject) - { + private IEnumerable GetPropertiesForGridObject(object currentGridObject) { if (_propertyCache.TryGetValue(currentGridObject.GetType(), out IEnumerable properties)) return properties; @@ -211,8 +189,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid return props; } - private bool IsValidForProtocol(PropertyInfo property, ProtocolType protocol, bool skipProtocolCheck) - { + private bool IsValidForProtocol(PropertyInfo property, ProtocolType protocol, bool skipProtocolCheck) { return property.GetCustomAttribute()?.Browsable != false && (skipProtocolCheck || property.GetCustomAttribute()? @@ -220,45 +197,38 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid .Contains(protocol) != false); } - private List SpecialExternalAddressProviderExclusions() - { + private List SpecialExternalAddressProviderExclusions() { List strHide = new(); // aws - if (SelectedConnectionInfo.ExternalAddressProvider != ExternalAddressProvider.AmazonWebServices) - { + if (SelectedConnectionInfo.ExternalAddressProvider != ExternalAddressProvider.AmazonWebServices) { strHide.Add(nameof(AbstractConnectionRecord.EC2InstanceId)); strHide.Add(nameof(AbstractConnectionRecord.EC2Region)); } return strHide; } - private List SpecialExternalCredentialProviderExclusions() - { + private List SpecialExternalCredentialProviderExclusions() { List strHide = new(); - if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.None) - { + if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.None) { strHide.Add(nameof(AbstractConnectionRecord.UserViaAPI)); - strHide.Add(nameof(AbstractConnectionRecord.VaultMount)); - strHide.Add(nameof(AbstractConnectionRecord.VaultRole)); - } - else if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.DelineaSecretServer - || SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.ClickstudiosPasswordState) - { + strHide.Add(nameof(AbstractConnectionRecord.VaultOpenbaoMount)); + strHide.Add(nameof(AbstractConnectionRecord.VaultOpenbaoRole)); + } else if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.DelineaSecretServer + || SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.ClickstudiosPasswordState) { strHide.Add(nameof(AbstractConnectionRecord.Username)); strHide.Add(nameof(AbstractConnectionRecord.Password)); strHide.Add(nameof(AbstractConnectionRecord.Domain)); - strHide.Add(nameof(AbstractConnectionRecord.VaultMount)); - strHide.Add(nameof(AbstractConnectionRecord.VaultRole)); - } - else if(SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.OnePassword) { - strHide.Add(nameof(AbstractConnectionRecord.VaultMount)); - strHide.Add(nameof(AbstractConnectionRecord.VaultRole)); - } - else if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { + strHide.Add(nameof(AbstractConnectionRecord.VaultOpenbaoMount)); + strHide.Add(nameof(AbstractConnectionRecord.VaultOpenbaoRole)); + } else if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.OnePassword) { + strHide.Add(nameof(AbstractConnectionRecord.VaultOpenbaoMount)); + strHide.Add(nameof(AbstractConnectionRecord.VaultOpenbaoRole)); + } else if (SelectedConnectionInfo.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { strHide.Add(nameof(AbstractConnectionRecord.UserViaAPI)); - strHide.Add(nameof(AbstractConnectionRecord.Username)); + if (SelectedConnectionInfo.VaultOpenbaoSecretEngine != VaultOpenbaoSecretEngine.Kv) + strHide.Add(nameof(AbstractConnectionRecord.Username)); strHide.Add(nameof(AbstractConnectionRecord.Password)); } return strHide; @@ -267,43 +237,34 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid /// /// /// - private List SpecialRdpExclusions() - { + private List SpecialRdpExclusions() { List strHide = new(); - if (SelectedConnectionInfo.RDPMinutesToIdleTimeout <= 0) - { + if (SelectedConnectionInfo.RDPMinutesToIdleTimeout <= 0) { strHide.Add(nameof(AbstractConnectionRecord.RDPAlertIdleTimeout)); } - if (SelectedConnectionInfo.RDGatewayUsageMethod == RDGatewayUsageMethod.Never) - { + if (SelectedConnectionInfo.RDGatewayUsageMethod == RDGatewayUsageMethod.Never) { strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayHostname)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayPassword)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUseConnectionCredentials)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayAccessToken)); - } - else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials == RDGatewayUseConnectionCredentials.Yes || - SelectedConnectionInfo.RDGatewayUseConnectionCredentials == RDGatewayUseConnectionCredentials.SmartCard) - { + } else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials == RDGatewayUseConnectionCredentials.Yes || + SelectedConnectionInfo.RDGatewayUseConnectionCredentials == RDGatewayUseConnectionCredentials.SmartCard) { strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayPassword)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayExternalCredentialProvider)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUserViaAPI)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayAccessToken)); - } - else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials == RDGatewayUseConnectionCredentials.ExternalCredentialProvider) - { + } else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials == RDGatewayUseConnectionCredentials.ExternalCredentialProvider) { strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayPassword)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayAccessToken)); - } - else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials == RDGatewayUseConnectionCredentials.AccessToken) - { + } else if (SelectedConnectionInfo.RDGatewayUseConnectionCredentials == RDGatewayUseConnectionCredentials.AccessToken) { strHide.Add(nameof(AbstractConnectionRecord.RDGatewayDomain)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayPassword)); strHide.Add(nameof(AbstractConnectionRecord.RDGatewayUsername)); @@ -312,23 +273,19 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid } if (!(SelectedConnectionInfo.Resolution == RDPResolutions.FitToWindow || - SelectedConnectionInfo.Resolution == RDPResolutions.Fullscreen)) - { + SelectedConnectionInfo.Resolution == RDPResolutions.Fullscreen)) { strHide.Add(nameof(AbstractConnectionRecord.AutomaticResize)); } - if (SelectedConnectionInfo.RedirectDiskDrives != RDPDiskDrives.Custom) - { + if (SelectedConnectionInfo.RedirectDiskDrives != RDPDiskDrives.Custom) { strHide.Add(nameof(AbstractConnectionRecord.RedirectDiskDrivesCustom)); } - if (SelectedConnectionInfo.RedirectSound != RDPSounds.BringToThisComputer) - { + if (SelectedConnectionInfo.RedirectSound != RDPSounds.BringToThisComputer) { strHide.Add(nameof(AbstractConnectionRecord.SoundQuality)); } - if (!SelectedConnectionInfo.UseVmId) - { + if (!SelectedConnectionInfo.UseVmId) { strHide.Add(nameof(AbstractConnectionRecord.VmId)); strHide.Add(nameof(AbstractConnectionRecord.UseEnhancedMode)); } @@ -336,17 +293,14 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid return strHide; } - private List SpecialVncExclusions() - { + private List SpecialVncExclusions() { List strHide = new(); - if (SelectedConnectionInfo.VNCAuthMode == ProtocolVNC.AuthMode.AuthVNC) - { + if (SelectedConnectionInfo.VNCAuthMode == ProtocolVNC.AuthMode.AuthVNC) { strHide.Add(nameof(AbstractConnectionRecord.Username)); strHide.Add(nameof(AbstractConnectionRecord.Domain)); } - if (SelectedConnectionInfo.VNCProxyType == ProtocolVNC.ProxyType.ProxyNone) - { + if (SelectedConnectionInfo.VNCProxyType == ProtocolVNC.ProxyType.ProxyNone) { strHide.Add(nameof(AbstractConnectionRecord.VNCProxyIP)); strHide.Add(nameof(AbstractConnectionRecord.VNCProxyPassword)); strHide.Add(nameof(AbstractConnectionRecord.VNCProxyPort)); @@ -356,19 +310,14 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid return strHide; } - private void UpdateConnectionInfoNode(PropertyValueChangedEventArgs e) - { + private void UpdateConnectionInfoNode(PropertyValueChangedEventArgs e) { if (IsShowingInheritance) return; - if (e.ChangedItem.Label == Language.Protocol) - { + if (e.ChangedItem.Label == Language.Protocol) { SelectedConnectionInfo.SetDefaultPort(); - } - else if (e.ChangedItem.Label == Language.Name) - { - if (Settings.Default.SetHostnameLikeDisplayName) - { + } else if (e.ChangedItem.Label == Language.Name) { + if (Settings.Default.SetHostnameLikeDisplayName) { if (!string.IsNullOrEmpty(SelectedConnectionInfo.Name)) SelectedConnectionInfo.Hostname = SelectedConnectionInfo.Name; } @@ -378,51 +327,41 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid DefaultConnectionInfo.Instance.SaveTo(Settings.Default, a => "ConDefault" + a); } - private void UpdateRootInfoNode(PropertyValueChangedEventArgs e) - { + private void UpdateRootInfoNode(PropertyValueChangedEventArgs e) { if (!(SelectedObject is RootNodeInfo rootInfo)) return; if (e.ChangedItem.PropertyDescriptor?.Name != "Password") return; - if (rootInfo.Password) - { + if (rootInfo.Password) { string passwordName = Properties.OptionsDBsPage.Default.UseSQLServer ? Language.SQLServer.TrimEnd(':') : Path.GetFileName(Runtime.ConnectionsService.GetStartupConnectionFileName()); Optional password = MiscTools.PasswordDialog(passwordName); // operation cancelled, dont set a password - if (!password.Any() || password.First().Length == 0) - { + if (!password.Any() || password.First().Length == 0) { rootInfo.Password = false; return; } rootInfo.PasswordString = password.First().ConvertToUnsecureString(); - } - else - { + } else { rootInfo.PasswordString = ""; } } - private void UpdateInheritanceNode() - { + private void UpdateInheritanceNode() { if (IsShowingDefaultProperties && IsShowingInheritance) DefaultConnectionInheritance.Instance.SaveTo(Settings.Default, a => "InhDefault" + a); } - private void pGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) - { - try - { + private void pGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { + try { UpdateConnectionInfoNode(e); UpdateRootInfoNode(e); UpdateInheritanceNode(); ShowHideGridItems(); - } - catch (Exception ex) - { + } catch (Exception ex) { Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ConfigPropertyGridValueFailed + Environment.NewLine + ex.Message, true); From b0f50b825f2ca3513aa6f358e77c499e5c949a40 Mon Sep 17 00:00:00 2001 From: "massimo.antonello" Date: Fri, 17 Oct 2025 16:14:06 +0200 Subject: [PATCH 6/7] used winform window for credentials like other connectors --- ExternalConnectors/ExternalConnectors.csproj | 3 + ExternalConnectors/VO/VaultOpenbao.cs | 37 +++- .../VO/VaultOpenbaoConnectionForm.Designer.cs | 184 ++++++++++++++++++ .../VO/VaultOpenbaoConnectionForm.cs | 13 ++ .../VO/VaultOpenbaoConnectionForm.resx | 120 ++++++++++++ mRemoteNG/Connection/Protocol/PuttyBase.cs | 7 +- .../Connection/Protocol/RDP/RdpProtocol.cs | 14 +- 7 files changed, 352 insertions(+), 26 deletions(-) create mode 100644 ExternalConnectors/VO/VaultOpenbaoConnectionForm.Designer.cs create mode 100644 ExternalConnectors/VO/VaultOpenbaoConnectionForm.cs create mode 100644 ExternalConnectors/VO/VaultOpenbaoConnectionForm.resx diff --git a/ExternalConnectors/ExternalConnectors.csproj b/ExternalConnectors/ExternalConnectors.csproj index b121be69..c6c49b4a 100644 --- a/ExternalConnectors/ExternalConnectors.csproj +++ b/ExternalConnectors/ExternalConnectors.csproj @@ -26,5 +26,8 @@ + + Form + diff --git a/ExternalConnectors/VO/VaultOpenbao.cs b/ExternalConnectors/VO/VaultOpenbao.cs index c41d9942..b39a1bc4 100644 --- a/ExternalConnectors/VO/VaultOpenbao.cs +++ b/ExternalConnectors/VO/VaultOpenbao.cs @@ -1,6 +1,8 @@ -using Newtonsoft.Json.Linq; +using Microsoft.Win32; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -15,10 +17,29 @@ namespace ExternalConnectors.VO { } public static class VaultOpenbao { - private static VaultClient GetClient(string url, string token) { + private static RegistryKey baseKey = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\mRemoteVaultOpenbao"); + private static string token = ""; + private static VaultClient GetClient() { + string url = (string)baseKey.GetValue("URL", ""); + if (string.IsNullOrEmpty(url) || string.IsNullOrEmpty(token)) { + using VaultOpenbaoConnectionForm voForm = new(); + voForm.tbUrl.Text = url; + _ = voForm.ShowDialog(); + if (voForm.DialogResult != DialogResult.OK) + throw new VaultOpenbaoException($"No credential provided", null); + url = voForm.tbUrl.Text; + token = voForm.tbToken.Text; + } IAuthMethodInfo authMethod = new TokenAuthMethodInfo(token); var vaultClientSettings = new VaultClientSettings(url, authMethod); - return new(vaultClientSettings); + VaultClient client = new(vaultClientSettings); + var sysInfo = client.V1.System.GetInitStatusAsync().Result; + if (!sysInfo) { + MessageBox.Show("Test connection failed", "Vault Openbao", MessageBoxButtons.OK, MessageBoxIcon.Error); + throw new VaultOpenbaoException($"Url not working", null); + } + baseKey.SetValue("URL", url); + return client; } private static void TestMountType(VaultClient vaultClient, string mount, int VaultOpenbaoSecretEngine) { switch (vaultClient.V1.System.GetSecretBackendAsync(mount).Result.Data.Type.Type) { @@ -28,8 +49,8 @@ namespace ExternalConnectors.VO { throw new VaultOpenbaoException($"Backend of type ldap does not match expected type {VaultOpenbaoSecretEngine}", null); } } - public static void ReadPasswordSSH(string url, string token, int secretEngine, string mount, string role, string username, out string password) { - VaultClient vaultClient = GetClient(url, token); + public static void ReadPasswordSSH(int secretEngine, string mount, string role, string username, out string password) { + VaultClient vaultClient = GetClient(); TestMountType(vaultClient, mount, secretEngine); switch (secretEngine) { case 0: @@ -45,8 +66,8 @@ namespace ExternalConnectors.VO { } } - public static void ReadPasswordRDP(string url, string token, int secretEngine, string mount, string role, ref string username, out string password) { - VaultClient vaultClient = GetClient(url, token); + public static void ReadPasswordRDP(int secretEngine, string mount, string role, ref string username, out string password) { + VaultClient vaultClient = GetClient(); TestMountType(vaultClient, mount, secretEngine); switch (secretEngine) { case 0: @@ -63,7 +84,7 @@ namespace ExternalConnectors.VO { username = ldaps.Data.Username; password = ldaps.Data.Password; return; - + default: throw new VaultOpenbaoException($"Backend of type {secretEngine} is not supported", null); } diff --git a/ExternalConnectors/VO/VaultOpenbaoConnectionForm.Designer.cs b/ExternalConnectors/VO/VaultOpenbaoConnectionForm.Designer.cs new file mode 100644 index 00000000..957d291f --- /dev/null +++ b/ExternalConnectors/VO/VaultOpenbaoConnectionForm.Designer.cs @@ -0,0 +1,184 @@ +namespace ExternalConnectors.VO +{ + partial class VaultOpenbaoConnectionForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + tbUrl = new TextBox(); + tbToken = new TextBox(); + btnOK = new Button(); + btnCancel = new Button(); + tableLayoutPanel1 = new TableLayoutPanel(); + label1 = new Label(); + label2 = new Label(); + tableLayoutPanel2 = new TableLayoutPanel(); + tableLayoutPanel1.SuspendLayout(); + tableLayoutPanel2.SuspendLayout(); + SuspendLayout(); + // + // tbUrl + // + tbUrl.Dock = DockStyle.Fill; + tbUrl.Location = new Point(174, 5); + tbUrl.Margin = new Padding(5); + tbUrl.Name = "tbUrl"; + tbUrl.Size = new Size(559, 27); + tbUrl.TabIndex = 0; + // + // tbToken + // + tbToken.Dock = DockStyle.Fill; + tbToken.Location = new Point(174, 57); + tbToken.Margin = new Padding(5); + tbToken.Name = "tbToken"; + tbToken.Size = new Size(559, 27); + tbToken.TabIndex = 2; + tbToken.UseSystemPasswordChar = true; + // + // btnOK + // + btnOK.Anchor = AnchorStyles.Right; + btnOK.DialogResult = DialogResult.OK; + btnOK.Location = new Point(250, 16); + btnOK.Margin = new Padding(5); + btnOK.Name = "btnOK"; + btnOK.Size = new Size(101, 35); + btnOK.TabIndex = 10; + btnOK.Text = "OK"; + btnOK.UseVisualStyleBackColor = true; + // + // btnCancel + // + btnCancel.Anchor = AnchorStyles.Left; + btnCancel.DialogResult = DialogResult.Cancel; + btnCancel.Location = new Point(387, 16); + btnCancel.Margin = new Padding(5); + btnCancel.Name = "btnCancel"; + btnCancel.Size = new Size(101, 35); + btnCancel.TabIndex = 11; + btnCancel.Text = "Cancel"; + btnCancel.UseVisualStyleBackColor = true; + // + // tableLayoutPanel1 + // + tableLayoutPanel1.ColumnCount = 2; + tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 22.92994F)); + tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 77.07006F)); + tableLayoutPanel1.Controls.Add(label1, 0, 0); + tableLayoutPanel1.Controls.Add(label2, 0, 1); + tableLayoutPanel1.Controls.Add(tbUrl, 1, 0); + tableLayoutPanel1.Controls.Add(tbToken, 1, 1); + tableLayoutPanel1.Dock = DockStyle.Top; + tableLayoutPanel1.Location = new Point(0, 0); + tableLayoutPanel1.Margin = new Padding(5); + tableLayoutPanel1.Name = "tableLayoutPanel1"; + tableLayoutPanel1.RowCount = 3; + tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); + tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); + tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 31F)); + tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 31F)); + tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 31F)); + tableLayoutPanel1.Size = new Size(738, 136); + tableLayoutPanel1.TabIndex = 12; + // + // label1 + // + label1.AutoSize = true; + label1.Dock = DockStyle.Fill; + label1.Location = new Point(5, 0); + label1.Margin = new Padding(5, 0, 5, 0); + label1.Name = "label1"; + label1.Size = new Size(159, 52); + label1.TabIndex = 2; + label1.Text = "Server URL"; + label1.TextAlign = ContentAlignment.MiddleLeft; + // + // label2 + // + label2.AutoSize = true; + label2.Dock = DockStyle.Fill; + label2.Location = new Point(5, 52); + label2.Margin = new Padding(5, 0, 5, 0); + label2.Name = "label2"; + label2.Size = new Size(159, 52); + label2.TabIndex = 4; + label2.Text = "Access Token"; + label2.TextAlign = ContentAlignment.MiddleLeft; + // + // tableLayoutPanel2 + // + tableLayoutPanel2.ColumnCount = 5; + tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 106F)); + tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); + tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 26F)); + tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F)); + tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 106F)); + tableLayoutPanel2.Controls.Add(btnOK, 1, 0); + tableLayoutPanel2.Controls.Add(btnCancel, 3, 0); + tableLayoutPanel2.Dock = DockStyle.Bottom; + tableLayoutPanel2.Location = new Point(0, 149); + tableLayoutPanel2.Margin = new Padding(5); + tableLayoutPanel2.Name = "tableLayoutPanel2"; + tableLayoutPanel2.RowCount = 1; + tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); + tableLayoutPanel2.Size = new Size(738, 67); + tableLayoutPanel2.TabIndex = 13; + // + // VaultOpenbaoConnectionForm + // + AcceptButton = btnOK; + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(738, 216); + Controls.Add(tableLayoutPanel2); + Controls.Add(tableLayoutPanel1); + FormBorderStyle = FormBorderStyle.FixedDialog; + Margin = new Padding(5); + MaximizeBox = false; + MinimizeBox = false; + Name = "VaultOpenbaoConnectionForm"; + SizeGripStyle = SizeGripStyle.Hide; + Text = "Vault/Openbao API Login Data"; + Activated += VaultOpenbaoConnectionForm_Activated; + tableLayoutPanel1.ResumeLayout(false); + tableLayoutPanel1.PerformLayout(); + tableLayoutPanel2.ResumeLayout(false); + ResumeLayout(false); + + } + + #endregion + + public System.Windows.Forms.TextBox tbUrl; + public System.Windows.Forms.TextBox tbToken; + private System.Windows.Forms.Button btnOK; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + } +} \ No newline at end of file diff --git a/ExternalConnectors/VO/VaultOpenbaoConnectionForm.cs b/ExternalConnectors/VO/VaultOpenbaoConnectionForm.cs new file mode 100644 index 00000000..233ba1e5 --- /dev/null +++ b/ExternalConnectors/VO/VaultOpenbaoConnectionForm.cs @@ -0,0 +1,13 @@ +namespace ExternalConnectors.VO +{ + public partial class VaultOpenbaoConnectionForm : Form { + public VaultOpenbaoConnectionForm() { + InitializeComponent(); + + } + + private void VaultOpenbaoConnectionForm_Activated(object sender, EventArgs e) { + tbUrl.Focus(); + } + } +} diff --git a/ExternalConnectors/VO/VaultOpenbaoConnectionForm.resx b/ExternalConnectors/VO/VaultOpenbaoConnectionForm.resx new file mode 100644 index 00000000..8b2ff64a --- /dev/null +++ b/ExternalConnectors/VO/VaultOpenbaoConnectionForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/mRemoteNG/Connection/Protocol/PuttyBase.cs b/mRemoteNG/Connection/Protocol/PuttyBase.cs index b4a2dba6..5bdc7163 100644 --- a/mRemoteNG/Connection/Protocol/PuttyBase.cs +++ b/mRemoteNG/Connection/Protocol/PuttyBase.cs @@ -163,12 +163,7 @@ namespace mRemoteNG.Connection.Protocol } else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { try { - RootNodeInfo? rootNode = InterfaceControl.Info?.GetRootParent() as RootNodeInfo; - if (rootNode == null) { - Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); - return false; - } - ExternalConnectors.VO.VaultOpenbao.ReadPasswordSSH(rootNode.VaultOpenbaoUrl, rootNode.VaultOpenbaoToken, (int)InterfaceControl.Info?.VaultOpenbaoSecretEngine, InterfaceControl.Info?.VaultOpenbaoMount ?? "", InterfaceControl.Info?.VaultOpenbaoRole ?? "", InterfaceControl.Info?.Username ?? "root", out password); + ExternalConnectors.VO.VaultOpenbao.ReadPasswordSSH((int)InterfaceControl.Info?.VaultOpenbaoSecretEngine, InterfaceControl.Info?.VaultOpenbaoMount ?? "", InterfaceControl.Info?.VaultOpenbaoRole ?? "", InterfaceControl.Info?.Username ?? "root", out password); } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); } diff --git a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs index a3dc8a96..9a8fcb8c 100644 --- a/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs +++ b/mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs @@ -483,14 +483,9 @@ namespace mRemoteNG.Connection.Protocol.RDP else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { try { - RootNodeInfo? rootNode = connectionInfo?.GetRootParent() as RootNodeInfo; - if (rootNode == null) { - Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); - return; - } if (connectionInfo.VaultOpenbaoSecretEngine == VaultOpenbaoSecretEngine.Kv) gwu = connectionInfo.RDGatewayUsername; - ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP(rootNode.VaultOpenbaoUrl, rootNode.VaultOpenbaoToken, (int)connectionInfo.VaultOpenbaoSecretEngine, connectionInfo.VaultOpenbaoMount, connectionInfo.VaultOpenbaoRole, ref gwu, out gwp); + ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP((int)connectionInfo.VaultOpenbaoSecretEngine, connectionInfo.VaultOpenbaoMount, connectionInfo.VaultOpenbaoRole, ref gwu, out gwp); } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); } @@ -609,14 +604,9 @@ namespace mRemoteNG.Connection.Protocol.RDP } else if (InterfaceControl.Info.ExternalCredentialProvider == ExternalCredentialProvider.VaultOpenbao) { try { - RootNodeInfo? rootNode = connectionInfo?.GetRootParent() as RootNodeInfo; - if (rootNode == null) { - Event_ErrorOccured(this, "Secret Server Interface Error: No valid Openbao/Vault data found in root node.", 0); - return; - } if(connectionInfo.VaultOpenbaoSecretEngine == VaultOpenbaoSecretEngine.Kv) userName = connectionInfo?.Username ?? ""; - ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP(rootNode.VaultOpenbaoUrl, rootNode.VaultOpenbaoToken, (int)connectionInfo.VaultOpenbaoSecretEngine, connectionInfo?.VaultOpenbaoMount ?? "", connectionInfo?.VaultOpenbaoRole ?? "", ref userName, out password); + ExternalConnectors.VO.VaultOpenbao.ReadPasswordRDP((int)connectionInfo.VaultOpenbaoSecretEngine, connectionInfo?.VaultOpenbaoMount ?? "", connectionInfo?.VaultOpenbaoRole ?? "", ref userName, out password); } catch (ExternalConnectors.VO.VaultOpenbaoException ex) { Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0); } From 7478537f3e271c312b7aa5ddc2c61f6c23335c75 Mon Sep 17 00:00:00 2001 From: "massimo.antonello" Date: Fri, 17 Oct 2025 16:18:57 +0200 Subject: [PATCH 7/7] Revert RootNode Properties --- .../Xml/XmlConnectionsDeserializer.cs | 1 - .../Xml/XmlRootNodeSerializer.cs | 1 - mRemoteNG/Language/Language.Designer.cs | 54 +++++++------------ mRemoteNG/Language/Language.cs-CZ.resx | 6 --- mRemoteNG/Language/Language.de.resx | 6 --- mRemoteNG/Language/Language.el.resx | 6 --- mRemoteNG/Language/Language.es-AR.resx | 6 --- mRemoteNG/Language/Language.es.resx | 6 --- mRemoteNG/Language/Language.fi-FI.resx | 6 --- mRemoteNG/Language/Language.fr.resx | 6 --- mRemoteNG/Language/Language.hu.resx | 6 --- mRemoteNG/Language/Language.it.resx | 6 --- mRemoteNG/Language/Language.ja-JP.resx | 6 --- mRemoteNG/Language/Language.ko-KR.resx | 6 --- mRemoteNG/Language/Language.lt.resx | 6 --- mRemoteNG/Language/Language.nb-NO.resx | 6 --- mRemoteNG/Language/Language.nl.resx | 6 --- mRemoteNG/Language/Language.pl.resx | 6 --- mRemoteNG/Language/Language.pt-BR.resx | 6 --- mRemoteNG/Language/Language.pt.resx | 6 --- mRemoteNG/Language/Language.resx | 6 --- mRemoteNG/Language/Language.ru.resx | 6 --- mRemoteNG/Language/Language.sv-SE.resx | 6 --- mRemoteNG/Language/Language.ta.resx | 6 --- mRemoteNG/Language/Language.tr-TR.resx | 6 --- mRemoteNG/Language/Language.uk.resx | 6 --- mRemoteNG/Language/Language.zh-CN.resx | 6 --- mRemoteNG/Language/Language.zh-TW.resx | 6 --- mRemoteNG/Tree/Root/RootNodeInfo.cs | 22 -------- .../ConnectionInfoPropertyGrid.cs | 4 +- 30 files changed, 19 insertions(+), 213 deletions(-) diff --git a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs index 97d15dde..8b4b523f 100644 --- a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs +++ b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs @@ -120,7 +120,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml private void InitializeRootNode(XmlElement connectionsRootElement) { _rootNodeInfo.Name = connectionsRootElement?.Attributes["Name"]?.Value.Trim(); - _rootNodeInfo.VaultOpenbaoUrl = connectionsRootElement?.Attributes["VaultOpenbaoUrl"]?.Value.Trim(); } private void CreateDecryptor(RootNodeInfo rootNodeInfo, XmlElement connectionsRootElement = null) diff --git a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs index 8b38f6ef..a28813eb 100644 --- a/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs +++ b/mRemoteNG/Config/Serializers/ConnectionSerializers/Xml/XmlRootNodeSerializer.cs @@ -15,7 +15,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml XElement element = new(xmlNamespace + "Connections"); element.Add(new XAttribute(XNamespace.Xmlns + "mrng", xmlNamespace)); element.Add(new XAttribute(XName.Get("Name"), rootNodeInfo.Name)); - element.Add(new XAttribute(XName.Get("VaultOpenbaoUrl"), rootNodeInfo.VaultOpenbaoUrl)); element.Add(new XAttribute(XName.Get("Export"), "false")); element.Add(new XAttribute(XName.Get("EncryptionEngine"), cryptographyProvider.CipherEngine)); element.Add(new XAttribute(XName.Get("BlockCipherMode"), cryptographyProvider.CipherMode)); diff --git a/mRemoteNG/Language/Language.Designer.cs b/mRemoteNG/Language/Language.Designer.cs index d69a9c50..f4071952 100644 --- a/mRemoteNG/Language/Language.Designer.cs +++ b/mRemoteNG/Language/Language.Designer.cs @@ -1609,6 +1609,15 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Discard. + /// + internal static string Discard { + get { + return ResourceManager.GetString("Discard", resourceCulture); + } + } + /// /// Looks up a localized string similar to Disconnect. /// @@ -5775,24 +5784,6 @@ namespace mRemoteNG.Resources.Language { } } - /// - /// Looks up a localized string similar to Do you want to save the changes made to the options?. - /// - internal static string SaveOptionsBeforeClosing { - get { - return ResourceManager.GetString("SaveOptionsBeforeClosing", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Discard. - /// - internal static string Discard { - get { - return ResourceManager.GetString("Discard", resourceCulture); - } - } - /// /// Looks up a localized string similar to SaveConnectionsOnExit. /// @@ -5820,6 +5811,15 @@ namespace mRemoteNG.Resources.Language { } } + /// + /// Looks up a localized string similar to Do you want to save the changes made to the options?. + /// + internal static string SaveOptionsBeforeClosing { + get { + return ResourceManager.GetString("SaveOptionsBeforeClosing", resourceCulture); + } + } + /// /// Looks up a localized string similar to Screen. /// @@ -6973,24 +6973,6 @@ namespace mRemoteNG.Resources.Language { } } - /// - /// Looks up a localized string similar to Vault/Openbao Url. - /// - internal static string VaultOpenbaoUrl { - get { - return ResourceManager.GetString("VaultOpenbaoUrl", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The URL of the Vault/Openbao server to retrieve credentials. - /// - internal static string VaultOpenbaoUrlPropertyDescription { - get { - return ResourceManager.GetString("VaultOpenbaoUrlPropertyDescription", resourceCulture); - } - } - /// /// Looks up a localized string similar to Verify:. /// diff --git a/mRemoteNG/Language/Language.cs-CZ.resx b/mRemoteNG/Language/Language.cs-CZ.resx index a324506e..99f20fa0 100644 --- a/mRemoteNG/Language/Language.cs-CZ.resx +++ b/mRemoteNG/Language/Language.cs-CZ.resx @@ -1900,12 +1900,6 @@ mRemoteNG se nyní ukončí a zahájí instalaci. - - - - - - diff --git a/mRemoteNG/Language/Language.de.resx b/mRemoteNG/Language/Language.de.resx index eaf5cbf3..7c3b9c4d 100644 --- a/mRemoteNG/Language/Language.de.resx +++ b/mRemoteNG/Language/Language.de.resx @@ -2069,12 +2069,6 @@ Nightly umfasst Alphas, Betas und Release Candidates. - - - - - - diff --git a/mRemoteNG/Language/Language.el.resx b/mRemoteNG/Language/Language.el.resx index 456b4941..fb250889 100644 --- a/mRemoteNG/Language/Language.el.resx +++ b/mRemoteNG/Language/Language.el.resx @@ -292,12 +292,6 @@ - - - - - - diff --git a/mRemoteNG/Language/Language.es-AR.resx b/mRemoteNG/Language/Language.es-AR.resx index 536c97a9..78d0838d 100644 --- a/mRemoteNG/Language/Language.es-AR.resx +++ b/mRemoteNG/Language/Language.es-AR.resx @@ -331,12 +331,6 @@ - - - - - - diff --git a/mRemoteNG/Language/Language.es.resx b/mRemoteNG/Language/Language.es.resx index c3e70b6e..da5ba8b1 100644 --- a/mRemoteNG/Language/Language.es.resx +++ b/mRemoteNG/Language/Language.es.resx @@ -1560,12 +1560,6 @@ mRemoteNG ahora se cerrará y comenzará la instalación. - - - - - - diff --git a/mRemoteNG/Language/Language.fi-FI.resx b/mRemoteNG/Language/Language.fi-FI.resx index d8ed19cc..51634a40 100644 --- a/mRemoteNG/Language/Language.fi-FI.resx +++ b/mRemoteNG/Language/Language.fi-FI.resx @@ -157,12 +157,6 @@ - - - - - - diff --git a/mRemoteNG/Language/Language.fr.resx b/mRemoteNG/Language/Language.fr.resx index e68e89d1..ea7ed8ff 100644 --- a/mRemoteNG/Language/Language.fr.resx +++ b/mRemoteNG/Language/Language.fr.resx @@ -2172,12 +2172,6 @@ Le canal nightly inclut les versions alpha, beta et release candidates. - - - - - - diff --git a/mRemoteNG/Language/Language.hu.resx b/mRemoteNG/Language/Language.hu.resx index 56870233..847545ce 100644 --- a/mRemoteNG/Language/Language.hu.resx +++ b/mRemoteNG/Language/Language.hu.resx @@ -352,12 +352,6 @@ - - - - - - diff --git a/mRemoteNG/Language/Language.it.resx b/mRemoteNG/Language/Language.it.resx index 6bc51d94..ba541242 100644 --- a/mRemoteNG/Language/Language.it.resx +++ b/mRemoteNG/Language/Language.it.resx @@ -1578,12 +1578,6 @@ mRemoteNG verrà chiuso e l'installazione avrà inizio. - - - - - - diff --git a/mRemoteNG/Language/Language.ja-JP.resx b/mRemoteNG/Language/Language.ja-JP.resx index 56b6f21b..5431613e 100644 --- a/mRemoteNG/Language/Language.ja-JP.resx +++ b/mRemoteNG/Language/Language.ja-JP.resx @@ -1735,12 +1735,6 @@ mRemoteNGを終了してインストールを開始します - - - - - - diff --git a/mRemoteNG/Language/Language.ko-KR.resx b/mRemoteNG/Language/Language.ko-KR.resx index 3d90db05..4e1f9d39 100644 --- a/mRemoteNG/Language/Language.ko-KR.resx +++ b/mRemoteNG/Language/Language.ko-KR.resx @@ -1825,12 +1825,6 @@ mRemoteNG는 이제 종료되고 설치로 시작됩니다. - - - - - - diff --git a/mRemoteNG/Language/Language.lt.resx b/mRemoteNG/Language/Language.lt.resx index 4cedd646..ecb2fd46 100644 --- a/mRemoteNG/Language/Language.lt.resx +++ b/mRemoteNG/Language/Language.lt.resx @@ -247,12 +247,6 @@ Nightly Channel includes Alphas, Betas & Release Candidates. - - - - - - diff --git a/mRemoteNG/Language/Language.nb-NO.resx b/mRemoteNG/Language/Language.nb-NO.resx index 76748c96..90a78863 100644 --- a/mRemoteNG/Language/Language.nb-NO.resx +++ b/mRemoteNG/Language/Language.nb-NO.resx @@ -2024,12 +2024,6 @@ Nightly-kanalen inkluderer alpha-, beta- og release candidate-versjoner. - - - - - - diff --git a/mRemoteNG/Language/Language.nl.resx b/mRemoteNG/Language/Language.nl.resx index 9b758081..b4ed2e91 100644 --- a/mRemoteNG/Language/Language.nl.resx +++ b/mRemoteNG/Language/Language.nl.resx @@ -1607,12 +1607,6 @@ mRemoteNG zal nu worden gesloten en beginnen met de installatie. - - - - - - diff --git a/mRemoteNG/Language/Language.pl.resx b/mRemoteNG/Language/Language.pl.resx index b3eab02f..a9c3fb64 100644 --- a/mRemoteNG/Language/Language.pl.resx +++ b/mRemoteNG/Language/Language.pl.resx @@ -2378,12 +2378,6 @@ Kanał nocny obejmuje wersje alfa, beta i RC (gotowe do wydania). - - - - - - diff --git a/mRemoteNG/Language/Language.pt-BR.resx b/mRemoteNG/Language/Language.pt-BR.resx index c1778b52..b0de4ec9 100644 --- a/mRemoteNG/Language/Language.pt-BR.resx +++ b/mRemoteNG/Language/Language.pt-BR.resx @@ -388,12 +388,6 @@ - - - - - - diff --git a/mRemoteNG/Language/Language.pt.resx b/mRemoteNG/Language/Language.pt.resx index 0dbb7ce1..daf5c5ae 100644 --- a/mRemoteNG/Language/Language.pt.resx +++ b/mRemoteNG/Language/Language.pt.resx @@ -1573,12 +1573,6 @@ - - - - - - diff --git a/mRemoteNG/Language/Language.resx b/mRemoteNG/Language/Language.resx index 43f705b7..aafda966 100644 --- a/mRemoteNG/Language/Language.resx +++ b/mRemoteNG/Language/Language.resx @@ -2494,12 +2494,6 @@ Nightly Channel includes Alphas, Betas & Release Candidates. Token to access Vault/Openbao server - - Vault/Openbao Url - - - The URL of the Vault/Openbao server to retrieve credentials - Vault/Openbao Secret Engine diff --git a/mRemoteNG/Language/Language.ru.resx b/mRemoteNG/Language/Language.ru.resx index fa87d548..e08d0a06 100644 --- a/mRemoteNG/Language/Language.ru.resx +++ b/mRemoteNG/Language/Language.ru.resx @@ -2017,12 +2017,6 @@ mRemoteNG сейчас прекратит работу и начнет проц - - - - - - diff --git a/mRemoteNG/Language/Language.sv-SE.resx b/mRemoteNG/Language/Language.sv-SE.resx index 144efce3..ec208978 100644 --- a/mRemoteNG/Language/Language.sv-SE.resx +++ b/mRemoteNG/Language/Language.sv-SE.resx @@ -2191,12 +2191,6 @@ Nattliga kanalen inkluderar Alfa, Betor & Utgåvokandidater. - - - - - - diff --git a/mRemoteNG/Language/Language.ta.resx b/mRemoteNG/Language/Language.ta.resx index 85dee411..c2aec0f8 100644 --- a/mRemoteNG/Language/Language.ta.resx +++ b/mRemoteNG/Language/Language.ta.resx @@ -2435,12 +2435,6 @@ - - - - - - diff --git a/mRemoteNG/Language/Language.tr-TR.resx b/mRemoteNG/Language/Language.tr-TR.resx index 43270bec..c95e4919 100644 --- a/mRemoteNG/Language/Language.tr-TR.resx +++ b/mRemoteNG/Language/Language.tr-TR.resx @@ -1647,12 +1647,6 @@ MRemoteNG şimdi kapanacak ve kurulum başlayacak. - - - - - - diff --git a/mRemoteNG/Language/Language.uk.resx b/mRemoteNG/Language/Language.uk.resx index 056a7567..8e4b08ab 100644 --- a/mRemoteNG/Language/Language.uk.resx +++ b/mRemoteNG/Language/Language.uk.resx @@ -2021,12 +2021,6 @@ mRemoteNG зараз припинить роботу і почне процес - - - - - - diff --git a/mRemoteNG/Language/Language.zh-CN.resx b/mRemoteNG/Language/Language.zh-CN.resx index cb93d77c..20d5517d 100644 --- a/mRemoteNG/Language/Language.zh-CN.resx +++ b/mRemoteNG/Language/Language.zh-CN.resx @@ -2099,12 +2099,6 @@ mRemoteNG 将退出并安装更新。 - - - - - - diff --git a/mRemoteNG/Language/Language.zh-TW.resx b/mRemoteNG/Language/Language.zh-TW.resx index df2c0a6b..c28660a0 100644 --- a/mRemoteNG/Language/Language.zh-TW.resx +++ b/mRemoteNG/Language/Language.zh-TW.resx @@ -1594,12 +1594,6 @@ mRemoteNG 將立即結束並開始安裝。 - - - - - - diff --git a/mRemoteNG/Tree/Root/RootNodeInfo.cs b/mRemoteNG/Tree/Root/RootNodeInfo.cs index a035e6b5..c24fda3b 100644 --- a/mRemoteNG/Tree/Root/RootNodeInfo.cs +++ b/mRemoteNG/Tree/Root/RootNodeInfo.cs @@ -14,8 +14,6 @@ namespace mRemoteNG.Tree.Root { private string _name = Language.Connections; private string _customPassword = ""; - private string _vaultOpenbaoToken = ""; - private string _vaultOpenbaoUrl = ""; public RootNodeInfo(RootNodeType rootType) : this(rootType, Guid.NewGuid().ToString()) @@ -63,26 +61,6 @@ namespace mRemoteNG.Tree.Root ? TreeNodeType.Root : TreeNodeType.PuttyRoot; } - [LocalizedAttributes.LocalizedCategory(nameof(Language.Miscellaneous)), - Browsable(true), - LocalizedAttributes.LocalizedDefaultValue(nameof(Language.Connections)), - LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoUrl)), - LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoUrlPropertyDescription))] - public string VaultOpenbaoUrl { - get => _vaultOpenbaoUrl; - set => _vaultOpenbaoUrl = value; - } - - [LocalizedAttributes.LocalizedCategory(nameof(Language.Miscellaneous)), - Browsable(true), - LocalizedAttributes.LocalizedDefaultValue(nameof(Language.Connections)), - LocalizedAttributes.LocalizedDisplayName(nameof(Language.VaultOpenbaoToken)), - LocalizedAttributes.LocalizedDescription(nameof(Language.VaultOpenbaoTokenPropertyDescription))] - public string VaultOpenbaoToken { - get => _vaultOpenbaoToken; - set => _vaultOpenbaoToken = value; - } - #endregion } } \ No newline at end of file diff --git a/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs b/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs index 780b693d..7750a4e2 100644 --- a/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs +++ b/mRemoteNG/UI/Controls/ConnectionInfoPropertyGrid/ConnectionInfoPropertyGrid.cs @@ -119,9 +119,7 @@ namespace mRemoteNG.UI.Controls.ConnectionInfoPropertyGrid { BrowsableProperties = new[] { nameof(RootNodeInfo.Name), - nameof(RootNodeInfo.Password), - nameof(RootNodeInfo.VaultOpenbaoUrl), - nameof(RootNodeInfo.VaultOpenbaoToken) + nameof(RootNodeInfo.Password) }; }