From ef3542f338b2e1e128aaaac07471bb1b9978cdd8 Mon Sep 17 00:00:00 2001
From: MisCusi2023 <mygithub323@gmail.com>
Date: Tue, 2 May 2023 06:39:40 -0700
Subject: [PATCH 1/6] Language Display Adjustment

---
 ProxySuper.WPF/Resources/Languages/en.xaml    | 2 +-
 ProxySuper.WPF/Resources/Languages/fa_IR.xaml | 2 +-
 ProxySuper.WPF/Resources/Languages/tw_cn.xaml | 2 +-
 ProxySuper.WPF/Resources/Languages/zh_cn.xaml | 2 +-
 ProxySuper.WPF/Views/HomeView.xaml            | 5 ++++-
 5 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/ProxySuper.WPF/Resources/Languages/en.xaml b/ProxySuper.WPF/Resources/Languages/en.xaml
index e2ab589..0740baa 100644
--- a/ProxySuper.WPF/Resources/Languages/en.xaml
+++ b/ProxySuper.WPF/Resources/Languages/en.xaml
@@ -22,7 +22,7 @@
     <sys:String x:Key="MainMenuLanguageEn">English</sys:String>
     <sys:String x:Key="MainMenuLanguageCn">中文</sys:String>
     <sys:String x:Key="MainMenuLanguageTw">正體</sys:String>
-    <sys:String x:Key="MainMenuLanguageFr">Fr</sys:String>
+    <sys:String x:Key="MainMenuLanguageFr">فارسی</sys:String>
 
     <sys:String x:Key="MainMenuHelper">Helper</sys:String>
     <sys:String x:Key="MainMenuHelperGithub">Github</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/fa_IR.xaml b/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
index b62eeaf..61c2f40 100644
--- a/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
+++ b/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
@@ -22,7 +22,7 @@
     <sys:String x:Key="MainMenuLanguageEn">English</sys:String>
     <sys:String x:Key="MainMenuLanguageCn">中文</sys:String>
     <sys:String x:Key="MainMenuLanguageTw">正體</sys:String>
-    <sys:String x:Key="MainMenuLanguageFr">Fr</sys:String>
+    <sys:String x:Key="MainMenuLanguageFr">فارسی</sys:String>
 
     <sys:String x:Key="MainMenuHelper">Helper</sys:String>
     <sys:String x:Key="MainMenuHelperGithub">Github</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/tw_cn.xaml b/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
index c2bfbcc..487588c 100644
--- a/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
+++ b/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
@@ -22,7 +22,7 @@
     <sys:String x:Key="MainMenuLanguageEn">English</sys:String>
     <sys:String x:Key="MainMenuLanguageCn">中文</sys:String>
     <sys:String x:Key="MainMenuLanguageTw">正體</sys:String>
-    <sys:String x:Key="MainMenuLanguageFr">法语</sys:String>
+    <sys:String x:Key="MainMenuLanguageFr">فارسی</sys:String>
 
     <sys:String x:Key="MainMenuHelper">幫助</sys:String>
     <sys:String x:Key="MainMenuHelperGithub">Github</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/zh_cn.xaml b/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
index c9d3d73..9b7d575 100644
--- a/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
+++ b/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
@@ -22,7 +22,7 @@
     <sys:String x:Key="MainMenuLanguageEn">English</sys:String>
     <sys:String x:Key="MainMenuLanguageCn">中文</sys:String>
     <sys:String x:Key="MainMenuLanguageTw">正體</sys:String>
-    <sys:String x:Key="MainMenuLanguageFr">法语</sys:String>
+    <sys:String x:Key="MainMenuLanguageFr">فارسی</sys:String>
     
     <sys:String x:Key="MainMenuHelper">帮助</sys:String>
     <sys:String x:Key="MainMenuHelperGithub">Github</sys:String>
diff --git a/ProxySuper.WPF/Views/HomeView.xaml b/ProxySuper.WPF/Views/HomeView.xaml
index 063487a..10732c0 100644
--- a/ProxySuper.WPF/Views/HomeView.xaml
+++ b/ProxySuper.WPF/Views/HomeView.xaml
@@ -87,7 +87,10 @@
                         </DataGridTextColumn.Header>
                     </DataGridTextColumn>
 
-                    <DataGridTemplateColumn Header="{DynamicResource MainDataGridColumnAction}" Width="400">
+                    <DataGridTemplateColumn  Width="400">
+                        <DataGridTemplateColumn.Header>
+                            <TextBlock Text="{DynamicResource MainDataGridColumnAction}" />
+                        </DataGridTemplateColumn.Header>
                         <DataGridTemplateColumn.CellTemplate>
                             <ItemContainerTemplate>
                                 <StackPanel Orientation="Horizontal">

From 6177ea99d131c7b9fec75b8dfc8eeeb4b1fea0fb Mon Sep 17 00:00:00 2001
From: MisCusi2023 <mygithub323@gmail.com>
Date: Tue, 2 May 2023 06:51:06 -0700
Subject: [PATCH 2/6] Language Display Adjustment-2

---
 ProxySuper.WPF/Resources/Languages/fa_IR.xaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProxySuper.WPF/Resources/Languages/fa_IR.xaml b/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
index 61c2f40..f542028 100644
--- a/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
+++ b/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
@@ -18,7 +18,7 @@
     <sys:String x:Key="MainMenuActionsExportSubscribe">Export Subscribe</sys:String>
     <sys:String x:Key="MainMenuActionsGetRoot">Get Root</sys:String>
 
-    <sys:String x:Key="MainMenuLanguage">زبان</sys:String>
+    <sys:String x:Key="MainMenuLanguage">زبان(Language)</sys:String>
     <sys:String x:Key="MainMenuLanguageEn">English</sys:String>
     <sys:String x:Key="MainMenuLanguageCn">中文</sys:String>
     <sys:String x:Key="MainMenuLanguageTw">正體</sys:String>

From 1907061064b3af81aaea9216e9518ca0a8ea6c14 Mon Sep 17 00:00:00 2001
From: MisCusi2023 <mygithub323@gmail.com>
Date: Wed, 3 May 2023 18:23:53 -0700
Subject: [PATCH 3/6] Fix a series of bugs in MTProto Go

---
 ProxySuper.Core/Services/MTProtoGoService.cs | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/ProxySuper.Core/Services/MTProtoGoService.cs b/ProxySuper.Core/Services/MTProtoGoService.cs
index b6992c4..ce67bc2 100644
--- a/ProxySuper.Core/Services/MTProtoGoService.cs
+++ b/ProxySuper.Core/Services/MTProtoGoService.cs
@@ -42,7 +42,10 @@ namespace ProxySuper.Core.Services
                     Progress.Percentage = 50;
 
                     Progress.Step = "5. 生成密钥";
-                    Settings.SecretText = RunCmd($"docker run nineseconds/mtg generate-secret {Settings.Cleartext}").TrimEnd('\n');
+                    //RunCmd("docker pull nineseconds/mtg:2");   //拉取v2版本命令,但是似乎不用也可以。
+                    //下面的命令是v1版本的命令格式。可以保留。将来如启用v1,可用。
+                    //Settings.SecretText = RunCmd($"docker run nineseconds/mtg:1 generate-secret -c {Settings.Cleartext} tls").TrimEnd('\n');
+                    Settings.SecretText = RunCmd($"docker run nineseconds/mtg:2 generate-secret {Settings.Cleartext}").TrimEnd('\n');
                     Progress.Percentage = 65;
 
                     Progress.Step = "6. 生成配置文件";
@@ -55,7 +58,7 @@ namespace ProxySuper.Core.Services
                     Progress.Percentage = 80;
 
                     Progress.Step = "7. 启动MTProto服务";
-                    RunCmd($"docker run -d -v /etc/mtg.toml:/config.toml  --name=mtg --restart=always -p {Settings.Port + ":" + Settings.Port} nineseconds/mtg");
+                    RunCmd($"docker run -d -v /etc/mtg.toml:/config.toml  --name=mtg --restart=always -p {Settings.Port + ":" + Settings.Port} nineseconds/mtg:2");
                     Progress.Desc = "设置自启动MTProto服务";
 
                     Progress.Step = "安装完成";
@@ -116,7 +119,8 @@ namespace ProxySuper.Core.Services
                     Progress.Percentage = 50;
 
                     Progress.Desc = "生成密钥";
-                    Settings.SecretText = RunCmd($"docker run nineseconds/mtg generate-secret {Settings.Cleartext}").TrimEnd('\n');
+                    //Settings.SecretText = RunCmd($"docker run nineseconds/mtg:1 generate-secret -c {Settings.Cleartext} tls").TrimEnd('\n'); //v1版本
+                    Settings.SecretText = RunCmd($"docker run nineseconds/mtg:2 generate-secret {Settings.Cleartext}").TrimEnd('\n');
                     Progress.Percentage = 65;
 
                     Progress.Desc = "修改配置文件";

From 703183274b0fda387b83839e46819bae524e6502 Mon Sep 17 00:00:00 2001
From: MisCusi2023 <128662654+MisCusi2023@users.noreply.github.com>
Date: Thu, 4 May 2023 01:30:08 -0700
Subject: [PATCH 4/6] Update README.md

---
 README.md | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index eafa613..0d0aae7 100644
--- a/README.md
+++ b/README.md
@@ -58,7 +58,14 @@ ProxySU调用[SSH.NET](https://github.com/sshnet/SSH.NET)库登录远程主机
 * RSA in OpenSSL PEM and ssh.com format  
 * DSA in OpenSSL PEM and ssh.com format  
 * ECDSA 256/384/521 in OpenSSL PEM format  
-* ED25519 in OpenSSH key format  
+* ECDSA 256/384/521, ED25519 and RSA in OpenSSH key format  
+可以使用以下密码方法之一对私钥进行加密:  
+* DES-EDE3-CBC  
+* DES-EDE3-CFB  
+* DES-CBC  
+* AES-128-CBC  
+* AES-192-CBC  
+* AES-256-CBC  
 见官方说明:  
 https://github.com/sshnet/SSH.NET#public-key-authentication  
 如果当前拥有的密钥格式不是以上几种,可以下载[puttygen](https://www.puttygen.com/)工具,将其转换成上面的格式。  
@@ -108,7 +115,7 @@ Microsoft [.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-fram
 
 在使用遇到问题时,请先看一下[常见问题集锦](https://github.com/proxysu/windows/wiki/CommonError),如果还不能解决,可以到以上平台询问,个人精力有限,尽力解答。
 
-下版本添加 【Hysteria】
+
 
 
 

From 6e4b3f7c01e94ad2c494baa7218f28a19ae43ad1 Mon Sep 17 00:00:00 2001
From: MisCusi2023 <mygithub323@gmail.com>
Date: Thu, 4 May 2023 01:56:57 -0700
Subject: [PATCH 5/6] Added login with encrypted private key

---
 ProxySuper.Core/Models/Hosts/Host.cs          |  2 +
 ProxySuper.Core/Services/ServiceBase.cs       |  4 +-
 ProxySuper.WPF/Controls/HostControl.xaml      | 16 +++++++-
 ProxySuper.WPF/Resources/Languages/en.xaml    |  3 +-
 ProxySuper.WPF/Resources/Languages/fa_IR.xaml | 39 ++++++++++---------
 ProxySuper.WPF/Resources/Languages/tw_cn.xaml |  1 +
 ProxySuper.WPF/Resources/Languages/zh_cn.xaml |  1 +
 .../Views/Brook/BrookEditorView.xaml          |  2 +-
 .../Views/Hysteria/HysteriaEditorView.xaml    |  2 +-
 .../Views/MTProxyGo/MTProxyGoEditorView.xaml  |  2 +-
 .../NaiveProxy/NaiveProxyEditorView.xaml      |  2 +-
 .../Views/TrojanGo/TrojanGoEditorView.xaml    |  2 +-
 12 files changed, 47 insertions(+), 29 deletions(-)

diff --git a/ProxySuper.Core/Models/Hosts/Host.cs b/ProxySuper.Core/Models/Hosts/Host.cs
index eb0b2c6..75432df 100644
--- a/ProxySuper.Core/Models/Hosts/Host.cs
+++ b/ProxySuper.Core/Models/Hosts/Host.cs
@@ -28,6 +28,8 @@ namespace ProxySuper.Core.Models.Hosts
 
         public string PrivateKeyPath { get; set; }
 
+        public string PrivateKeyPassPhrase { get; set; }
+
         public LocalProxy Proxy { get; set; }
 
         public LoginSecretType SecretType { get; set; }
diff --git a/ProxySuper.Core/Services/ServiceBase.cs b/ProxySuper.Core/Services/ServiceBase.cs
index 3a290dd..cf21daf 100644
--- a/ProxySuper.Core/Services/ServiceBase.cs
+++ b/ProxySuper.Core/Services/ServiceBase.cs
@@ -802,13 +802,13 @@ namespace ProxySuper.Core.Services
                 if (_host.SecretType == LoginSecretType.PrivateKey)
                 {
                     PrivateKeyFile keyFile;
-                    if (string.IsNullOrEmpty(_host.Password))
+                    if (string.IsNullOrEmpty(_host.PrivateKeyPassPhrase))
                     {
                         keyFile = new PrivateKeyFile(_host.PrivateKeyPath);
                     }
                     else
                     {
-                        keyFile = new PrivateKeyFile(_host.PrivateKeyPath, _host.Password);
+                        keyFile = new PrivateKeyFile(_host.PrivateKeyPath, _host.PrivateKeyPassPhrase);
                     }
                     authMethods.Add(new PrivateKeyAuthenticationMethod(_host.UserName, keyFile));
                 }
diff --git a/ProxySuper.WPF/Controls/HostControl.xaml b/ProxySuper.WPF/Controls/HostControl.xaml
index 0825885..caeda7a 100644
--- a/ProxySuper.WPF/Controls/HostControl.xaml
+++ b/ProxySuper.WPF/Controls/HostControl.xaml
@@ -17,7 +17,7 @@
     
     <Grid>
         <Grid.RowDefinitions>
-            <RowDefinition Height="300" />
+            <RowDefinition Height="330" />
             <RowDefinition Height="auto" />
         </Grid.RowDefinitions>
         
@@ -36,6 +36,7 @@
                     <RowDefinition Height="36" />
                     <RowDefinition Height="36" />
                     <RowDefinition Height="36" />
+                    <RowDefinition Height="36" />
                 </Grid.RowDefinitions>
 
                 <Grid.ColumnDefinitions>
@@ -105,7 +106,18 @@
                             Converter={StaticResource SecretTypeConverter},
                             ConverterParameter={x:Static host:LoginSecretType.PrivateKey}
                         }"
-                        Content="{DynamicResource HostUploadSecretKey}" /> 
+                        Content="{DynamicResource HostUploadSecretKey}" />
+
+                <Label Content="{DynamicResource HostSertTypePrivateKeyPassPhrase}" Grid.Row="7" Grid.Column="0" />
+                <TextBox Grid.Row="7" Grid.Column="1"
+                         Width="170"
+                         Text="{Binding Host.PrivateKeyPassPhrase}"
+                         IsEnabled="{
+                            Binding Host.SecretType,
+                            Converter={StaticResource SecretTypeConverter},
+                            ConverterParameter={x:Static host:LoginSecretType.PrivateKey}
+                        }"
+                         VerticalContentAlignment="Center" />
             </Grid>
         </GroupBox>
 
diff --git a/ProxySuper.WPF/Resources/Languages/en.xaml b/ProxySuper.WPF/Resources/Languages/en.xaml
index 0740baa..8849bf7 100644
--- a/ProxySuper.WPF/Resources/Languages/en.xaml
+++ b/ProxySuper.WPF/Resources/Languages/en.xaml
@@ -40,7 +40,7 @@
     <sys:String x:Key="MainDataGridColumnActionViewConfig">ViewConfig</sys:String>
     <sys:String x:Key="MainDataGridColumnActionDelete">Delete</sys:String>
     <sys:String x:Key="MainDataGridColumnActionSortUp">Up</sys:String>
-    <sys:String x:Key="MainDataGridColumnActionSortDone">Done</sys:String>
+    <sys:String x:Key="MainDataGridColumnActionSortDone">Down</sys:String>
 
 
     <!--Editor Window-->
@@ -54,6 +54,7 @@
     <sys:String x:Key="HostUploadSecretKey">UploadKey</sys:String>
     <sys:String  x:Key="HostSertTypePassword">Password</sys:String>
     <sys:String  x:Key="HostSertTypePrivateKey">PrivateKey</sys:String>
+    <sys:String x:Key="HostSertTypePrivateKeyPassPhrase">PKPassword</sys:String>
 
 
     <sys:String x:Key="ProxyGroupName">Proxy</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/fa_IR.xaml b/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
index f542028..e5cfc4d 100644
--- a/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
+++ b/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
@@ -3,20 +3,20 @@
                     xmlns:sys="clr-namespace:System;assembly=mscorlib">
 
     <!--common-->
-    <sys:String x:Key="Random">Random</sys:String>
+    <sys:String x:Key="Random">تصادفی</sys:String>
     <sys:String x:Key="Save">ذخیره</sys:String>
     <sys:String x:Key="SaveAndInstall">ذخیره و نصب</sys:String>
     <sys:String x:Key="SaveAs">ذخیره به عنوان</sys:String>
     <sys:String x:Key="Install">نصب</sys:String>
     <sys:String x:Key="Settings">تنظیمات</sys:String>
-    <sys:String x:Key="ReadmeWebsiteDemo">The following is a static web page connection provided by netizens, please check whether there is an index.html file by yourself</sys:String>
+    <sys:String x:Key="ReadmeWebsiteDemo">موارد زیر یک اتصال صفحه وب ثابت است که توسط کاربران اینترنتی ارائه شده است، لطفاً بررسی کنید که آیا فایل index.html توسط خودتان وجود دارد یا خیر.</sys:String>
 
     <!--Main Menu-->
-    <sys:String x:Key="MainMenuAddHost">Add Host</sys:String>
-    <sys:String x:Key="MainMenuActions">Actions</sys:String>
-    <sys:String x:Key="MainMenuActionsExportSettings">Export Settings</sys:String>
-    <sys:String x:Key="MainMenuActionsExportSubscribe">Export Subscribe</sys:String>
-    <sys:String x:Key="MainMenuActionsGetRoot">Get Root</sys:String>
+    <sys:String x:Key="MainMenuAddHost">میزبان اضافه کنید</sys:String>
+    <sys:String x:Key="MainMenuActions">عمل کنند</sys:String>
+    <sys:String x:Key="MainMenuActionsExportSettings">پیکربندی صادرات</sys:String>
+    <sys:String x:Key="MainMenuActionsExportSubscribe">اشتراک صادرات</sys:String>
+    <sys:String x:Key="MainMenuActionsGetRoot">اکانت روت را فعال کنید</sys:String>
 
     <sys:String x:Key="MainMenuLanguage">زبان(Language)</sys:String>
     <sys:String x:Key="MainMenuLanguageEn">English</sys:String>
@@ -24,23 +24,23 @@
     <sys:String x:Key="MainMenuLanguageTw">正體</sys:String>
     <sys:String x:Key="MainMenuLanguageFr">فارسی</sys:String>
 
-    <sys:String x:Key="MainMenuHelper">Helper</sys:String>
+    <sys:String x:Key="MainMenuHelper">یاور</sys:String>
     <sys:String x:Key="MainMenuHelperGithub">Github</sys:String>
-    <sys:String x:Key="MainMenuHelperUseRoot">UseRoot</sys:String>
-    <sys:String x:Key="MainMenuHelperCertQuestion">CertQuestion</sys:String>
-    <sys:String x:Key="MainMenuHelperPrivateKey">PrivateKey</sys:String>
+    <sys:String x:Key="MainMenuHelperUseRoot">اکانت روت را فعال کنید</sys:String>
+    <sys:String x:Key="MainMenuHelperCertQuestion">در مورد گواهینامه</sys:String>
+    <sys:String x:Key="MainMenuHelperPrivateKey">در مورد سوال</sys:String>
 
     <!--Main DataGrid-->
     <sys:String x:Key="MainDataGridColumnTag">برچسب</sys:String>
     <sys:String x:Key="MainDataGridColumnAddress">آدرس</sys:String>
     <sys:String x:Key="MainDataGridColumnType">نوع</sys:String>
-    <sys:String x:Key="MainDataGridColumnAction">Action</sys:String>
+    <sys:String x:Key="MainDataGridColumnAction">عمل کنند</sys:String>
     <sys:String x:Key="MainDataGridColumnActionInstall">نصب</sys:String>
     <sys:String x:Key="MainDataGridColumnActionEdit">ویرایش</sys:String>
-    <sys:String x:Key="MainDataGridColumnActionViewConfig">ViewConfig</sys:String>
-    <sys:String x:Key="MainDataGridColumnActionDelete">Delete</sys:String>
-    <sys:String x:Key="MainDataGridColumnActionSortUp">Up</sys:String>
-    <sys:String x:Key="MainDataGridColumnActionSortDone">Done</sys:String>
+    <sys:String x:Key="MainDataGridColumnActionViewConfig">مشاهده پیکربندی</sys:String>
+    <sys:String x:Key="MainDataGridColumnActionDelete">حذف</sys:String>
+    <sys:String x:Key="MainDataGridColumnActionSortUp">بالاا</sys:String>
+    <sys:String x:Key="MainDataGridColumnActionSortDone">پایین</sys:String>
 
 
     <!--Editor Window-->
@@ -50,10 +50,11 @@
     <sys:String x:Key="HostUserName">نام کاربری</sys:String>
     <sys:String x:Key="HostPassword">رمز عبور</sys:String>
     <sys:String x:Key="HostPort">پورت</sys:String>
-    <sys:String x:Key="HostSecretType">SecretType</sys:String>
-    <sys:String x:Key="HostUploadSecretKey">UploadKey</sys:String>
+    <sys:String x:Key="HostSecretType">نوع تأیید ورود</sys:String>
+    <sys:String x:Key="HostUploadSecretKey">کلید آپلود</sys:String>
     <sys:String  x:Key="HostSertTypePassword">رمز عبور</sys:String>
-    <sys:String  x:Key="HostSertTypePrivateKey">PrivateKey</sys:String>
+    <sys:String  x:Key="HostSertTypePrivateKey">کلید خصوصی</sys:String>
+    <sys:String x:Key="HostSertTypePrivateKeyPassPhrase">رمز عبور PK</sys:String>
 
 
     <sys:String x:Key="ProxyGroupName">پروکسی</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/tw_cn.xaml b/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
index 487588c..87f47f2 100644
--- a/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
+++ b/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
@@ -55,6 +55,7 @@
     <sys:String x:Key="HostUploadSecretKey">上傳Key</sys:String>
     <sys:String x:Key="HostSertTypePassword">密碼</sys:String>
     <sys:String x:Key="HostSertTypePrivateKey">私鑰</sys:String>
+    <sys:String x:Key="HostSertTypePrivateKeyPassPhrase">私鑰密碼</sys:String>
 
     <sys:String x:Key="ProxyGroupName">代理</sys:String>
     <sys:String x:Key="ProxyAddress">IP/地址</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/zh_cn.xaml b/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
index 9b7d575..35f1af7 100644
--- a/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
+++ b/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
@@ -56,6 +56,7 @@
     <sys:String x:Key="HostUploadSecretKey">上传Key</sys:String>
     <sys:String x:Key="HostSertTypePassword">密码</sys:String>
     <sys:String x:Key="HostSertTypePrivateKey">私钥</sys:String>
+    <sys:String x:Key="HostSertTypePrivateKeyPassPhrase">私钥密码</sys:String>
 
     <sys:String x:Key="ProxyGroupName">代理</sys:String>
     <sys:String x:Key="ProxyAddress">IP/地址</sys:String>
diff --git a/ProxySuper.WPF/Views/Brook/BrookEditorView.xaml b/ProxySuper.WPF/Views/Brook/BrookEditorView.xaml
index c371f43..a8875e8 100644
--- a/ProxySuper.WPF/Views/Brook/BrookEditorView.xaml
+++ b/ProxySuper.WPF/Views/Brook/BrookEditorView.xaml
@@ -11,7 +11,7 @@
         BorderBrush="#eee"
         Icon="/Resources/ProxySU.ico"
         WindowStartupLocation="CenterScreen"
-        Title="BrookEditorView" Height="600" Width="1000">
+        Title="BrookEditorView" Height="640" Width="1000">
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="310" />
diff --git a/ProxySuper.WPF/Views/Hysteria/HysteriaEditorView.xaml b/ProxySuper.WPF/Views/Hysteria/HysteriaEditorView.xaml
index dd63cec..614a0cd 100644
--- a/ProxySuper.WPF/Views/Hysteria/HysteriaEditorView.xaml
+++ b/ProxySuper.WPF/Views/Hysteria/HysteriaEditorView.xaml
@@ -11,7 +11,7 @@
         BorderBrush="#eee"
         Icon="/Resources/ProxySU.ico"
         WindowStartupLocation="CenterScreen"
-        Title="Hysteria编辑配置" Height="600" Width="1000">
+        Title="Hysteria编辑配置" Height="640" Width="1000">
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="310" />
diff --git a/ProxySuper.WPF/Views/MTProxyGo/MTProxyGoEditorView.xaml b/ProxySuper.WPF/Views/MTProxyGo/MTProxyGoEditorView.xaml
index 4aa4dcc..720941c 100644
--- a/ProxySuper.WPF/Views/MTProxyGo/MTProxyGoEditorView.xaml
+++ b/ProxySuper.WPF/Views/MTProxyGo/MTProxyGoEditorView.xaml
@@ -11,7 +11,7 @@
         BorderBrush="#eee"
         Icon="/Resources/ProxySU.ico"
         WindowStartupLocation="CenterScreen"
-        Title="MTProto-Go编辑配置" Height="600" Width="1000">
+        Title="MTProto-Go编辑配置" Height="640" Width="1000">
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="310" />
diff --git a/ProxySuper.WPF/Views/NaiveProxy/NaiveProxyEditorView.xaml b/ProxySuper.WPF/Views/NaiveProxy/NaiveProxyEditorView.xaml
index 2a51884..b9442a1 100644
--- a/ProxySuper.WPF/Views/NaiveProxy/NaiveProxyEditorView.xaml
+++ b/ProxySuper.WPF/Views/NaiveProxy/NaiveProxyEditorView.xaml
@@ -11,7 +11,7 @@
         BorderBrush="#eee"
         Icon="/Resources/ProxySU.ico"
         WindowStartupLocation="CenterScreen"
-        Title="NaiveProxy编辑配置" Height="600" Width="1000">
+        Title="NaiveProxy编辑配置" Height="640" Width="1000">
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="310" />
diff --git a/ProxySuper.WPF/Views/TrojanGo/TrojanGoEditorView.xaml b/ProxySuper.WPF/Views/TrojanGo/TrojanGoEditorView.xaml
index 4ecee5b..59357b2 100644
--- a/ProxySuper.WPF/Views/TrojanGo/TrojanGoEditorView.xaml
+++ b/ProxySuper.WPF/Views/TrojanGo/TrojanGoEditorView.xaml
@@ -11,7 +11,7 @@
         BorderBrush="#eee"
         Icon="/Resources/ProxySU.ico"
         WindowStartupLocation="CenterScreen"
-        Title="Trojan-Go编辑配置" Height="600" Width="1000">
+        Title="Trojan-Go编辑配置" Height="640" Width="1000">
     <Grid>
         <Grid.ColumnDefinitions>
             <ColumnDefinition Width="310" />

From be74f42f1923b5648c705d9d23047afac495f869 Mon Sep 17 00:00:00 2001
From: MisCusi2023 <mygithub323@gmail.com>
Date: Thu, 4 May 2023 06:39:59 -0700
Subject: [PATCH 6/6] UI tweaks

---
 .../Controls/V2raySettingsControl.xaml        | 30 +++++++++----------
 .../Controls/XraySettingsControl.xaml         |  2 +-
 ProxySuper.WPF/MainWindow.xaml                |  2 +-
 ProxySuper.WPF/Properties/AssemblyInfo.cs     |  4 +--
 ProxySuper.WPF/Resources/Languages/en.xaml    |  1 +
 ProxySuper.WPF/Resources/Languages/fa_IR.xaml | 11 +++----
 ProxySuper.WPF/Resources/Languages/tw_cn.xaml |  1 +
 ProxySuper.WPF/Resources/Languages/zh_cn.xaml |  1 +
 8 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/ProxySuper.WPF/Controls/V2raySettingsControl.xaml b/ProxySuper.WPF/Controls/V2raySettingsControl.xaml
index 3043116..2ef43b9 100644
--- a/ProxySuper.WPF/Controls/V2raySettingsControl.xaml
+++ b/ProxySuper.WPF/Controls/V2raySettingsControl.xaml
@@ -116,29 +116,28 @@
                     <TextBox Text="{Binding Path=Domain}" Width="200"  />
                 </StackPanel>
 
-                <!--Mask Domain-->
-                <StackPanel Margin="0,15,0,0" Orientation="Horizontal">
-                    <Label Content="{DynamicResource XrayMarkDomain}" Width="120"  />
-                    <TextBox Text="{Binding Path=MaskDomain}" Width="200"  />
-                </StackPanel>
-
                 <!--UUID-->
                 <StackPanel Margin="0,15,0,0" Orientation="Horizontal">
                     <Label Content="{DynamicResource XrayUUID}" Width="120" />
-
                     <TextBox Text="{Binding Path=UUID}" Width="200" />
-
                     <Button Margin="5,0,0,0"
                             Padding="12,3"
                             Command="{Binding Path=RandomUuid}"
                             Content="{DynamicResource Random}" />
                 </StackPanel>
+
+                <!--v2ray prot-->
+                <StackPanel Margin="0,15,0,0" Orientation="Horizontal">
+                    <Label Content="{DynamicResource V2rayPort}"  Width="120"  />
+                    <TextBox Text="{Binding Path=Port}" Width="120"  />
+                    <Label Content="{DynamicResource XrayPortDefault}"  Foreground="Red" />
+                </StackPanel>
                 <!--#endregion-->
 
                 <!--more params-->
                 <Expander ExpandDirection="Down" Margin="0,10,0,0">
                     <Expander.Header>
-                        <TextBlock Text="更多参数" FontWeight="Bold" />
+                        <TextBlock Text="{DynamicResource MoreParameters}" FontWeight="Bold" />
                     </Expander.Header>
 
                     <Expander.Content>
@@ -153,6 +152,12 @@
                               VerticalAlignment="Center" />
                             </StackPanel>
                             <!--#endregion-->
+                            
+                            <!--Mask Domain-->
+                            <StackPanel Margin="0,15,0,0" Orientation="Horizontal">
+                                <Label Content="{DynamicResource XrayMarkDomain}" Width="120"  />
+                                <TextBox Text="{Binding Path=MaskDomain}" Width="200"  />
+                            </StackPanel>
 
                             <!--#region VLESS WebSocket Settings -->
                             <!--WebSocket Path-->
@@ -437,13 +442,6 @@
                                 <Label Content="{DynamicResource TrojanPassword}" Foreground="CadetBlue" Width="120" />
                                 <TextBox Text="{Binding Path=TrojanPassword}" Width="200" />
                             </StackPanel>
-
-                            <!--v2ray prot-->
-                            <StackPanel Margin="0,15,0,0" Orientation="Horizontal">
-                                <Label Content="{DynamicResource V2rayPort}" Foreground="Gray" Width="120"  />
-                                <TextBox Text="{Binding Path=Port}" Width="120"  />
-                                <Label Content="{DynamicResource XrayPortDefault}"  Foreground="Red" />
-                            </StackPanel>
                             <!--#endregion-->
 
                             <!--#region Multiple Users Settings -->
diff --git a/ProxySuper.WPF/Controls/XraySettingsControl.xaml b/ProxySuper.WPF/Controls/XraySettingsControl.xaml
index cabed7c..666f892 100644
--- a/ProxySuper.WPF/Controls/XraySettingsControl.xaml
+++ b/ProxySuper.WPF/Controls/XraySettingsControl.xaml
@@ -145,7 +145,7 @@
                 <!--more params-->
                 <Expander ExpandDirection="Down" Margin="0,10,0,0">
                     <Expander.Header>
-                        <TextBlock Text="更多参数" FontWeight="Bold" />
+                        <TextBlock Text="{DynamicResource MoreParameters}" FontWeight="Bold" />
                     </Expander.Header>
 
                     <Expander.Content>
diff --git a/ProxySuper.WPF/MainWindow.xaml b/ProxySuper.WPF/MainWindow.xaml
index 236ff23..a5fe412 100644
--- a/ProxySuper.WPF/MainWindow.xaml
+++ b/ProxySuper.WPF/MainWindow.xaml
@@ -8,7 +8,7 @@
         mc:Ignorable="d"
         WindowStartupLocation="CenterScreen"
         Icon="/Resources/ProxySU.ico"
-        Title="ProxySU" Height="600" Width="1000">
+        Title="ProxySU v4.1.10" Height="600" Width="1000">
     <Grid>
         
     </Grid>
diff --git a/ProxySuper.WPF/Properties/AssemblyInfo.cs b/ProxySuper.WPF/Properties/AssemblyInfo.cs
index 69453d3..3616ea4 100644
--- a/ProxySuper.WPF/Properties/AssemblyInfo.cs
+++ b/ProxySuper.WPF/Properties/AssemblyInfo.cs
@@ -49,5 +49,5 @@ using System.Windows;
 //可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
 //通过使用 "*",如下所示:
 // [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("4.1.6.0")]
-[assembly: AssemblyFileVersion("4.1.6.0")]
+[assembly: AssemblyVersion("4.1.10.0")]
+[assembly: AssemblyFileVersion("4.1.10.0")]
diff --git a/ProxySuper.WPF/Resources/Languages/en.xaml b/ProxySuper.WPF/Resources/Languages/en.xaml
index 8849bf7..eeac2db 100644
--- a/ProxySuper.WPF/Resources/Languages/en.xaml
+++ b/ProxySuper.WPF/Resources/Languages/en.xaml
@@ -119,6 +119,7 @@
     <sys:String x:Key="V2rayPort">v2ray Port</sys:String>
     <sys:String x:Key="XrayPort">xray Port</sys:String>
     <sys:String x:Key="XrayPortDefault">default port is 443</sys:String>
+    <sys:String x:Key="MoreParameters">More Parameters</sys:String>
 
     <!--xray installer-->
     <sys:String x:Key="XrayInstallerInstall">Install</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/fa_IR.xaml b/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
index e5cfc4d..6fe5aea 100644
--- a/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
+++ b/ProxySuper.WPF/Resources/Languages/fa_IR.xaml
@@ -91,8 +91,8 @@
     <sys:String x:Key="XrayUUID">UUID</sys:String>
     <sys:String x:Key="Flow">Flow</sys:String>
     <sys:String x:Key="UTLS">uTLS</sys:String>
-    <sys:String x:Key="MultiUser">Multi User</sys:String>
-    <sys:String x:Key="MultiUserHelp">Multi Id split with ","</sys:String>
+    <sys:String x:Key="MultiUser">چند کاربره</sys:String>
+    <sys:String x:Key="MultiUserHelp">چند شناسه تقسیم با ","</sys:String>
     <sys:String x:Key="VlessWsPath">VLESS WS Path</sys:String>
     <sys:String x:Key="VlessKcpSeed">VLESS KCP Seed</sys:String>
     <sys:String x:Key="VlessKcpType">VLESS KCP Type</sys:String>
@@ -116,9 +116,10 @@
     <sys:String x:Key="SSPort">SS Port</sys:String>
     <sys:String x:Key="TrojanPassword">Trojan Pwd</sys:String>
     <sys:String x:Key="TrojanPort">پورت تروجان</sys:String>
-    <sys:String x:Key="V2rayPort">v2ray Port</sys:String>
-    <sys:String x:Key="XrayPort">xray Port</sys:String>
-    <sys:String x:Key="XrayPortDefault">default port is 443</sys:String>
+    <sys:String x:Key="V2rayPort">v2ray بندر</sys:String>
+    <sys:String x:Key="XrayPort">xray بندر</sys:String>
+    <sys:String x:Key="XrayPortDefault">پورت پیش فرض 443 است</sys:String>
+    <sys:String x:Key="MoreParameters">پارامترهای بیشتر</sys:String>
 
     <!--xray installer-->
     <sys:String x:Key="XrayInstallerInstall">نصب</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/tw_cn.xaml b/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
index 87f47f2..b734e33 100644
--- a/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
+++ b/ProxySuper.WPF/Resources/Languages/tw_cn.xaml
@@ -120,6 +120,7 @@
     <sys:String x:Key="V2rayPort">V2ray端口</sys:String>
     <sys:String x:Key="XrayPort">XRAY端口</sys:String>
     <sys:String x:Key="XrayPortDefault">默認端口443,不建議修改</sys:String>
+    <sys:String x:Key="MoreParameters">更多參數</sys:String>
 
     <!--xray installer-->
     <sys:String x:Key="XrayInstallerInstall">一鍵安裝</sys:String>
diff --git a/ProxySuper.WPF/Resources/Languages/zh_cn.xaml b/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
index 35f1af7..56d1fac 100644
--- a/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
+++ b/ProxySuper.WPF/Resources/Languages/zh_cn.xaml
@@ -121,6 +121,7 @@
     <sys:String x:Key="V2rayPort">V2ray端口</sys:String>
     <sys:String x:Key="XrayPort">XRAY端口</sys:String>
     <sys:String x:Key="XrayPortDefault">默认端口443,不建议修改</sys:String>
+    <sys:String x:Key="MoreParameters">更多参数</sys:String>
 
     <!--xray installer-->
     <sys:String x:Key="XrayInstallerInstall">一键安装</sys:String>