Merge remote-tracking branch 'origin/v1.78.2-dev' into feature/VaultOpenbao-Connector

# Conflicts:
#	mRemoteNG/Language/Language.de.resx
#	mRemoteNG/Language/Language.el.resx
#	mRemoteNG/Language/Language.es.resx
#	mRemoteNG/Language/Language.fi-FI.resx
#	mRemoteNG/Language/Language.fr.resx
#	mRemoteNG/Language/Language.hu.resx
#	mRemoteNG/Language/Language.it.resx
#	mRemoteNG/Language/Language.ja-JP.resx
#	mRemoteNG/Language/Language.ko-KR.resx
#	mRemoteNG/Language/Language.lt.resx
#	mRemoteNG/Language/Language.nb-NO.resx
#	mRemoteNG/Language/Language.nl.resx
#	mRemoteNG/Language/Language.pl.resx
#	mRemoteNG/Language/Language.pt-BR.resx
#	mRemoteNG/Language/Language.pt.resx
#	mRemoteNG/Language/Language.resx
#	mRemoteNG/Language/Language.sv-SE.resx
#	mRemoteNG/Language/Language.ta.resx
#	mRemoteNG/Language/Language.tr-TR.resx
#	mRemoteNG/Language/Language.uk.resx
#	mRemoteNG/Language/Language.zh-CN.resx
#	mRemoteNG/Language/Language.zh-TW.resx
This commit is contained in:
massimo.antonello
2025-10-15 14:52:58 +02:00
28 changed files with 192 additions and 118 deletions

View File

@@ -1,7 +1,9 @@
# Contributors
## Current mRemoteNG dev team
[Dimitrij Gorodeckij](https://github.com/Kvarkas)
## Past Contributors
[David Sparer](http://github.com/sparerd)
[Sean Kaim](http://github.com/kmscode)
[Faryan Rezagholi](http://github.com/farosch)
@@ -28,8 +30,6 @@ Tony Lambert
[MitchellBot](http://github.com/MitchellBot)
[Filippo Ferrazini](http://github.com/Filippo125)
## Past Contributors
Felix Deimel - mRemote original developer
Riley McArdle - mRemoteNG original developer

View File

@@ -6,7 +6,7 @@
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="AWSSDK.Core" Version="4.0.1" />
<PackageVersion Include="AWSSDK.EC2" Version="4.0.41" />
<PackageVersion Include="AWSSDK.EC2" Version="4.0.42" />
<PackageVersion Include="BouncyCastle.Cryptography" Version="2.6.2" />
<PackageVersion Include="Castle.Core" Version="5.2.1" />
<PackageVersion Include="ConsoleControl" Version="1.3.0" />
@@ -23,8 +23,8 @@
<PackageVersion Include="Microsoft.Data.SqlClient" Version="6.1.2" />
<PackageVersion Include="Microsoft.Data.SqlClient.SNI" Version="6.0.2" />
<PackageVersion Include="Microsoft.Data.SqlClient.SNI.runtime" Version="6.0.2" />
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="9.0.9" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.9" />
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="9.0.10" />
<PackageVersion Include="Microsoft.Extensions.Configuration.UserSecrets" Version="9.0.10" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.0" />
<PackageVersion Include="Microsoft.NETCore.Platforms" Version="7.0.4" />
<PackageVersion Include="Microsoft.NETCore.Targets" Version="5.0.0" />
@@ -58,18 +58,18 @@
<PackageVersion Include="runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl" Version="4.3.3" />
<PackageVersion Include="SSH.NET" Version="2025.0.0" />
<PackageVersion Include="System.Buffers" Version="4.6.1" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.9" />
<PackageVersion Include="System.Collections.Immutable" Version="9.0.9" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="9.0.10" />
<PackageVersion Include="System.Collections.Immutable" Version="9.0.10" />
<PackageVersion Include="System.Console" Version="4.3.1" />
<PackageVersion Include="System.Data.Common" Version="4.3.0" />
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.9" />
<PackageVersion Include="System.Drawing.Common" Version="9.0.9" />
<PackageVersion Include="System.Diagnostics.EventLog" Version="9.0.9" />
<PackageVersion Include="System.DirectoryServices" Version="9.0.9" />
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="9.0.10" />
<PackageVersion Include="System.Drawing.Common" Version="9.0.10" />
<PackageVersion Include="System.Diagnostics.EventLog" Version="9.0.10" />
<PackageVersion Include="System.DirectoryServices" Version="9.0.10" />
<PackageVersion Include="System.Dynamic.Runtime" Version="4.3.0" />
<PackageVersion Include="System.IO.Pipelines" Version="9.0.9" />
<PackageVersion Include="System.Formats.Asn1" Version="9.0.9" />
<PackageVersion Include="System.Management" Version="9.0.9" />
<PackageVersion Include="System.IO.Pipelines" Version="9.0.10" />
<PackageVersion Include="System.Formats.Asn1" Version="9.0.10" />
<PackageVersion Include="System.Management" Version="9.0.10" />
<PackageVersion Include="System.Memory" Version="4.6.3" />
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
<PackageVersion Include="System.Net.Primitives" Version="4.3.1" />
@@ -77,7 +77,7 @@
<PackageVersion Include="System.Reflection.Emit" Version="4.7.0" />
<PackageVersion Include="System.Reflection.Emit.ILGeneration" Version="4.7.0" />
<PackageVersion Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
<PackageVersion Include="System.Reflection.Metadata" Version="9.0.9" />
<PackageVersion Include="System.Reflection.Metadata" Version="9.0.10" />
<PackageVersion Include="System.Reflection.TypeExtensions" Version="4.7.0" />
<PackageVersion Include="System.Resources.ResourceManager" Version="4.3.0" />
<PackageVersion Include="System.Runtime" Version="4.3.1" />
@@ -87,16 +87,16 @@
<PackageVersion Include="System.Security.Cryptography.Algorithms" Version="4.3.1" />
<PackageVersion Include="System.Security.Cryptography.Cng" Version="5.0.0" />
<PackageVersion Include="System.Security.Cryptography.OpenSsl" Version="5.0.0" />
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="9.0.9" />
<PackageVersion Include="System.Security.Cryptography.ProtectedData" Version="9.0.10" />
<PackageVersion Include="System.Security.Cryptography.X509Certificates" Version="4.3.2" />
<PackageVersion Include="System.Security.Permissions" Version="9.0.9" />
<PackageVersion Include="System.Security.Permissions" Version="9.0.10" />
<PackageVersion Include="System.Security.Principal.Windows" Version="5.0.0" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.9" />
<PackageVersion Include="System.Text.Json" Version="9.0.9" />
<PackageVersion Include="System.Text.Encoding.CodePages" Version="9.0.10" />
<PackageVersion Include="System.Text.Json" Version="9.0.10" />
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.6.3" />
<PackageVersion Include="System.ValueTuple" Version="4.6.1" />
<PackageVersion Include="System.Windows.Extensions" Version="9.0.9" />
<PackageVersion Include="System.Windows.Extensions" Version="9.0.10" />
<PackageVersion Include="System.Xml.ReaderWriter" Version="4.3.1" />
<PackageVersion Include="VaultSharp" Version="1.17.5.1" />
<PackageVersion Include="VncSharpCore" Version="1.2.1" />

View File

@@ -16,7 +16,7 @@ namespace mRemoteNG.App.Info
public const string UrlHome = "https://mremoteng.org";
public const string UrlDonate = "https://mremoteng.org/contribute";
public const string UrlForum = "https://www.reddit.com/r/mRemoteNG";
public const string UrlBugs = "https://bugs.mremoteng.org";
public const string UrlBugs = "https://github.com/mRemoteNG/mRemoteNG/issues/new";
public const string UrlDocumentation = "https://mremoteng.readthedocs.io/en/latest/";
public static readonly string ApplicationVersion = Application.ProductVersion;
public static readonly string ProductName = Application.ProductName;

View File

@@ -5,7 +5,7 @@ using mRemoteNG.Config.Settings;
using mRemoteNG.DotNet.Update;
using mRemoteNG.DotNet.Update;
using mRemoteNG.UI.Forms;
using mRemoteNG.Resources.Language;
using System;
using System.Diagnostics;
using System.Drawing;
@@ -53,12 +53,11 @@ namespace mRemoteNG.App
{
try
{
var result = MessageBox.Show(
$".NET Desktop Runtime at least {DotNetRuntimeCheck.RequiredDotnetVersion}.0 is required.\n" +
"The application will now exit.\n\nPlease download and install latest desktop runtime:\n" + downloadUrl,
"Missing .NET " + DotNetRuntimeCheck.RequiredDotnetVersion + " Runtime",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);
var result = ShowDownloadCancelDialog(
$".NET " + DotNetRuntimeCheck.RequiredDotnetVersion + ".0 " + Language.MsgRuntimeIsRequired + "\n\n" +
Language.MsgDownloadLatestRuntime + "\n" + downloadUrl + "\n\n" +
Language.MsgExit + "\n\n",
Language.MsgMissingRuntime + " .NET " + DotNetRuntimeCheck.RequiredDotnetVersion);
if (result == DialogResult.OK && InternetConnection.IsPosible())
{
@@ -82,12 +81,11 @@ namespace mRemoteNG.App
var downloadUrl2 = "https://aka.ms/vs/17/release/vc_redist.x64.exe";
try
{
var result = MessageBox.Show(
$"A Visual C++ (MSVC) runtime library is required.\n" +
"The application will now exit.\n\nPlease download and install latest desktop runtime:\n" + downloadUrl2,
"Missing Visual C++ Redistributable x86 Runtime",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Information);
var result = ShowDownloadCancelDialog(
$"A Visual C++ (MSVC) " + Language.MsgRuntimeIsRequired + "\n\n" +
Language.MsgDownloadLatestRuntime + "\n" + downloadUrl2 + "\n\n" +
Language.MsgExit + "\n\n",
Language.MsgMissingRuntime + " Visual C++ Redistributable x64");
if (result == DialogResult.OK && InternetConnection.IsPosible())
{
@@ -269,5 +267,101 @@ namespace mRemoteNG.App
_wpfSplashThread = null;
}
}
// Helper to show a dialog with "Download" and "Cancel" buttons.
// Returns DialogResult.OK if Download clicked, otherwise DialogResult.Cancel.
private static DialogResult ShowDownloadCancelDialog(string message, string caption)
{
using Form dialog = new Form()
{
Text = caption,
StartPosition = FormStartPosition.CenterScreen,
FormBorderStyle = FormBorderStyle.FixedDialog,
MinimizeBox = false,
MaximizeBox = false,
ShowInTaskbar = false,
ClientSize = new Size(560, 200),
Icon = SystemIcons.Information
};
// Try to find a URL in the message (very simple heuristic: first "http" until whitespace/newline)
int urlStart = message.IndexOf("http", StringComparison.OrdinalIgnoreCase);
string? url = null;
if (urlStart >= 0)
{
int urlEnd = message.IndexOfAny(new char[] { ' ', '\r', '\n', '\t' }, urlStart);
if (urlEnd == -1) urlEnd = message.Length;
url = message.Substring(urlStart, urlEnd - urlStart);
}
LinkLabel lbl = new LinkLabel()
{
AutoSize = false,
Text = message,
Location = new Point(12, 12),
Size = new Size(dialog.ClientSize.Width - 24, dialog.ClientSize.Height - 60),
TextAlign = ContentAlignment.TopLeft,
LinkBehavior = LinkBehavior.SystemDefault
};
lbl.MaximumSize = new Size(dialog.ClientSize.Width - 24, 0);
if (!string.IsNullOrEmpty(url) && urlStart >= 0)
{
// Ensure link indices are within bounds of the LinkLabel text
int linkStartInLabel = urlStart;
int linkLength = url.Length;
if (linkStartInLabel + linkLength <= lbl.Text.Length)
{
lbl.Links.Add(linkStartInLabel, linkLength, url);
}
}
lbl.LinkClicked += (s, e) =>
{
string? linkUrl = e.Link.LinkData as string;
if (string.IsNullOrEmpty(linkUrl))
return;
if (!InternetConnection.IsPosible())
{
MessageBox.Show("No internet connection is available.", "Network", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
// Treat clicking the link the same as clicking the "Download" button:
// set DialogResult to OK so the caller receives DialogResult.OK and can proceed to open the download URL.
dialog.DialogResult = DialogResult.OK;
// Do not call Process.Start here to avoid duplicate launches; caller already opens the URL when it sees DialogResult.OK.
};
Button btnDownload = new Button()
{
Text = "Download",
DialogResult = DialogResult.OK,
Size = new Size(100, 28),
};
Button btnCancel = new Button()
{
Text = "Cancel",
DialogResult = DialogResult.Cancel,
Size = new Size(100, 28),
};
// Position buttons
int padding = 12;
btnCancel.Location = new Point(dialog.ClientSize.Width - padding - btnCancel.Width, dialog.ClientSize.Height - padding - btnCancel.Height);
btnDownload.Location = new Point(btnCancel.Left - 8 - btnDownload.Width, btnCancel.Top);
// Set dialog defaults
dialog.Controls.Add(lbl);
dialog.Controls.Add(btnDownload);
dialog.Controls.Add(btnCancel);
dialog.AcceptButton = btnDownload;
dialog.CancelButton = btnCancel;
// Adjust label height to wrap text properly
lbl.Height = btnCancel.Top - lbl.Top - 8;
return dialog.ShowDialog();
}
}
}

View File

@@ -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", "17.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Language {
@@ -3206,6 +3206,42 @@ namespace mRemoteNG.Resources.Language {
}
}
/// <summary>
/// Looks up a localized string similar to Please download and install latest runtime:.
/// </summary>
internal static string MsgDownloadLatestRuntime {
get {
return ResourceManager.GetString("MsgDownloadLatestRuntime", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The application will now exit..
/// </summary>
internal static string MsgExit {
get {
return ResourceManager.GetString("MsgExit", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Missing Runtime:.
/// </summary>
internal static string MsgMissingRuntime {
get {
return ResourceManager.GetString("MsgMissingRuntime", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to runtime library is required.
/// </summary>
internal static string MsgRuntimeIsRequired {
get {
return ResourceManager.GetString("MsgRuntimeIsRequired", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Multi SSH:.
/// </summary>

View File

@@ -2050,8 +2050,4 @@ Nightly umfasst Alphas, Betas und Release Candidates.</value>
<data name="WebView2InitializationFailed" xml:space="preserve">
<value>WebView2-Erstellung fehlgeschlagen</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -273,8 +273,4 @@
<data name="Gateway" xml:space="preserve">
<value>Πύλη</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -1541,8 +1541,4 @@ mRemoteNG ahora se cerrará y comenzará la instalación.</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>Guardar conexiones al salir</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -138,8 +138,4 @@
<data name="Rdp65536Colors" xml:space="preserve">
<value>65536 Värit (16-bit)</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -2153,8 +2153,4 @@ Le canal nightly inclut les versions alpha, beta et release candidates.</value>
<data name="WebView2InitializationFailed" xml:space="preserve">
<value>Création WebView2 échouée avec une exception</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -333,8 +333,4 @@
<data name="Gateway" xml:space="preserve">
<value>Átjáró</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -1556,7 +1556,4 @@ mRemoteNG verrà chiuso e l'installazione avrà inizio.</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>Salva le connessioni all'uscita</value>
</data>
<data name="VaultOpenbao" xml:space="preserve">
<value>Vault o Openbao</value>
</data>
</root>

View File

@@ -1716,8 +1716,4 @@ mRemoteNGを終了してインストールを開始します</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>終了時に保存する</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -1806,8 +1806,4 @@ mRemoteNG는 이제 종료되고 설치로 시작됩니다.</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>종료시 연결 저장</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -228,8 +228,4 @@ Nightly Channel includes Alphas, Betas &amp; Release Candidates.</value>
<data name="Proxy" xml:space="preserve">
<value>Proxy</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -2005,8 +2005,4 @@ Nightly-kanalen inkluderer alpha-, beta- og release candidate-versjoner.</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>Lagre tilkoblinger ved avslutning</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -1588,8 +1588,4 @@ mRemoteNG zal nu worden gesloten en beginnen met de installatie.</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>Sla verbindingen op bij afsluiten</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -2359,8 +2359,4 @@ Kanał nocny obejmuje wersje alfa, beta i RC (gotowe do wydania).</value>
<data name="Gateway" xml:space="preserve">
<value>Brama</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -369,8 +369,4 @@
<data name="Gateway" xml:space="preserve">
<value>Gateway</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -1554,8 +1554,4 @@
<data name="SaveConsOnExit" xml:space="preserve">
<value>Salvar as ligações à saída</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -2453,6 +2453,20 @@ Nightly Channel includes Alphas, Betas &amp; Release Candidates.</value>
<data name="WarnMeOnlyWhenClosingMultipleConnections" xml:space="preserve">
<value>WarnMeOnlyWhenClosingMultipleConnections</value>
</data>
<data name="MsgExit" xml:space="preserve">
<value>The application will now exit.</value>
<comment>Message shown then application will normally close</comment>
</data>
<data name="MsgDownloadLatestRuntime" xml:space="preserve">
<value>Please download and install latest runtime:</value>
<comment>Appears then missing a runtime</comment>
</data>
<data name="MsgMissingRuntime" xml:space="preserve">
<value>Missing Runtime:</value>
</data>
<data name="MsgRuntimeIsRequired" xml:space="preserve">
<value>runtime library is required</value>
</data>
<data name="VaultOpenbao" xml:space="preserve">
<value>Vault or Openbao</value>
</data>

View File

@@ -2172,8 +2172,4 @@ Nattliga kanalen inkluderar Alfa, Betor &amp; Utgåvokandidater.</value>
<data name="Gateway" xml:space="preserve">
<value>Nätverksnod (gateway)</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -2416,8 +2416,4 @@
<data name="WarnMeOnlyWhenClosingMultipleConnections" xml:space="preserve">
<value>முன்னறிவிப்பு</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -1628,8 +1628,4 @@ MRemoteNG şimdi kapanacak ve kurulum başlayacak.</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>Çıkışta bağlantıları kaydet</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -2002,8 +2002,4 @@ mRemoteNG зараз припинить роботу і почне процес
<data name="SaveConsOnExit" xml:space="preserve">
<value>Зберігати з'єднання при виході</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -2080,8 +2080,4 @@ mRemoteNG 将退出并安装更新。</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>退出时保存连接配置文件</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -1575,8 +1575,4 @@ mRemoteNG 將立即結束並開始安裝。</value>
<data name="SaveConsOnExit" xml:space="preserve">
<value>結束時儲存連線</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="VaultOpenbao" type="System.Resources.ResXNullRef, System.Windows.Forms">
<value />
</data>
</root>

View File

@@ -22,6 +22,7 @@ namespace mRemoteNG.UI.Menu
private ToolStripSeparator _mMenInfoSep3;
private ToolStripSeparator _mMenInfoSep4;
private ToolStripMenuItem _mMenInfoForum;
private ToolStripMenuItem _mMenInfoBug;
private ToolStripMenuItem _mMenToolsUpdate;
public HelpMenu()
@@ -36,6 +37,7 @@ namespace mRemoteNG.UI.Menu
_mMenInfoWebsite = new ToolStripMenuItem();
_mMenInfoDonate = new ToolStripMenuItem();
_mMenInfoForum = new ToolStripMenuItem();
_mMenInfoBug = new ToolStripMenuItem();
_mMenToolsUpdate = new ToolStripMenuItem();
_mMenInfoSep2 = new ToolStripSeparator();
_mMenInfoSep3 = new ToolStripSeparator();
@@ -51,6 +53,7 @@ namespace mRemoteNG.UI.Menu
_mMenInfoSep1,
_mMenInfoWebsite,
_mMenInfoForum,
_mMenInfoBug,
_mMenInfoSep2,
_mMenToolsUpdate,
_mMenInfoSep3,
@@ -108,6 +111,13 @@ namespace mRemoteNG.UI.Menu
_mMenInfoForum.Text = Language.SupportForum;
_mMenInfoForum.Click += mMenInfoForum_Click;
//
// mMenInfoBug
//
_mMenInfoBug.Name = "mMenInfoBug";
_mMenInfoBug.Size = new System.Drawing.Size(190, 22);
_mMenInfoBug.Text = Language.ReportBug;
_mMenInfoBug.Click += mMenInfoBug_Click;
//
// mMenInfoSep2
//
_mMenInfoSep2.Name = "mMenInfoSep2";
@@ -139,6 +149,7 @@ namespace mRemoteNG.UI.Menu
_mMenInfoWebsite.Text = Language.Website;
_mMenInfoDonate.Text = Language.Donate;
_mMenInfoForum.Text = Language.SupportForum;
_mMenInfoBug.Text = Language.ReportBug;
_mMenInfoAbout.Text = Language.About;
_mMenToolsUpdate.Text = Language.CheckForUpdates;
}
@@ -159,6 +170,8 @@ namespace mRemoteNG.UI.Menu
private void mMenInfoForum_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlForum);
private void mMenInfoBug_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlBugs);
private void mMenInfoWebsite_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlHome);
private void mMenInfoDonate_Click(object sender, EventArgs e) => Process.Start("explorer.exe", GeneralAppInfo.UrlDonate);