Browse Source

chore: update zh_CN translations

0xJacky 2 years ago
parent
commit
aa1258e0a5

+ 175 - 71
frontend/src/language/en/app.po

@@ -79,7 +79,7 @@ msgstr ""
 msgid "Arch"
 msgid "Arch"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:45
 #, fuzzy
 #, fuzzy
 msgid "Are you sure you want to clear the record of chat?"
 msgid "Are you sure you want to clear the record of chat?"
 msgstr "Are you sure you want to remove this directive?"
 msgstr "Are you sure you want to remove this directive?"
@@ -99,6 +99,14 @@ msgstr "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to remove this location?"
 msgid "Are you sure you want to remove this location?"
 msgstr "Are you sure you want to remove this directive?"
 msgstr "Are you sure you want to remove this directive?"
 
 
+#: src/components/ChatGPT/ChatGPT.vue:4 src/components/ChatGPT/ChatGPT.vue:5
+msgid "Ask ChatGPT for Help"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:16
+msgid "Assistant"
+msgstr ""
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
@@ -141,7 +149,7 @@ msgstr "Auto-renewal enabled for %{name}"
 
 
 #: src/views/config/Config.vue:17 src/views/config/Config.vue:18
 #: src/views/config/Config.vue:17 src/views/config/Config.vue:18
 #: src/views/config/Config.vue:28 src/views/config/Config.vue:6
 #: src/views/config/Config.vue:28 src/views/config/Config.vue:6
-#: src/views/config/ConfigEdit.vue:83 src/views/domain/DomainEdit.vue:263
+#: src/views/config/ConfigEdit.vue:80 src/views/domain/DomainEdit.vue:225
 #: src/views/nginx_log/NginxLog.vue:161
 #: src/views/nginx_log/NginxLog.vue:161
 msgid "Back"
 msgid "Back"
 msgstr "Back"
 msgstr "Back"
@@ -155,6 +163,7 @@ msgstr "Back"
 msgid "Base information"
 msgid "Base information"
 msgstr "Base information"
 msgstr "Base information"
 
 
+#: src/views/domain/components/RightSettings.vue:4
 #: src/views/preference/Preference.vue:5
 #: src/views/preference/Preference.vue:5
 #, fuzzy
 #, fuzzy
 msgid "Basic"
 msgid "Basic"
@@ -181,13 +190,14 @@ msgstr "Build with"
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:17 src/components/ChatGPT/ChatGPT.vue:18
-#: src/components/ChatGPT/ChatGPT.vue:22 src/components/ChatGPT/ChatGPT.vue:24
+#: src/components/ChatGPT/ChatGPT.vue:22 src/components/ChatGPT/ChatGPT.vue:23
+#: src/components/ChatGPT/ChatGPT.vue:27 src/components/ChatGPT/ChatGPT.vue:29
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/views/domain/cert/components/ObtainCert.vue:191
 #: src/views/domain/cert/components/ObtainCert.vue:191
-#: src/views/domain/DomainEdit.vue:176
+#: src/views/domain/components/Deploy.vue:26
+#: src/views/domain/components/RightSettings.vue:48
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 msgid "Cancel"
 msgid "Cancel"
@@ -248,8 +258,8 @@ msgstr ""
 msgid "Cleaning environment variables"
 msgid "Cleaning environment variables"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:31 src/components/ChatGPT/ChatGPT.vue:32
-#: src/components/ChatGPT/ChatGPT.vue:38 src/components/ChatGPT/ChatGPT.vue:42
+#: src/components/ChatGPT/ChatGPT.vue:36 src/components/ChatGPT/ChatGPT.vue:37
+#: src/components/ChatGPT/ChatGPT.vue:43 src/components/ChatGPT/ChatGPT.vue:47
 msgid "Clear"
 msgid "Clear"
 msgstr ""
 msgstr ""
 
 
@@ -301,7 +311,7 @@ msgstr "Content"
 msgid "Core Upgrade"
 msgid "Core Upgrade"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:66
+#: src/views/dashboard/ServerAnalytic.vue:68
 msgid "CPU Status"
 msgid "CPU Status"
 msgstr "CPU Status"
 msgstr "CPU Status"
 
 
@@ -310,7 +320,7 @@ msgstr "CPU Status"
 msgid "CPU:"
 msgid "CPU:"
 msgstr "CPU:"
 msgstr "CPU:"
 
 
-#: src/views/domain/DomainAdd.vue:154
+#: src/views/domain/DomainAdd.vue:157
 msgid "Create Another"
 msgid "Create Another"
 msgstr "Create Another"
 msgstr "Create Another"
 
 
@@ -380,6 +390,24 @@ msgstr ""
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/Deploy.vue:12
+#: src/views/domain/components/Deploy.vue:13
+msgid "Deploy"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:63
+msgid "Deploy %{conf_name} to %{node_name} failed"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:40
+msgid "Deploy %{conf_name} to %{node_name} successfully"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:38
+#, fuzzy
+msgid "Deploy successfully"
+msgstr "Saved successfully"
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
@@ -420,11 +448,12 @@ msgstr "Disable auto-renewal failed for %{name}"
 msgid "Disabled"
 msgid "Disabled"
 msgstr "Disabled"
 msgstr "Disabled"
 
 
-#: src/views/domain/DomainEdit.vue:163 src/views/domain/DomainList.vue:69
+#: src/views/domain/components/RightSettings.vue:35
+#: src/views/domain/DomainList.vue:69
 msgid "Disabled successfully"
 msgid "Disabled successfully"
 msgstr "Disabled successfully"
 msgstr "Disabled successfully"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:98
+#: src/views/dashboard/ServerAnalytic.vue:100
 msgid "Disk IO"
 msgid "Disk IO"
 msgstr "Disk IO"
 msgstr "Disk IO"
 
 
@@ -443,16 +472,23 @@ msgstr ""
 msgid "DNS01"
 msgid "DNS01"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/Deploy.vue:21
+#, fuzzy
+msgid "Do you want to deploy this file to remote server?"
+msgid_plural "Do you want to deploy this file to remote servers?"
+msgstr[0] "Are you sure you want to remove this directive?"
+msgstr[1] "Are you sure you want to remove this directive?"
+
 #: src/views/domain/cert/components/ObtainCert.vue:187
 #: src/views/domain/cert/components/ObtainCert.vue:187
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 #, fuzzy
 #, fuzzy
 msgid "Do you want to disable this site?"
 msgid "Do you want to disable this site?"
 msgstr "Are you sure you want to remove this directive?"
 msgstr "Are you sure you want to remove this directive?"
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 #, fuzzy
 #, fuzzy
 msgid "Do you want to enable this site?"
 msgid "Do you want to enable this site?"
 msgstr "Are you sure you want to remove this directive?"
 msgstr "Are you sure you want to remove this directive?"
@@ -487,15 +523,30 @@ msgstr ""
 msgid "Dry run mode enabled"
 msgid "Dry run mode enabled"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/SiteDuplicate.vue:2
 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
-#: src/views/domain/SiteDuplicate.vue:2
 msgid "Duplicate"
 msgid "Duplicate"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/SiteDuplicate.vue:43
+#: src/views/domain/components/SiteDuplicate.vue:73
+#, fuzzy
+msgid "Duplicate %{conf_name} to %{node_name} successfully"
+msgstr "Saved successfully"
+
+#: src/views/domain/components/SiteDuplicate.vue:78
+#, fuzzy
+msgid "Duplicate failed"
+msgstr "Enable failed"
+
+#: src/views/domain/components/SiteDuplicate.vue:71
+#, fuzzy
+msgid "Duplicate successfully"
+msgstr "Saved successfully"
+
+#: src/views/domain/components/SiteDuplicate.vue:57
 #, fuzzy
 #, fuzzy
-msgid "Duplicated successfully"
+msgid "Duplicate to local successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
 #: src/views/domain/DomainEdit.vue:5 src/views/domain/DomainEdit.vue:6
 #: src/views/domain/DomainEdit.vue:5 src/views/domain/DomainEdit.vue:6
@@ -514,28 +565,44 @@ msgstr "Edit Site"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 msgstr "Email (*)"
 
 
+#: src/views/domain/components/Deploy.vue:53
+msgid "Enable %{conf_name} in %{node_name} failed"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:48
+msgid "Enable %{conf_name} in %{node_name} successfully"
+msgstr ""
+
 #: src/views/domain/cert/components/ObtainCert.vue:55
 #: src/views/domain/cert/components/ObtainCert.vue:55
 msgid "Enable auto-renewal failed for %{name}"
 msgid "Enable auto-renewal failed for %{name}"
 msgstr "Enable auto-renewal failed for %{name}"
 msgstr "Enable auto-renewal failed for %{name}"
 
 
-#: src/views/domain/DomainAdd.vue:49
+#: src/views/domain/DomainAdd.vue:52
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Enable failed"
 msgstr "Enable failed"
 
 
+#: src/views/domain/components/Deploy.vue:46
+#, fuzzy
+msgid "Enable successfully"
+msgstr "Enabled successfully"
+
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr "Enable TLS"
 msgstr "Enable TLS"
 
 
 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:44
 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:44
-#: src/views/domain/DomainEdit.vue:29 src/views/domain/DomainEdit.vue:7
-#: src/views/domain/DomainEdit.vue:8 src/views/domain/DomainList.vue:10
-#: src/views/domain/DomainList.vue:11 src/views/domain/DomainList.vue:12
-#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31
+#: src/views/domain/components/Deploy.vue:3
+#: src/views/domain/components/Deploy.vue:4
+#: src/views/domain/components/RightSettings.vue:5
+#: src/views/domain/DomainEdit.vue:7 src/views/domain/DomainEdit.vue:8
+#: src/views/domain/DomainList.vue:10 src/views/domain/DomainList.vue:11
+#: src/views/domain/DomainList.vue:12 src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:31
 msgid "Enabled"
 msgid "Enabled"
 msgstr "Enabled"
 msgstr "Enabled"
 
 
-#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:154
-#: src/views/domain/DomainList.vue:59
+#: src/views/domain/components/RightSettings.vue:26
+#: src/views/domain/DomainAdd.vue:49 src/views/domain/DomainList.vue:59
 msgid "Enabled successfully"
 msgid "Enabled successfully"
 msgstr "Enabled successfully"
 msgstr "Enabled successfully"
 
 
@@ -577,11 +644,13 @@ msgstr "Expiration Date: %{date}"
 msgid "Export"
 msgid "Export"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:166 src/views/domain/DomainList.vue:73
+#: src/views/domain/components/RightSettings.vue:38
+#: src/views/domain/DomainList.vue:73
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "Failed to disable %{msg}"
 msgstr "Failed to disable %{msg}"
 
 
-#: src/views/domain/DomainEdit.vue:157 src/views/domain/DomainList.vue:63
+#: src/views/domain/components/RightSettings.vue:29
+#: src/views/domain/DomainList.vue:63
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "Failed to enable %{msg}"
 msgstr "Failed to enable %{msg}"
 
 
@@ -589,7 +658,7 @@ msgstr "Failed to enable %{msg}"
 msgid "Failed to get certificate information"
 msgid "Failed to get certificate information"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:132
+#: src/views/domain/DomainEdit.vue:133
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr ""
 msgstr ""
 
 
@@ -613,7 +682,7 @@ msgstr ""
 msgid "Finished"
 msgid "Finished"
 msgstr "Finished"
 msgstr "Finished"
 
 
-#: src/views/config/ConfigEdit.vue:86
+#: src/views/config/ConfigEdit.vue:83
 msgid "Format Code"
 msgid "Format Code"
 msgstr ""
 msgstr ""
 
 
@@ -735,12 +804,14 @@ msgstr ""
 msgid "Link Start"
 msgid "Link Start"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:154
+#: src/views/dashboard/ServerAnalytic.vue:161
 msgid "Load Averages:"
 msgid "Load Averages:"
 msgstr "Load Averages:"
 msgstr "Load Averages:"
 
 
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:6
 #: src/components/EnvIndicator/EnvIndicator.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:4
+#: src/components/NodeSelector/NodeSelector.vue:5
 #, fuzzy
 #, fuzzy
 msgid "Local"
 msgid "Local"
 msgstr "Location"
 msgstr "Location"
@@ -788,16 +859,16 @@ msgstr "Manage Sites"
 msgid "Manage Users"
 msgid "Manage Users"
 msgstr "Manage Users"
 msgstr "Manage Users"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:34
+#: src/views/dashboard/ServerAnalytic.vue:36
 msgid "Memory"
 msgid "Memory"
 msgstr "Memory"
 msgstr "Memory"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:31
+#: src/views/dashboard/ServerAnalytic.vue:33
 msgid "Memory and Storage"
 msgid "Memory and Storage"
 msgstr "Memory and Storage"
 msgstr "Memory and Storage"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:13 src/components/ChatGPT/ChatGPT.vue:14
-#: src/components/ChatGPT/ChatGPT.vue:18 src/components/ChatGPT/ChatGPT.vue:20
+#: src/components/ChatGPT/ChatGPT.vue:18 src/components/ChatGPT/ChatGPT.vue:19
+#: src/components/ChatGPT/ChatGPT.vue:23 src/components/ChatGPT/ChatGPT.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:26
 #: src/components/StdDataDisplay/StdTable.vue:26
@@ -808,7 +879,7 @@ msgstr "Memory and Storage"
 msgid "Modify"
 msgid "Modify"
 msgstr "Modify Config"
 msgstr "Modify Config"
 
 
-#: src/views/domain/DomainAdd.vue:151
+#: src/views/domain/DomainAdd.vue:154
 msgid "Modify Config"
 msgid "Modify Config"
 msgstr "Modify Config"
 msgstr "Modify Config"
 
 
@@ -820,25 +891,25 @@ msgstr "Single Directive"
 
 
 #: src/views/cert/Cert.vue:16 src/views/cert/DNSCredential.vue:12
 #: src/views/cert/Cert.vue:16 src/views/cert/DNSCredential.vue:12
 #: src/views/config/config.ts:8 src/views/domain/cert/ChangeCert.vue:21
 #: src/views/config/config.ts:8 src/views/domain/cert/ChangeCert.vue:21
-#: src/views/domain/DomainEdit.vue:32 src/views/domain/DomainList.vue:15
-#: src/views/domain/SiteDuplicate.vue:5
-#: src/views/environment/Environment.vue:13
+#: src/views/domain/components/RightSettings.vue:8
+#: src/views/domain/components/SiteDuplicate.vue:5
+#: src/views/domain/DomainList.vue:15 src/views/environment/Environment.vue:13
 msgid "Name"
 msgid "Name"
 msgstr "Name"
 msgstr "Name"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:76
+#: src/views/dashboard/ServerAnalytic.vue:78
 msgid "Network"
 msgid "Network"
 msgstr "Network"
 msgstr "Network"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:50
+#: src/views/dashboard/ServerAnalytic.vue:52
 msgid "Network Statistics"
 msgid "Network Statistics"
 msgstr "Network Statistics"
 msgstr "Network Statistics"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:54
+#: src/views/dashboard/ServerAnalytic.vue:56
 msgid "Network Total Receive"
 msgid "Network Total Receive"
 msgstr "Network Total Receive"
 msgstr "Network Total Receive"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:58
+#: src/views/dashboard/ServerAnalytic.vue:60
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Network Total Send"
 msgstr "Network Total Send"
 
 
@@ -849,7 +920,7 @@ msgstr ""
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:21
 #: src/views/domain/cert/components/ObtainCert.vue:21
-#: src/views/domain/DomainAdd.vue:141
+#: src/views/domain/DomainAdd.vue:144
 msgid "Next"
 msgid "Next"
 msgstr "Next"
 msgstr "Next"
 
 
@@ -857,7 +928,7 @@ msgstr "Next"
 msgid "Nginx Access Log Path"
 msgid "Nginx Access Log Path"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:39
+#: src/views/domain/DomainEdit.vue:32
 #, fuzzy
 #, fuzzy
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Configuration Name"
 msgstr "Configuration Name"
@@ -887,7 +958,7 @@ msgstr "Saved successfully"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:38
+#: src/components/ChatGPT/ChatGPT.vue:43
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
@@ -917,24 +988,32 @@ msgstr "Certificate is valid"
 msgid "Obtaining certificate"
 msgid "Obtaining certificate"
 msgstr ""
 msgstr ""
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:11
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:16
 #: src/views/dashboard/Environments.vue:16
 #: src/views/environment/Environment.vue:48
 #: src/views/environment/Environment.vue:48
 msgid "Offline"
 msgid "Offline"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:39
+#: src/components/ChatGPT/ChatGPT.vue:44
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:190
 #: src/views/domain/cert/components/ObtainCert.vue:190
-#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:28
+#: src/views/domain/components/Deploy.vue:25
+#: src/views/domain/components/RightSettings.vue:47
+#: src/views/domain/DomainList.vue:28
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 msgid "OK"
 msgid "OK"
 msgstr ""
 msgstr ""
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:5
+#: src/components/NodeSelector/NodeSelector.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:9
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/environment/Environment.vue:45
 #: src/views/environment/Environment.vue:45
@@ -952,10 +1031,20 @@ msgstr ""
 msgid "OS"
 msgid "OS"
 msgstr "OS:"
 msgstr "OS:"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:160
+#: src/views/dashboard/ServerAnalytic.vue:167
 msgid "OS:"
 msgid "OS:"
 msgstr "OS:"
 msgstr "OS:"
 
 
+#: src/views/domain/components/Deploy.vue:5
+#: src/views/domain/components/Deploy.vue:6
+msgid "Overwrite"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:7
+#: src/views/domain/components/Deploy.vue:8
+msgid "Overwrite exist file"
+msgstr ""
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 msgid "Params"
 msgid "Params"
 msgstr "Params"
 msgstr "Params"
@@ -996,7 +1085,7 @@ msgid ""
 "select one of the credentials below to request the API of the DNS provider."
 "select one of the credentials below to request the API of the DNS provider."
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/SiteDuplicate.vue:28
+#: src/views/domain/components/SiteDuplicate.vue:32
 msgid ""
 msgid ""
 "Please input name, this will be used as the filename of the new "
 "Please input name, this will be used as the filename of the new "
 "configuration!"
 "configuration!"
@@ -1014,6 +1103,10 @@ msgstr "Please input your password!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "Please input your username!"
 msgstr "Please input your username!"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:39
+msgid "Please select at least one node!"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:25 src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:25 src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:30 src/views/system/Upgrade.vue:34
 #: src/views/system/Upgrade.vue:30 src/views/system/Upgrade.vue:34
 #: src/views/system/Upgrade.vue:38 src/views/system/Upgrade.vue:48
 #: src/views/system/Upgrade.vue:38 src/views/system/Upgrade.vue:48
@@ -1047,18 +1140,18 @@ msgstr "Project Team"
 msgid "Provider"
 msgid "Provider"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:109
-#: src/views/dashboard/ServerAnalytic.vue:23
+#: src/views/dashboard/ServerAnalytic.vue:111
+#: src/views/dashboard/ServerAnalytic.vue:30
 msgid "Reads"
 msgid "Reads"
 msgstr "Reads"
 msgstr "Reads"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:20
-#: src/views/dashboard/ServerAnalytic.vue:80
+#: src/views/dashboard/ServerAnalytic.vue:27
+#: src/views/dashboard/ServerAnalytic.vue:82
 msgid "Receive"
 msgid "Receive"
 msgstr "Receive"
 msgstr "Receive"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:34 src/components/ChatGPT/ChatGPT.vue:35
-#: src/components/ChatGPT/ChatGPT.vue:41 src/components/ChatGPT/ChatGPT.vue:45
+#: src/components/ChatGPT/ChatGPT.vue:39 src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:46 src/components/ChatGPT/ChatGPT.vue:50
 msgid "Regenerate response"
 msgid "Regenerate response"
 msgstr ""
 msgstr ""
 
 
@@ -1080,8 +1173,8 @@ msgstr "Install"
 msgid "Release Note"
 msgid "Release Note"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:20 src/components/ChatGPT/ChatGPT.vue:21
-#: src/components/ChatGPT/ChatGPT.vue:25 src/components/ChatGPT/ChatGPT.vue:27
+#: src/components/ChatGPT/ChatGPT.vue:25 src/components/ChatGPT/ChatGPT.vue:26
+#: src/components/ChatGPT/ChatGPT.vue:30 src/components/ChatGPT/ChatGPT.vue:32
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:17
 #: src/components/NginxControl/NginxControl.vue:17
@@ -1125,9 +1218,9 @@ msgstr "Advance Mode"
 msgid "Running"
 msgid "Running"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:16 src/components/ChatGPT/ChatGPT.vue:17
-#: src/components/ChatGPT/ChatGPT.vue:21 src/components/ChatGPT/ChatGPT.vue:23
-#: src/views/config/ConfigEdit.vue:89 src/views/domain/DomainEdit.vue:266
+#: src/components/ChatGPT/ChatGPT.vue:21 src/components/ChatGPT/ChatGPT.vue:22
+#: src/components/ChatGPT/ChatGPT.vue:26 src/components/ChatGPT/ChatGPT.vue:28
+#: src/views/config/ConfigEdit.vue:86 src/views/domain/DomainEdit.vue:228
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
@@ -1143,7 +1236,7 @@ msgstr "Save"
 msgid "Save Directive"
 msgid "Save Directive"
 msgstr "Save Directive"
 msgstr "Save Directive"
 
 
-#: src/views/config/ConfigEdit.vue:53 src/views/domain/DomainAdd.vue:53
+#: src/views/config/ConfigEdit.vue:53 src/views/domain/DomainAdd.vue:56
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "Save error %{msg}"
 msgstr "Save error %{msg}"
@@ -1159,8 +1252,8 @@ msgstr "Saved successfully"
 msgid "Save Successfully"
 msgid "Save Successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/views/config/ConfigEdit.vue:51 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:146
+#: src/views/config/ConfigEdit.vue:51 src/views/domain/DomainAdd.vue:46
+#: src/views/domain/DomainEdit.vue:147
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
@@ -1169,8 +1262,8 @@ msgstr "Saved successfully"
 msgid "Selector"
 msgid "Selector"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:21
-#: src/views/dashboard/ServerAnalytic.vue:87
+#: src/views/dashboard/ServerAnalytic.vue:28
+#: src/views/dashboard/ServerAnalytic.vue:89
 msgid "Send"
 msgid "Send"
 msgstr "Send"
 msgstr "Send"
 
 
@@ -1197,7 +1290,7 @@ msgstr "server_name not found in directives"
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
-#: src/views/domain/DomainAdd.vue:116
+#: src/views/domain/DomainAdd.vue:119
 msgid "server_name parameter is required"
 msgid "server_name parameter is required"
 msgstr "server_name parameter is required"
 msgstr "server_name parameter is required"
 
 
@@ -1256,7 +1349,7 @@ msgstr "Status"
 msgid "Stopped"
 msgid "Stopped"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:43
+#: src/views/dashboard/ServerAnalytic.vue:45
 msgid "Storage"
 msgid "Storage"
 msgstr "Storage"
 msgstr "Storage"
 
 
@@ -1264,7 +1357,7 @@ msgstr "Storage"
 msgid "Subject Name: %{name}"
 msgid "Subject Name: %{name}"
 msgstr "Subject Name: %{name}"
 msgstr "Subject Name: %{name}"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:38
+#: src/views/dashboard/ServerAnalytic.vue:40
 msgid "Swap"
 msgid "Swap"
 msgstr "Swap"
 msgstr "Swap"
 
 
@@ -1277,6 +1370,10 @@ msgstr ""
 msgid "Table"
 msgid "Table"
 msgstr "Enabled"
 msgstr "Enabled"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:8
+msgid "Target"
+msgstr ""
+
 #: src/routes/index.ts:102 src/views/pty/Terminal.vue:2
 #: src/routes/index.ts:102 src/views/pty/Terminal.vue:2
 msgid "Terminal"
 msgid "Terminal"
 msgstr "Terminal"
 msgstr "Terminal"
@@ -1340,8 +1437,10 @@ msgid "Type"
 msgstr ""
 msgstr ""
 
 
 #: src/views/cert/Cert.vue:68 src/views/cert/DNSCredential.vue:25
 #: src/views/cert/Cert.vue:68 src/views/cert/DNSCredential.vue:25
-#: src/views/config/config.ts:28 src/views/domain/DomainList.vue:41
-#: src/views/environment/Environment.vue:55 src/views/user/User.vue:37
+#: src/views/config/config.ts:28
+#: src/views/domain/components/RightSettings.vue:11
+#: src/views/domain/DomainList.vue:41 src/views/environment/Environment.vue:55
+#: src/views/user/User.vue:37
 msgid "Updated at"
 msgid "Updated at"
 msgstr "Updated at"
 msgstr "Updated at"
 
 
@@ -1367,7 +1466,7 @@ msgstr "Saved successfully"
 msgid "Upgrading Nginx UI, please wait..."
 msgid "Upgrading Nginx UI, please wait..."
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:150
+#: src/views/dashboard/ServerAnalytic.vue:157
 msgid "Uptime:"
 msgid "Uptime:"
 msgstr "Uptime:"
 msgstr "Uptime:"
 
 
@@ -1375,6 +1474,11 @@ msgstr "Uptime:"
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
+#: src/components/ChatGPT/ChatGPT.vue:16
+#, fuzzy
+msgid "User"
+msgstr "Username"
+
 #: src/views/other/Login.vue:11 src/views/user/User.vue:11
 #: src/views/other/Login.vue:11 src/views/user/User.vue:11
 msgid "Username"
 msgid "Username"
 msgstr "Username"
 msgstr "Username"
@@ -1409,8 +1513,8 @@ msgid ""
 "Nginx. Are you sure you want to continue?"
 "Nginx. Are you sure you want to continue?"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:102
-#: src/views/dashboard/ServerAnalytic.vue:22
+#: src/views/dashboard/ServerAnalytic.vue:104
+#: src/views/dashboard/ServerAnalytic.vue:29
 msgid "Writes"
 msgid "Writes"
 msgstr "Writes"
 msgstr "Writes"
 
 

+ 177 - 71
frontend/src/language/fr_FR/app.po

@@ -82,7 +82,7 @@ msgstr "Jeton d'API"
 msgid "Arch"
 msgid "Arch"
 msgstr "Arch"
 msgstr "Arch"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:45
 msgid "Are you sure you want to clear the record of chat?"
 msgid "Are you sure you want to clear the record of chat?"
 msgstr "Voulez-vous vraiment effacer l'historique du chat ?"
 msgstr "Voulez-vous vraiment effacer l'historique du chat ?"
 
 
@@ -99,6 +99,15 @@ msgstr "Voulez-vous vraiment supprimer cette directive ?"
 msgid "Are you sure you want to remove this location?"
 msgid "Are you sure you want to remove this location?"
 msgstr "Voulez-vous vraiment supprimer cette localisation ?"
 msgstr "Voulez-vous vraiment supprimer cette localisation ?"
 
 
+#: src/components/ChatGPT/ChatGPT.vue:4 src/components/ChatGPT/ChatGPT.vue:5
+#, fuzzy
+msgid "Ask ChatGPT for Help"
+msgstr "Modèle ChatGPT"
+
+#: src/components/ChatGPT/ChatGPT.vue:16
+msgid "Assistant"
+msgstr ""
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
@@ -144,7 +153,7 @@ msgstr "Renouvellement automatique activé pour %{name}"
 
 
 #: src/views/config/Config.vue:17 src/views/config/Config.vue:18
 #: src/views/config/Config.vue:17 src/views/config/Config.vue:18
 #: src/views/config/Config.vue:28 src/views/config/Config.vue:6
 #: src/views/config/Config.vue:28 src/views/config/Config.vue:6
-#: src/views/config/ConfigEdit.vue:83 src/views/domain/DomainEdit.vue:263
+#: src/views/config/ConfigEdit.vue:80 src/views/domain/DomainEdit.vue:225
 #: src/views/nginx_log/NginxLog.vue:161
 #: src/views/nginx_log/NginxLog.vue:161
 msgid "Back"
 msgid "Back"
 msgstr "Retour"
 msgstr "Retour"
@@ -157,6 +166,7 @@ msgstr "Retour au menu principal"
 msgid "Base information"
 msgid "Base information"
 msgstr "Information générale"
 msgstr "Information générale"
 
 
+#: src/views/domain/components/RightSettings.vue:4
 #: src/views/preference/Preference.vue:5
 #: src/views/preference/Preference.vue:5
 msgid "Basic"
 msgid "Basic"
 msgstr "Basique"
 msgstr "Basique"
@@ -182,13 +192,14 @@ msgstr "Build avec"
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:17 src/components/ChatGPT/ChatGPT.vue:18
-#: src/components/ChatGPT/ChatGPT.vue:22 src/components/ChatGPT/ChatGPT.vue:24
+#: src/components/ChatGPT/ChatGPT.vue:22 src/components/ChatGPT/ChatGPT.vue:23
+#: src/components/ChatGPT/ChatGPT.vue:27 src/components/ChatGPT/ChatGPT.vue:29
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/views/domain/cert/components/ObtainCert.vue:191
 #: src/views/domain/cert/components/ObtainCert.vue:191
-#: src/views/domain/DomainEdit.vue:176
+#: src/views/domain/components/Deploy.vue:26
+#: src/views/domain/components/RightSettings.vue:48
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 msgid "Cancel"
 msgid "Cancel"
@@ -246,8 +257,8 @@ msgstr "Utilisateur chinois : https://ghproxy.com/"
 msgid "Cleaning environment variables"
 msgid "Cleaning environment variables"
 msgstr "Nettoyage des variables d'environnement"
 msgstr "Nettoyage des variables d'environnement"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:31 src/components/ChatGPT/ChatGPT.vue:32
-#: src/components/ChatGPT/ChatGPT.vue:38 src/components/ChatGPT/ChatGPT.vue:42
+#: src/components/ChatGPT/ChatGPT.vue:36 src/components/ChatGPT/ChatGPT.vue:37
+#: src/components/ChatGPT/ChatGPT.vue:43 src/components/ChatGPT/ChatGPT.vue:47
 msgid "Clear"
 msgid "Clear"
 msgstr "Effacer"
 msgstr "Effacer"
 
 
@@ -297,7 +308,7 @@ msgstr "Contenu"
 msgid "Core Upgrade"
 msgid "Core Upgrade"
 msgstr "Mise à jour du core"
 msgstr "Mise à jour du core"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:66
+#: src/views/dashboard/ServerAnalytic.vue:68
 msgid "CPU Status"
 msgid "CPU Status"
 msgstr "État du processeur"
 msgstr "État du processeur"
 
 
@@ -306,7 +317,7 @@ msgstr "État du processeur"
 msgid "CPU:"
 msgid "CPU:"
 msgstr "CPU :"
 msgstr "CPU :"
 
 
-#: src/views/domain/DomainAdd.vue:154
+#: src/views/domain/DomainAdd.vue:157
 msgid "Create Another"
 msgid "Create Another"
 msgstr "Créer un autre"
 msgstr "Créer un autre"
 
 
@@ -376,6 +387,24 @@ msgstr "Supprimer l'identifiant : %{id}"
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr "Supprimer le site : %{site_name}"
 msgstr "Supprimer le site : %{site_name}"
 
 
+#: src/views/domain/components/Deploy.vue:12
+#: src/views/domain/components/Deploy.vue:13
+msgid "Deploy"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:63
+msgid "Deploy %{conf_name} to %{node_name} failed"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:40
+msgid "Deploy %{conf_name} to %{node_name} successfully"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:38
+#, fuzzy
+msgid "Deploy successfully"
+msgstr "Sauvegarde réussie"
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
@@ -416,11 +445,12 @@ msgstr "La désactivation du renouvellement automatique a échoué pour %{name}"
 msgid "Disabled"
 msgid "Disabled"
 msgstr "Désactivé"
 msgstr "Désactivé"
 
 
-#: src/views/domain/DomainEdit.vue:163 src/views/domain/DomainList.vue:69
+#: src/views/domain/components/RightSettings.vue:35
+#: src/views/domain/DomainList.vue:69
 msgid "Disabled successfully"
 msgid "Disabled successfully"
 msgstr "Désactivé avec succès"
 msgstr "Désactivé avec succès"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:98
+#: src/views/dashboard/ServerAnalytic.vue:100
 msgid "Disk IO"
 msgid "Disk IO"
 msgstr "E/S disque"
 msgstr "E/S disque"
 
 
@@ -439,15 +469,22 @@ msgstr "Fournisseur DNS"
 msgid "DNS01"
 msgid "DNS01"
 msgstr "DNS01"
 msgstr "DNS01"
 
 
+#: src/views/domain/components/Deploy.vue:21
+#, fuzzy
+msgid "Do you want to deploy this file to remote server?"
+msgid_plural "Do you want to deploy this file to remote servers?"
+msgstr[0] "Voulez-vous supprimer ce serveur ?"
+msgstr[1] "Voulez-vous supprimer ce serveur ?"
+
 #: src/views/domain/cert/components/ObtainCert.vue:187
 #: src/views/domain/cert/components/ObtainCert.vue:187
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Voulez-vous désactiver le renouvellement automatique des certificats ?"
 msgstr "Voulez-vous désactiver le renouvellement automatique des certificats ?"
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 msgid "Do you want to disable this site?"
 msgid "Do you want to disable this site?"
 msgstr "Voulez-vous désactiver ce site ?"
 msgstr "Voulez-vous désactiver ce site ?"
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 msgid "Do you want to enable this site?"
 msgid "Do you want to enable this site?"
 msgstr "Voulez-vous activer ce site ?"
 msgstr "Voulez-vous activer ce site ?"
 
 
@@ -481,14 +518,30 @@ msgstr "Téléchargement de la dernière version"
 msgid "Dry run mode enabled"
 msgid "Dry run mode enabled"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/SiteDuplicate.vue:2
 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
-#: src/views/domain/SiteDuplicate.vue:2
 msgid "Duplicate"
 msgid "Duplicate"
 msgstr "Dupliquer"
 msgstr "Dupliquer"
 
 
-#: src/views/domain/SiteDuplicate.vue:43
-msgid "Duplicated successfully"
+#: src/views/domain/components/SiteDuplicate.vue:73
+#, fuzzy
+msgid "Duplicate %{conf_name} to %{node_name} successfully"
+msgstr "Dupliqué avec succès"
+
+#: src/views/domain/components/SiteDuplicate.vue:78
+#, fuzzy
+msgid "Duplicate failed"
+msgstr "Dupliquer"
+
+#: src/views/domain/components/SiteDuplicate.vue:71
+#, fuzzy
+msgid "Duplicate successfully"
+msgstr "Dupliqué avec succès"
+
+#: src/views/domain/components/SiteDuplicate.vue:57
+#, fuzzy
+msgid "Duplicate to local successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
 #: src/views/domain/DomainEdit.vue:5 src/views/domain/DomainEdit.vue:6
 #: src/views/domain/DomainEdit.vue:5 src/views/domain/DomainEdit.vue:6
@@ -507,28 +560,44 @@ msgstr "Modifier le site"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 msgstr "Email (*)"
 
 
+#: src/views/domain/components/Deploy.vue:53
+msgid "Enable %{conf_name} in %{node_name} failed"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:48
+msgid "Enable %{conf_name} in %{node_name} successfully"
+msgstr ""
+
 #: src/views/domain/cert/components/ObtainCert.vue:55
 #: src/views/domain/cert/components/ObtainCert.vue:55
 msgid "Enable auto-renewal failed for %{name}"
 msgid "Enable auto-renewal failed for %{name}"
 msgstr "Échec de l'activation du renouvellement automatique pour %{name}"
 msgstr "Échec de l'activation du renouvellement automatique pour %{name}"
 
 
-#: src/views/domain/DomainAdd.vue:49
+#: src/views/domain/DomainAdd.vue:52
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "Échec de l'activation"
 msgstr "Échec de l'activation"
 
 
+#: src/views/domain/components/Deploy.vue:46
+#, fuzzy
+msgid "Enable successfully"
+msgstr "Activé avec succès"
+
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr "Activer TLS"
 msgstr "Activer TLS"
 
 
 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:44
 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:44
-#: src/views/domain/DomainEdit.vue:29 src/views/domain/DomainEdit.vue:7
-#: src/views/domain/DomainEdit.vue:8 src/views/domain/DomainList.vue:10
-#: src/views/domain/DomainList.vue:11 src/views/domain/DomainList.vue:12
-#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31
+#: src/views/domain/components/Deploy.vue:3
+#: src/views/domain/components/Deploy.vue:4
+#: src/views/domain/components/RightSettings.vue:5
+#: src/views/domain/DomainEdit.vue:7 src/views/domain/DomainEdit.vue:8
+#: src/views/domain/DomainList.vue:10 src/views/domain/DomainList.vue:11
+#: src/views/domain/DomainList.vue:12 src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:31
 msgid "Enabled"
 msgid "Enabled"
 msgstr "Activé"
 msgstr "Activé"
 
 
-#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:154
-#: src/views/domain/DomainList.vue:59
+#: src/views/domain/components/RightSettings.vue:26
+#: src/views/domain/DomainAdd.vue:49 src/views/domain/DomainList.vue:59
 msgid "Enabled successfully"
 msgid "Enabled successfully"
 msgstr "Activé avec succès"
 msgstr "Activé avec succès"
 
 
@@ -570,11 +639,13 @@ msgstr "Date d'expiration : %{date}"
 msgid "Export"
 msgid "Export"
 msgstr "Exporter"
 msgstr "Exporter"
 
 
-#: src/views/domain/DomainEdit.vue:166 src/views/domain/DomainList.vue:73
+#: src/views/domain/components/RightSettings.vue:38
+#: src/views/domain/DomainList.vue:73
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "Impossible de désactiver %{msg}"
 msgstr "Impossible de désactiver %{msg}"
 
 
-#: src/views/domain/DomainEdit.vue:157 src/views/domain/DomainList.vue:63
+#: src/views/domain/components/RightSettings.vue:29
+#: src/views/domain/DomainList.vue:63
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "Impossible d'activer %{msg}"
 msgstr "Impossible d'activer %{msg}"
 
 
@@ -582,7 +653,7 @@ msgstr "Impossible d'activer %{msg}"
 msgid "Failed to get certificate information"
 msgid "Failed to get certificate information"
 msgstr "Échec de l'obtention des informations sur le certificat"
 msgstr "Échec de l'obtention des informations sur le certificat"
 
 
-#: src/views/domain/DomainEdit.vue:132
+#: src/views/domain/DomainEdit.vue:133
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr ""
 msgstr ""
 "Échec de l'enregistrement, une ou plusieurs erreurs de syntaxe ont été "
 "Échec de l'enregistrement, une ou plusieurs erreurs de syntaxe ont été "
@@ -608,7 +679,7 @@ msgstr "Filtrer"
 msgid "Finished"
 msgid "Finished"
 msgstr "Finie"
 msgstr "Finie"
 
 
-#: src/views/config/ConfigEdit.vue:86
+#: src/views/config/ConfigEdit.vue:83
 msgid "Format Code"
 msgid "Format Code"
 msgstr "Code de formatage"
 msgstr "Code de formatage"
 
 
@@ -725,12 +796,14 @@ msgstr "Clair"
 msgid "Link Start"
 msgid "Link Start"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:154
+#: src/views/dashboard/ServerAnalytic.vue:161
 msgid "Load Averages:"
 msgid "Load Averages:"
 msgstr "Charges moyennes :"
 msgstr "Charges moyennes :"
 
 
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:6
 #: src/components/EnvIndicator/EnvIndicator.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:4
+#: src/components/NodeSelector/NodeSelector.vue:5
 #, fuzzy
 #, fuzzy
 msgid "Local"
 msgid "Local"
 msgstr "Localisation"
 msgstr "Localisation"
@@ -780,16 +853,16 @@ msgstr "Gérer les sites"
 msgid "Manage Users"
 msgid "Manage Users"
 msgstr "Gérer les utilisateurs"
 msgstr "Gérer les utilisateurs"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:34
+#: src/views/dashboard/ServerAnalytic.vue:36
 msgid "Memory"
 msgid "Memory"
 msgstr "Mémoire"
 msgstr "Mémoire"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:31
+#: src/views/dashboard/ServerAnalytic.vue:33
 msgid "Memory and Storage"
 msgid "Memory and Storage"
 msgstr "Mémoire et stockage"
 msgstr "Mémoire et stockage"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:13 src/components/ChatGPT/ChatGPT.vue:14
-#: src/components/ChatGPT/ChatGPT.vue:18 src/components/ChatGPT/ChatGPT.vue:20
+#: src/components/ChatGPT/ChatGPT.vue:18 src/components/ChatGPT/ChatGPT.vue:19
+#: src/components/ChatGPT/ChatGPT.vue:23 src/components/ChatGPT/ChatGPT.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:26
 #: src/components/StdDataDisplay/StdTable.vue:26
@@ -799,7 +872,7 @@ msgstr "Mémoire et stockage"
 msgid "Modify"
 msgid "Modify"
 msgstr "Modifier"
 msgstr "Modifier"
 
 
-#: src/views/domain/DomainAdd.vue:151
+#: src/views/domain/DomainAdd.vue:154
 msgid "Modify Config"
 msgid "Modify Config"
 msgstr "Modifier la configuration"
 msgstr "Modifier la configuration"
 
 
@@ -810,25 +883,25 @@ msgstr "Directive multiligne"
 
 
 #: src/views/cert/Cert.vue:16 src/views/cert/DNSCredential.vue:12
 #: src/views/cert/Cert.vue:16 src/views/cert/DNSCredential.vue:12
 #: src/views/config/config.ts:8 src/views/domain/cert/ChangeCert.vue:21
 #: src/views/config/config.ts:8 src/views/domain/cert/ChangeCert.vue:21
-#: src/views/domain/DomainEdit.vue:32 src/views/domain/DomainList.vue:15
-#: src/views/domain/SiteDuplicate.vue:5
-#: src/views/environment/Environment.vue:13
+#: src/views/domain/components/RightSettings.vue:8
+#: src/views/domain/components/SiteDuplicate.vue:5
+#: src/views/domain/DomainList.vue:15 src/views/environment/Environment.vue:13
 msgid "Name"
 msgid "Name"
 msgstr "Nom"
 msgstr "Nom"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:76
+#: src/views/dashboard/ServerAnalytic.vue:78
 msgid "Network"
 msgid "Network"
 msgstr "Réseau"
 msgstr "Réseau"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:50
+#: src/views/dashboard/ServerAnalytic.vue:52
 msgid "Network Statistics"
 msgid "Network Statistics"
 msgstr "Statistiques du réseau"
 msgstr "Statistiques du réseau"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:54
+#: src/views/dashboard/ServerAnalytic.vue:56
 msgid "Network Total Receive"
 msgid "Network Total Receive"
 msgstr "Réception totale du réseau"
 msgstr "Réception totale du réseau"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:58
+#: src/views/dashboard/ServerAnalytic.vue:60
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Envoi total réseau"
 msgstr "Envoi total réseau"
 
 
@@ -839,7 +912,7 @@ msgstr "Nouvelle version publiée"
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:21
 #: src/views/domain/cert/components/ObtainCert.vue:21
-#: src/views/domain/DomainAdd.vue:141
+#: src/views/domain/DomainAdd.vue:144
 msgid "Next"
 msgid "Next"
 msgstr "Suivant"
 msgstr "Suivant"
 
 
@@ -847,7 +920,7 @@ msgstr "Suivant"
 msgid "Nginx Access Log Path"
 msgid "Nginx Access Log Path"
 msgstr "Chemin du journal d'accès Nginx"
 msgstr "Chemin du journal d'accès Nginx"
 
 
-#: src/views/domain/DomainEdit.vue:39
+#: src/views/domain/DomainEdit.vue:32
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Erreur d'analyse de configuration Nginx"
 msgstr "Erreur d'analyse de configuration Nginx"
 
 
@@ -874,7 +947,7 @@ msgstr "Nginx a été rechargé avec succès"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx a redémarré avec succès"
 msgstr "Nginx a redémarré avec succès"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:38
+#: src/components/ChatGPT/ChatGPT.vue:43
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
@@ -903,24 +976,32 @@ msgstr "Obtenir un certificat"
 msgid "Obtaining certificate"
 msgid "Obtaining certificate"
 msgstr "Obtention du certificat"
 msgstr "Obtention du certificat"
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:11
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:16
 #: src/views/dashboard/Environments.vue:16
 #: src/views/environment/Environment.vue:48
 #: src/views/environment/Environment.vue:48
 msgid "Offline"
 msgid "Offline"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:39
+#: src/components/ChatGPT/ChatGPT.vue:44
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:190
 #: src/views/domain/cert/components/ObtainCert.vue:190
-#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:28
+#: src/views/domain/components/Deploy.vue:25
+#: src/views/domain/components/RightSettings.vue:47
+#: src/views/domain/DomainList.vue:28
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 msgid "OK"
 msgid "OK"
 msgstr "OK"
 msgstr "OK"
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:5
+#: src/components/NodeSelector/NodeSelector.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:9
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/environment/Environment.vue:45
 #: src/views/environment/Environment.vue:45
@@ -937,10 +1018,20 @@ msgstr "OpenAI"
 msgid "OS"
 msgid "OS"
 msgstr "OS"
 msgstr "OS"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:160
+#: src/views/dashboard/ServerAnalytic.vue:167
 msgid "OS:"
 msgid "OS:"
 msgstr "OS :"
 msgstr "OS :"
 
 
+#: src/views/domain/components/Deploy.vue:5
+#: src/views/domain/components/Deploy.vue:6
+msgid "Overwrite"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:7
+#: src/views/domain/components/Deploy.vue:8
+msgid "Overwrite exist file"
+msgstr ""
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 msgid "Params"
 msgid "Params"
 msgstr "Paramètres"
 msgstr "Paramètres"
@@ -991,7 +1082,7 @@ msgstr ""
 "des informations d'identification ci-dessous pour demander l'API du "
 "des informations d'identification ci-dessous pour demander l'API du "
 "fournisseur DNS."
 "fournisseur DNS."
 
 
-#: src/views/domain/SiteDuplicate.vue:28
+#: src/views/domain/components/SiteDuplicate.vue:32
 msgid ""
 msgid ""
 "Please input name, this will be used as the filename of the new "
 "Please input name, this will be used as the filename of the new "
 "configuration!"
 "configuration!"
@@ -1011,6 +1102,10 @@ msgstr "Veuillez saisir votre mot de passe !"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "Veuillez saisir votre nom d'utilisateur !"
 msgstr "Veuillez saisir votre nom d'utilisateur !"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:39
+msgid "Please select at least one node!"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:25 src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:25 src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:30 src/views/system/Upgrade.vue:34
 #: src/views/system/Upgrade.vue:30 src/views/system/Upgrade.vue:34
 #: src/views/system/Upgrade.vue:38 src/views/system/Upgrade.vue:48
 #: src/views/system/Upgrade.vue:38 src/views/system/Upgrade.vue:48
@@ -1044,20 +1139,20 @@ msgstr "Groupe de projet"
 msgid "Provider"
 msgid "Provider"
 msgstr "Fournisseur"
 msgstr "Fournisseur"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:109
-#: src/views/dashboard/ServerAnalytic.vue:23
+#: src/views/dashboard/ServerAnalytic.vue:111
+#: src/views/dashboard/ServerAnalytic.vue:30
 #, fuzzy
 #, fuzzy
 msgid "Reads"
 msgid "Reads"
 msgstr "Lectures"
 msgstr "Lectures"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:20
-#: src/views/dashboard/ServerAnalytic.vue:80
+#: src/views/dashboard/ServerAnalytic.vue:27
+#: src/views/dashboard/ServerAnalytic.vue:82
 #, fuzzy
 #, fuzzy
 msgid "Receive"
 msgid "Receive"
 msgstr "Recevoir"
 msgstr "Recevoir"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:34 src/components/ChatGPT/ChatGPT.vue:35
-#: src/components/ChatGPT/ChatGPT.vue:41 src/components/ChatGPT/ChatGPT.vue:45
+#: src/components/ChatGPT/ChatGPT.vue:39 src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:46 src/components/ChatGPT/ChatGPT.vue:50
 msgid "Regenerate response"
 msgid "Regenerate response"
 msgstr "Régénérer la réponse"
 msgstr "Régénérer la réponse"
 
 
@@ -1078,8 +1173,8 @@ msgstr "Réinstaller"
 msgid "Release Note"
 msgid "Release Note"
 msgstr "Note de version"
 msgstr "Note de version"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:20 src/components/ChatGPT/ChatGPT.vue:21
-#: src/components/ChatGPT/ChatGPT.vue:25 src/components/ChatGPT/ChatGPT.vue:27
+#: src/components/ChatGPT/ChatGPT.vue:25 src/components/ChatGPT/ChatGPT.vue:26
+#: src/components/ChatGPT/ChatGPT.vue:30 src/components/ChatGPT/ChatGPT.vue:32
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:17
 #: src/components/NginxControl/NginxControl.vue:17
@@ -1122,9 +1217,9 @@ msgstr "Mode d'exécution"
 msgid "Running"
 msgid "Running"
 msgstr "En cours d'éxécution"
 msgstr "En cours d'éxécution"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:16 src/components/ChatGPT/ChatGPT.vue:17
-#: src/components/ChatGPT/ChatGPT.vue:21 src/components/ChatGPT/ChatGPT.vue:23
-#: src/views/config/ConfigEdit.vue:89 src/views/domain/DomainEdit.vue:266
+#: src/components/ChatGPT/ChatGPT.vue:21 src/components/ChatGPT/ChatGPT.vue:22
+#: src/components/ChatGPT/ChatGPT.vue:26 src/components/ChatGPT/ChatGPT.vue:28
+#: src/views/config/ConfigEdit.vue:86 src/views/domain/DomainEdit.vue:228
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
@@ -1140,7 +1235,7 @@ msgstr "Enregistrer"
 msgid "Save Directive"
 msgid "Save Directive"
 msgstr "Enregistrer la directive"
 msgstr "Enregistrer la directive"
 
 
-#: src/views/config/ConfigEdit.vue:53 src/views/domain/DomainAdd.vue:53
+#: src/views/config/ConfigEdit.vue:53 src/views/domain/DomainAdd.vue:56
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "Enregistrer l'erreur %{msg}"
 msgstr "Enregistrer l'erreur %{msg}"
@@ -1154,8 +1249,8 @@ msgstr "Sauvegarde réussie"
 msgid "Save Successfully"
 msgid "Save Successfully"
 msgstr "Sauvegarde Réussie"
 msgstr "Sauvegarde Réussie"
 
 
-#: src/views/config/ConfigEdit.vue:51 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:146
+#: src/views/config/ConfigEdit.vue:51 src/views/domain/DomainAdd.vue:46
+#: src/views/domain/DomainEdit.vue:147
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr "Enregistré avec succès"
 msgstr "Enregistré avec succès"
@@ -1164,8 +1259,8 @@ msgstr "Enregistré avec succès"
 msgid "Selector"
 msgid "Selector"
 msgstr "Sélecteur"
 msgstr "Sélecteur"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:21
-#: src/views/dashboard/ServerAnalytic.vue:87
+#: src/views/dashboard/ServerAnalytic.vue:28
+#: src/views/dashboard/ServerAnalytic.vue:89
 msgid "Send"
 msgid "Send"
 msgstr "Envoyer"
 msgstr "Envoyer"
 
 
@@ -1192,7 +1287,7 @@ msgstr "server_name introuvable dans les directives"
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
-#: src/views/domain/DomainAdd.vue:116
+#: src/views/domain/DomainAdd.vue:119
 msgid "server_name parameter is required"
 msgid "server_name parameter is required"
 msgstr "Le paramètre server_name est obligatoire"
 msgstr "Le paramètre server_name est obligatoire"
 
 
@@ -1246,7 +1341,7 @@ msgstr "Statut"
 msgid "Stopped"
 msgid "Stopped"
 msgstr "Arrêté"
 msgstr "Arrêté"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:43
+#: src/views/dashboard/ServerAnalytic.vue:45
 msgid "Storage"
 msgid "Storage"
 msgstr "Stockage"
 msgstr "Stockage"
 
 
@@ -1254,7 +1349,7 @@ msgstr "Stockage"
 msgid "Subject Name: %{name}"
 msgid "Subject Name: %{name}"
 msgstr "Nom du sujet : %{name}"
 msgstr "Nom du sujet : %{name}"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:38
+#: src/views/dashboard/ServerAnalytic.vue:40
 #, fuzzy
 #, fuzzy
 msgid "Swap"
 msgid "Swap"
 msgstr "Échanger"
 msgstr "Échanger"
@@ -1267,6 +1362,10 @@ msgstr "Système"
 msgid "Table"
 msgid "Table"
 msgstr "Tableau"
 msgstr "Tableau"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:8
+msgid "Target"
+msgstr ""
+
 #: src/routes/index.ts:102 src/views/pty/Terminal.vue:2
 #: src/routes/index.ts:102 src/views/pty/Terminal.vue:2
 msgid "Terminal"
 msgid "Terminal"
 msgstr "Terminal"
 msgstr "Terminal"
@@ -1337,8 +1436,10 @@ msgid "Type"
 msgstr "Type"
 msgstr "Type"
 
 
 #: src/views/cert/Cert.vue:68 src/views/cert/DNSCredential.vue:25
 #: src/views/cert/Cert.vue:68 src/views/cert/DNSCredential.vue:25
-#: src/views/config/config.ts:28 src/views/domain/DomainList.vue:41
-#: src/views/environment/Environment.vue:55 src/views/user/User.vue:37
+#: src/views/config/config.ts:28
+#: src/views/domain/components/RightSettings.vue:11
+#: src/views/domain/DomainList.vue:41 src/views/environment/Environment.vue:55
+#: src/views/user/User.vue:37
 msgid "Updated at"
 msgid "Updated at"
 msgstr "Mis à jour le"
 msgstr "Mis à jour le"
 
 
@@ -1362,7 +1463,7 @@ msgstr "Mise à niveau réussie"
 msgid "Upgrading Nginx UI, please wait..."
 msgid "Upgrading Nginx UI, please wait..."
 msgstr "Mise à jour de Nginx UI, veuillez patienter..."
 msgstr "Mise à jour de Nginx UI, veuillez patienter..."
 
 
-#: src/views/dashboard/ServerAnalytic.vue:150
+#: src/views/dashboard/ServerAnalytic.vue:157
 msgid "Uptime:"
 msgid "Uptime:"
 msgstr "Disponibilité :"
 msgstr "Disponibilité :"
 
 
@@ -1370,6 +1471,11 @@ msgstr "Disponibilité :"
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
+#: src/components/ChatGPT/ChatGPT.vue:16
+#, fuzzy
+msgid "User"
+msgstr "Nom d'utilisateur"
+
 #: src/views/other/Login.vue:11 src/views/user/User.vue:11
 #: src/views/other/Login.vue:11 src/views/user/User.vue:11
 msgid "Username"
 msgid "Username"
 msgstr "Nom d'utilisateur"
 msgstr "Nom d'utilisateur"
@@ -1406,8 +1512,8 @@ msgstr ""
 "Nous allons supprimer la configuration HTTPChallenge de ce fichier et "
 "Nous allons supprimer la configuration HTTPChallenge de ce fichier et "
 "recharger le Nginx. Êtes-vous sûr de vouloir continuer?"
 "recharger le Nginx. Êtes-vous sûr de vouloir continuer?"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:102
-#: src/views/dashboard/ServerAnalytic.vue:22
+#: src/views/dashboard/ServerAnalytic.vue:104
+#: src/views/dashboard/ServerAnalytic.vue:29
 msgid "Writes"
 msgid "Writes"
 msgstr "Écritures"
 msgstr "Écritures"
 
 

+ 167 - 75
frontend/src/language/messages.pot

@@ -80,7 +80,7 @@ msgstr ""
 msgid "Arch"
 msgid "Arch"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:45
 msgid "Are you sure you want to clear the record of chat?"
 msgid "Are you sure you want to clear the record of chat?"
 msgstr ""
 msgstr ""
 
 
@@ -97,6 +97,15 @@ msgstr ""
 msgid "Are you sure you want to remove this location?"
 msgid "Are you sure you want to remove this location?"
 msgstr ""
 msgstr ""
 
 
+#: src/components/ChatGPT/ChatGPT.vue:4
+#: src/components/ChatGPT/ChatGPT.vue:5
+msgid "Ask ChatGPT for Help"
+msgstr ""
+
+#: src/components/ChatGPT/ChatGPT.vue:16
+msgid "Assistant"
+msgstr ""
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
@@ -142,8 +151,8 @@ msgstr ""
 #: src/views/config/Config.vue:18
 #: src/views/config/Config.vue:18
 #: src/views/config/Config.vue:28
 #: src/views/config/Config.vue:28
 #: src/views/config/Config.vue:6
 #: src/views/config/Config.vue:6
-#: src/views/config/ConfigEdit.vue:83
-#: src/views/domain/DomainEdit.vue:263
+#: src/views/config/ConfigEdit.vue:80
+#: src/views/domain/DomainEdit.vue:225
 #: src/views/nginx_log/NginxLog.vue:161
 #: src/views/nginx_log/NginxLog.vue:161
 msgid "Back"
 msgid "Back"
 msgstr ""
 msgstr ""
@@ -156,6 +165,7 @@ msgstr ""
 msgid "Base information"
 msgid "Base information"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/RightSettings.vue:4
 #: src/views/preference/Preference.vue:5
 #: src/views/preference/Preference.vue:5
 msgid "Basic"
 msgid "Basic"
 msgstr ""
 msgstr ""
@@ -181,15 +191,16 @@ msgstr ""
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:17
-#: src/components/ChatGPT/ChatGPT.vue:18
 #: src/components/ChatGPT/ChatGPT.vue:22
 #: src/components/ChatGPT/ChatGPT.vue:22
-#: src/components/ChatGPT/ChatGPT.vue:24
+#: src/components/ChatGPT/ChatGPT.vue:23
+#: src/components/ChatGPT/ChatGPT.vue:27
+#: src/components/ChatGPT/ChatGPT.vue:29
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/views/domain/cert/components/ObtainCert.vue:191
 #: src/views/domain/cert/components/ObtainCert.vue:191
-#: src/views/domain/DomainEdit.vue:176
+#: src/views/domain/components/Deploy.vue:26
+#: src/views/domain/components/RightSettings.vue:48
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 msgid "Cancel"
 msgid "Cancel"
@@ -251,10 +262,10 @@ msgstr ""
 msgid "Cleaning environment variables"
 msgid "Cleaning environment variables"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:31
-#: src/components/ChatGPT/ChatGPT.vue:32
-#: src/components/ChatGPT/ChatGPT.vue:38
-#: src/components/ChatGPT/ChatGPT.vue:42
+#: src/components/ChatGPT/ChatGPT.vue:36
+#: src/components/ChatGPT/ChatGPT.vue:37
+#: src/components/ChatGPT/ChatGPT.vue:43
+#: src/components/ChatGPT/ChatGPT.vue:47
 msgid "Clear"
 msgid "Clear"
 msgstr ""
 msgstr ""
 
 
@@ -304,7 +315,7 @@ msgstr ""
 msgid "Core Upgrade"
 msgid "Core Upgrade"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:66
+#: src/views/dashboard/ServerAnalytic.vue:68
 msgid "CPU Status"
 msgid "CPU Status"
 msgstr ""
 msgstr ""
 
 
@@ -313,7 +324,7 @@ msgstr ""
 msgid "CPU:"
 msgid "CPU:"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainAdd.vue:154
+#: src/views/domain/DomainAdd.vue:157
 msgid "Create Another"
 msgid "Create Another"
 msgstr ""
 msgstr ""
 
 
@@ -388,6 +399,23 @@ msgstr ""
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/Deploy.vue:12
+#: src/views/domain/components/Deploy.vue:13
+msgid "Deploy"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:63
+msgid "Deploy %{conf_name} to %{node_name} failed"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:40
+msgid "Deploy %{conf_name} to %{node_name} successfully"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:38
+msgid "Deploy successfully"
+msgstr ""
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
@@ -433,12 +461,12 @@ msgstr ""
 msgid "Disabled"
 msgid "Disabled"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:163
+#: src/views/domain/components/RightSettings.vue:35
 #: src/views/domain/DomainList.vue:69
 #: src/views/domain/DomainList.vue:69
 msgid "Disabled successfully"
 msgid "Disabled successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:98
+#: src/views/dashboard/ServerAnalytic.vue:100
 msgid "Disk IO"
 msgid "Disk IO"
 msgstr ""
 msgstr ""
 
 
@@ -458,15 +486,21 @@ msgstr ""
 msgid "DNS01"
 msgid "DNS01"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/Deploy.vue:21
+msgid "Do you want to deploy this file to remote server?"
+msgid_plural "Do you want to deploy this file to remote servers?"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/views/domain/cert/components/ObtainCert.vue:187
 #: src/views/domain/cert/components/ObtainCert.vue:187
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 msgid "Do you want to disable this site?"
 msgid "Do you want to disable this site?"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 msgid "Do you want to enable this site?"
 msgid "Do you want to enable this site?"
 msgstr ""
 msgstr ""
 
 
@@ -498,16 +532,28 @@ msgstr ""
 msgid "Dry run mode enabled"
 msgid "Dry run mode enabled"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/SiteDuplicate.vue:2
 #: src/views/domain/DomainList.vue:14
 #: src/views/domain/DomainList.vue:14
 #: src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:16
 #: src/views/domain/DomainList.vue:16
 #: src/views/domain/DomainList.vue:23
 #: src/views/domain/DomainList.vue:23
-#: src/views/domain/SiteDuplicate.vue:2
 msgid "Duplicate"
 msgid "Duplicate"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/SiteDuplicate.vue:43
-msgid "Duplicated successfully"
+#: src/views/domain/components/SiteDuplicate.vue:73
+msgid "Duplicate %{conf_name} to %{node_name} successfully"
+msgstr ""
+
+#: src/views/domain/components/SiteDuplicate.vue:78
+msgid "Duplicate failed"
+msgstr ""
+
+#: src/views/domain/components/SiteDuplicate.vue:71
+msgid "Duplicate successfully"
+msgstr ""
+
+#: src/views/domain/components/SiteDuplicate.vue:57
+msgid "Duplicate to local successfully"
 msgstr ""
 msgstr ""
 
 
 #: src/views/domain/DomainEdit.vue:5
 #: src/views/domain/DomainEdit.vue:5
@@ -528,21 +574,35 @@ msgstr ""
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/Deploy.vue:53
+msgid "Enable %{conf_name} in %{node_name} failed"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:48
+msgid "Enable %{conf_name} in %{node_name} successfully"
+msgstr ""
+
 #: src/views/domain/cert/components/ObtainCert.vue:55
 #: src/views/domain/cert/components/ObtainCert.vue:55
 msgid "Enable auto-renewal failed for %{name}"
 msgid "Enable auto-renewal failed for %{name}"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainAdd.vue:49
+#: src/views/domain/DomainAdd.vue:52
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/Deploy.vue:46
+msgid "Enable successfully"
+msgstr ""
+
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr ""
 msgstr ""
 
 
 #: src/views/cert/Cert.vue:44
 #: src/views/cert/Cert.vue:44
 #: src/views/domain/cert/ChangeCert.vue:44
 #: src/views/domain/cert/ChangeCert.vue:44
-#: src/views/domain/DomainEdit.vue:29
+#: src/views/domain/components/Deploy.vue:3
+#: src/views/domain/components/Deploy.vue:4
+#: src/views/domain/components/RightSettings.vue:5
 #: src/views/domain/DomainEdit.vue:7
 #: src/views/domain/DomainEdit.vue:7
 #: src/views/domain/DomainEdit.vue:8
 #: src/views/domain/DomainEdit.vue:8
 #: src/views/domain/DomainList.vue:10
 #: src/views/domain/DomainList.vue:10
@@ -553,8 +613,8 @@ msgstr ""
 msgid "Enabled"
 msgid "Enabled"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainAdd.vue:46
-#: src/views/domain/DomainEdit.vue:154
+#: src/views/domain/components/RightSettings.vue:26
+#: src/views/domain/DomainAdd.vue:49
 #: src/views/domain/DomainList.vue:59
 #: src/views/domain/DomainList.vue:59
 msgid "Enabled successfully"
 msgid "Enabled successfully"
 msgstr ""
 msgstr ""
@@ -600,12 +660,12 @@ msgstr ""
 msgid "Export"
 msgid "Export"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:166
+#: src/views/domain/components/RightSettings.vue:38
 #: src/views/domain/DomainList.vue:73
 #: src/views/domain/DomainList.vue:73
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:157
+#: src/views/domain/components/RightSettings.vue:29
 #: src/views/domain/DomainList.vue:63
 #: src/views/domain/DomainList.vue:63
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr ""
 msgstr ""
@@ -614,7 +674,7 @@ msgstr ""
 msgid "Failed to get certificate information"
 msgid "Failed to get certificate information"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:132
+#: src/views/domain/DomainEdit.vue:133
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr ""
 msgstr ""
 
 
@@ -640,7 +700,7 @@ msgstr ""
 msgid "Finished"
 msgid "Finished"
 msgstr ""
 msgstr ""
 
 
-#: src/views/config/ConfigEdit.vue:86
+#: src/views/config/ConfigEdit.vue:83
 msgid "Format Code"
 msgid "Format Code"
 msgstr ""
 msgstr ""
 
 
@@ -760,12 +820,14 @@ msgstr ""
 msgid "Link Start"
 msgid "Link Start"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:154
+#: src/views/dashboard/ServerAnalytic.vue:161
 msgid "Load Averages:"
 msgid "Load Averages:"
 msgstr ""
 msgstr ""
 
 
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:6
 #: src/components/EnvIndicator/EnvIndicator.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:4
+#: src/components/NodeSelector/NodeSelector.vue:5
 msgid "Local"
 msgid "Local"
 msgstr ""
 msgstr ""
 
 
@@ -810,18 +872,18 @@ msgstr ""
 msgid "Manage Users"
 msgid "Manage Users"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:34
+#: src/views/dashboard/ServerAnalytic.vue:36
 msgid "Memory"
 msgid "Memory"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:31
+#: src/views/dashboard/ServerAnalytic.vue:33
 msgid "Memory and Storage"
 msgid "Memory and Storage"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:13
-#: src/components/ChatGPT/ChatGPT.vue:14
 #: src/components/ChatGPT/ChatGPT.vue:18
 #: src/components/ChatGPT/ChatGPT.vue:18
-#: src/components/ChatGPT/ChatGPT.vue:20
+#: src/components/ChatGPT/ChatGPT.vue:19
+#: src/components/ChatGPT/ChatGPT.vue:23
+#: src/components/ChatGPT/ChatGPT.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:26
 #: src/components/StdDataDisplay/StdTable.vue:26
@@ -831,7 +893,7 @@ msgstr ""
 msgid "Modify"
 msgid "Modify"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainAdd.vue:151
+#: src/views/domain/DomainAdd.vue:154
 msgid "Modify Config"
 msgid "Modify Config"
 msgstr ""
 msgstr ""
 
 
@@ -844,26 +906,26 @@ msgstr ""
 #: src/views/cert/DNSCredential.vue:12
 #: src/views/cert/DNSCredential.vue:12
 #: src/views/config/config.ts:8
 #: src/views/config/config.ts:8
 #: src/views/domain/cert/ChangeCert.vue:21
 #: src/views/domain/cert/ChangeCert.vue:21
-#: src/views/domain/DomainEdit.vue:32
+#: src/views/domain/components/RightSettings.vue:8
+#: src/views/domain/components/SiteDuplicate.vue:5
 #: src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:15
-#: src/views/domain/SiteDuplicate.vue:5
 #: src/views/environment/Environment.vue:13
 #: src/views/environment/Environment.vue:13
 msgid "Name"
 msgid "Name"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:76
+#: src/views/dashboard/ServerAnalytic.vue:78
 msgid "Network"
 msgid "Network"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:50
+#: src/views/dashboard/ServerAnalytic.vue:52
 msgid "Network Statistics"
 msgid "Network Statistics"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:54
+#: src/views/dashboard/ServerAnalytic.vue:56
 msgid "Network Total Receive"
 msgid "Network Total Receive"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:58
+#: src/views/dashboard/ServerAnalytic.vue:60
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr ""
 msgstr ""
 
 
@@ -874,7 +936,7 @@ msgstr ""
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:21
 #: src/views/domain/cert/components/ObtainCert.vue:21
-#: src/views/domain/DomainAdd.vue:141
+#: src/views/domain/DomainAdd.vue:144
 msgid "Next"
 msgid "Next"
 msgstr ""
 msgstr ""
 
 
@@ -882,7 +944,7 @@ msgstr ""
 msgid "Nginx Access Log Path"
 msgid "Nginx Access Log Path"
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/DomainEdit.vue:39
+#: src/views/domain/DomainEdit.vue:32
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr ""
 msgstr ""
 
 
@@ -910,7 +972,7 @@ msgstr ""
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:38
+#: src/components/ChatGPT/ChatGPT.vue:43
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
@@ -940,25 +1002,32 @@ msgstr ""
 msgid "Obtaining certificate"
 msgid "Obtaining certificate"
 msgstr ""
 msgstr ""
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:11
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:16
 #: src/views/dashboard/Environments.vue:16
 #: src/views/environment/Environment.vue:48
 #: src/views/environment/Environment.vue:48
 msgid "Offline"
 msgid "Offline"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:39
+#: src/components/ChatGPT/ChatGPT.vue:44
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:190
 #: src/views/domain/cert/components/ObtainCert.vue:190
-#: src/views/domain/DomainEdit.vue:175
+#: src/views/domain/components/Deploy.vue:25
+#: src/views/domain/components/RightSettings.vue:47
 #: src/views/domain/DomainList.vue:28
 #: src/views/domain/DomainList.vue:28
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 msgid "OK"
 msgid "OK"
 msgstr ""
 msgstr ""
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:5
+#: src/components/NodeSelector/NodeSelector.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:9
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/environment/Environment.vue:45
 #: src/views/environment/Environment.vue:45
@@ -977,10 +1046,20 @@ msgstr ""
 msgid "OS"
 msgid "OS"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:160
+#: src/views/dashboard/ServerAnalytic.vue:167
 msgid "OS:"
 msgid "OS:"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/Deploy.vue:5
+#: src/views/domain/components/Deploy.vue:6
+msgid "Overwrite"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:7
+#: src/views/domain/components/Deploy.vue:8
+msgid "Overwrite exist file"
+msgstr ""
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 msgid "Params"
 msgid "Params"
 msgstr ""
 msgstr ""
@@ -1015,7 +1094,7 @@ msgstr ""
 msgid "Please first add credentials in Certification > DNS Credentials, and then select one of the credentials below to request the API of the DNS provider."
 msgid "Please first add credentials in Certification > DNS Credentials, and then select one of the credentials below to request the API of the DNS provider."
 msgstr ""
 msgstr ""
 
 
-#: src/views/domain/SiteDuplicate.vue:28
+#: src/views/domain/components/SiteDuplicate.vue:32
 msgid "Please input name, this will be used as the filename of the new configuration!"
 msgid "Please input name, this will be used as the filename of the new configuration!"
 msgstr ""
 msgstr ""
 
 
@@ -1033,6 +1112,10 @@ msgstr ""
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/SiteDuplicate.vue:39
+msgid "Please select at least one node!"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:25
 #: src/views/system/Upgrade.vue:25
 #: src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:30
 #: src/views/system/Upgrade.vue:30
@@ -1071,20 +1154,20 @@ msgstr ""
 msgid "Provider"
 msgid "Provider"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:109
-#: src/views/dashboard/ServerAnalytic.vue:23
+#: src/views/dashboard/ServerAnalytic.vue:111
+#: src/views/dashboard/ServerAnalytic.vue:30
 msgid "Reads"
 msgid "Reads"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:20
-#: src/views/dashboard/ServerAnalytic.vue:80
+#: src/views/dashboard/ServerAnalytic.vue:27
+#: src/views/dashboard/ServerAnalytic.vue:82
 msgid "Receive"
 msgid "Receive"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:34
-#: src/components/ChatGPT/ChatGPT.vue:35
-#: src/components/ChatGPT/ChatGPT.vue:41
-#: src/components/ChatGPT/ChatGPT.vue:45
+#: src/components/ChatGPT/ChatGPT.vue:39
+#: src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:46
+#: src/components/ChatGPT/ChatGPT.vue:50
 msgid "Regenerate response"
 msgid "Regenerate response"
 msgstr ""
 msgstr ""
 
 
@@ -1110,10 +1193,10 @@ msgstr ""
 msgid "Release Note"
 msgid "Release Note"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:20
-#: src/components/ChatGPT/ChatGPT.vue:21
 #: src/components/ChatGPT/ChatGPT.vue:25
 #: src/components/ChatGPT/ChatGPT.vue:25
-#: src/components/ChatGPT/ChatGPT.vue:27
+#: src/components/ChatGPT/ChatGPT.vue:26
+#: src/components/ChatGPT/ChatGPT.vue:30
+#: src/components/ChatGPT/ChatGPT.vue:32
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:17
 #: src/components/NginxControl/NginxControl.vue:17
@@ -1156,12 +1239,12 @@ msgstr ""
 msgid "Running"
 msgid "Running"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:16
-#: src/components/ChatGPT/ChatGPT.vue:17
 #: src/components/ChatGPT/ChatGPT.vue:21
 #: src/components/ChatGPT/ChatGPT.vue:21
-#: src/components/ChatGPT/ChatGPT.vue:23
-#: src/views/config/ConfigEdit.vue:89
-#: src/views/domain/DomainEdit.vue:266
+#: src/components/ChatGPT/ChatGPT.vue:22
+#: src/components/ChatGPT/ChatGPT.vue:26
+#: src/components/ChatGPT/ChatGPT.vue:28
+#: src/views/config/ConfigEdit.vue:86
+#: src/views/domain/DomainEdit.vue:228
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
@@ -1178,7 +1261,7 @@ msgid "Save Directive"
 msgstr ""
 msgstr ""
 
 
 #: src/views/config/ConfigEdit.vue:53
 #: src/views/config/ConfigEdit.vue:53
-#: src/views/domain/DomainAdd.vue:53
+#: src/views/domain/DomainAdd.vue:56
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr ""
 msgstr ""
@@ -1193,8 +1276,8 @@ msgid "Save Successfully"
 msgstr ""
 msgstr ""
 
 
 #: src/views/config/ConfigEdit.vue:51
 #: src/views/config/ConfigEdit.vue:51
-#: src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:146
+#: src/views/domain/DomainAdd.vue:46
+#: src/views/domain/DomainEdit.vue:147
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr ""
 msgstr ""
@@ -1203,8 +1286,8 @@ msgstr ""
 msgid "Selector"
 msgid "Selector"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:21
-#: src/views/dashboard/ServerAnalytic.vue:87
+#: src/views/dashboard/ServerAnalytic.vue:28
+#: src/views/dashboard/ServerAnalytic.vue:89
 msgid "Send"
 msgid "Send"
 msgstr ""
 msgstr ""
 
 
@@ -1233,7 +1316,7 @@ msgstr ""
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
-#: src/views/domain/DomainAdd.vue:116
+#: src/views/domain/DomainAdd.vue:119
 msgid "server_name parameter is required"
 msgid "server_name parameter is required"
 msgstr ""
 msgstr ""
 
 
@@ -1292,7 +1375,7 @@ msgstr ""
 msgid "Stopped"
 msgid "Stopped"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:43
+#: src/views/dashboard/ServerAnalytic.vue:45
 msgid "Storage"
 msgid "Storage"
 msgstr ""
 msgstr ""
 
 
@@ -1300,7 +1383,7 @@ msgstr ""
 msgid "Subject Name: %{name}"
 msgid "Subject Name: %{name}"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:38
+#: src/views/dashboard/ServerAnalytic.vue:40
 msgid "Swap"
 msgid "Swap"
 msgstr ""
 msgstr ""
 
 
@@ -1312,6 +1395,10 @@ msgstr ""
 msgid "Table"
 msgid "Table"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/SiteDuplicate.vue:8
+msgid "Target"
+msgstr ""
+
 #: src/routes/index.ts:102
 #: src/routes/index.ts:102
 #: src/views/pty/Terminal.vue:2
 #: src/views/pty/Terminal.vue:2
 msgid "Terminal"
 msgid "Terminal"
@@ -1364,6 +1451,7 @@ msgstr ""
 #: src/views/cert/Cert.vue:68
 #: src/views/cert/Cert.vue:68
 #: src/views/cert/DNSCredential.vue:25
 #: src/views/cert/DNSCredential.vue:25
 #: src/views/config/config.ts:28
 #: src/views/config/config.ts:28
+#: src/views/domain/components/RightSettings.vue:11
 #: src/views/domain/DomainList.vue:41
 #: src/views/domain/DomainList.vue:41
 #: src/views/environment/Environment.vue:55
 #: src/views/environment/Environment.vue:55
 #: src/views/user/User.vue:37
 #: src/views/user/User.vue:37
@@ -1395,7 +1483,7 @@ msgstr ""
 msgid "Upgrading Nginx UI, please wait..."
 msgid "Upgrading Nginx UI, please wait..."
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:150
+#: src/views/dashboard/ServerAnalytic.vue:157
 msgid "Uptime:"
 msgid "Uptime:"
 msgstr ""
 msgstr ""
 
 
@@ -1403,6 +1491,10 @@ msgstr ""
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
+#: src/components/ChatGPT/ChatGPT.vue:16
+msgid "User"
+msgstr ""
+
 #: src/views/other/Login.vue:11
 #: src/views/other/Login.vue:11
 #: src/views/user/User.vue:11
 #: src/views/user/User.vue:11
 msgid "Username"
 msgid "Username"
@@ -1436,8 +1528,8 @@ msgstr ""
 msgid "We will remove the HTTPChallenge configuration from this file and reload the Nginx. Are you sure you want to continue?"
 msgid "We will remove the HTTPChallenge configuration from this file and reload the Nginx. Are you sure you want to continue?"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:102
-#: src/views/dashboard/ServerAnalytic.vue:22
+#: src/views/dashboard/ServerAnalytic.vue:104
+#: src/views/dashboard/ServerAnalytic.vue:29
 msgid "Writes"
 msgid "Writes"
 msgstr ""
 msgstr ""
 
 

File diff suppressed because it is too large
+ 0 - 0
frontend/src/language/translations.json


BIN
frontend/src/language/zh_CN/app.mo


+ 168 - 71
frontend/src/language/zh_CN/app.po

@@ -9,6 +9,7 @@ msgstr ""
 "MIME-Version: 1.0\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 "Generated-By: easygettext\n"
 "Generated-By: easygettext\n"
 "X-Generator: Poedit 3.2.2\n"
 "X-Generator: Poedit 3.2.2\n"
 
 
@@ -81,7 +82,7 @@ msgstr "API Token"
 msgid "Arch"
 msgid "Arch"
 msgstr "架构"
 msgstr "架构"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:45
 msgid "Are you sure you want to clear the record of chat?"
 msgid "Are you sure you want to clear the record of chat?"
 msgstr "你确定你要清除聊天记录吗?"
 msgstr "你确定你要清除聊天记录吗?"
 
 
@@ -98,6 +99,14 @@ msgstr "您确定要删除这条指令?"
 msgid "Are you sure you want to remove this location?"
 msgid "Are you sure you want to remove this location?"
 msgstr "您确定要删除这个 Location?"
 msgstr "您确定要删除这个 Location?"
 
 
+#: src/components/ChatGPT/ChatGPT.vue:4 src/components/ChatGPT/ChatGPT.vue:5
+msgid "Ask ChatGPT for Help"
+msgstr "与ChatGPT聊天"
+
+#: src/components/ChatGPT/ChatGPT.vue:16
+msgid "Assistant"
+msgstr "助手"
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
@@ -140,7 +149,7 @@ msgstr "成功启用 %{name} 自动续签"
 
 
 #: src/views/config/Config.vue:17 src/views/config/Config.vue:18
 #: src/views/config/Config.vue:17 src/views/config/Config.vue:18
 #: src/views/config/Config.vue:28 src/views/config/Config.vue:6
 #: src/views/config/Config.vue:28 src/views/config/Config.vue:6
-#: src/views/config/ConfigEdit.vue:83 src/views/domain/DomainEdit.vue:263
+#: src/views/config/ConfigEdit.vue:80 src/views/domain/DomainEdit.vue:225
 #: src/views/nginx_log/NginxLog.vue:161
 #: src/views/nginx_log/NginxLog.vue:161
 msgid "Back"
 msgid "Back"
 msgstr "返回"
 msgstr "返回"
@@ -153,6 +162,7 @@ msgstr "返回首页"
 msgid "Base information"
 msgid "Base information"
 msgstr "基本信息"
 msgstr "基本信息"
 
 
+#: src/views/domain/components/RightSettings.vue:4
 #: src/views/preference/Preference.vue:5
 #: src/views/preference/Preference.vue:5
 msgid "Basic"
 msgid "Basic"
 msgstr "基本"
 msgstr "基本"
@@ -177,13 +187,14 @@ msgstr "构建基于"
 msgid "CADir"
 msgid "CADir"
 msgstr "CADir"
 msgstr "CADir"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:17 src/components/ChatGPT/ChatGPT.vue:18
-#: src/components/ChatGPT/ChatGPT.vue:22 src/components/ChatGPT/ChatGPT.vue:24
+#: src/components/ChatGPT/ChatGPT.vue:22 src/components/ChatGPT/ChatGPT.vue:23
+#: src/components/ChatGPT/ChatGPT.vue:27 src/components/ChatGPT/ChatGPT.vue:29
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/views/domain/cert/components/ObtainCert.vue:191
 #: src/views/domain/cert/components/ObtainCert.vue:191
-#: src/views/domain/DomainEdit.vue:176
+#: src/views/domain/components/Deploy.vue:26
+#: src/views/domain/components/RightSettings.vue:48
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 msgid "Cancel"
 msgid "Cancel"
@@ -241,8 +252,8 @@ msgstr "中国用户:https://ghproxy.com/"
 msgid "Cleaning environment variables"
 msgid "Cleaning environment variables"
 msgstr "正在清理环境变量"
 msgstr "正在清理环境变量"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:31 src/components/ChatGPT/ChatGPT.vue:32
-#: src/components/ChatGPT/ChatGPT.vue:38 src/components/ChatGPT/ChatGPT.vue:42
+#: src/components/ChatGPT/ChatGPT.vue:36 src/components/ChatGPT/ChatGPT.vue:37
+#: src/components/ChatGPT/ChatGPT.vue:43 src/components/ChatGPT/ChatGPT.vue:47
 msgid "Clear"
 msgid "Clear"
 msgstr "清空"
 msgstr "清空"
 
 
@@ -292,7 +303,7 @@ msgstr "内容"
 msgid "Core Upgrade"
 msgid "Core Upgrade"
 msgstr "核心升级"
 msgstr "核心升级"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:66
+#: src/views/dashboard/ServerAnalytic.vue:68
 msgid "CPU Status"
 msgid "CPU Status"
 msgstr "CPU 状态"
 msgstr "CPU 状态"
 
 
@@ -301,7 +312,7 @@ msgstr "CPU 状态"
 msgid "CPU:"
 msgid "CPU:"
 msgstr "CPU:"
 msgstr "CPU:"
 
 
-#: src/views/domain/DomainAdd.vue:154
+#: src/views/domain/DomainAdd.vue:157
 msgid "Create Another"
 msgid "Create Another"
 msgstr "再创建一个"
 msgstr "再创建一个"
 
 
@@ -371,6 +382,23 @@ msgstr "删除 ID: %{id}"
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr "删除站点: %{site_name}"
 msgstr "删除站点: %{site_name}"
 
 
+#: src/views/domain/components/Deploy.vue:12
+#: src/views/domain/components/Deploy.vue:13
+msgid "Deploy"
+msgstr "部署"
+
+#: src/views/domain/components/Deploy.vue:63
+msgid "Deploy %{conf_name} to %{node_name} failed"
+msgstr "部署%{conf_name}到%{node_name}失败"
+
+#: src/views/domain/components/Deploy.vue:40
+msgid "Deploy %{conf_name} to %{node_name} successfully"
+msgstr "成功地将%{conf_name}部署到%{node_name}。"
+
+#: src/views/domain/components/Deploy.vue:38
+msgid "Deploy successfully"
+msgstr "部署成功"
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
@@ -411,11 +439,12 @@ msgstr "关闭 %{name} 自动续签失败"
 msgid "Disabled"
 msgid "Disabled"
 msgstr "禁用"
 msgstr "禁用"
 
 
-#: src/views/domain/DomainEdit.vue:163 src/views/domain/DomainList.vue:69
+#: src/views/domain/components/RightSettings.vue:35
+#: src/views/domain/DomainList.vue:69
 msgid "Disabled successfully"
 msgid "Disabled successfully"
 msgstr "禁用成功"
 msgstr "禁用成功"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:98
+#: src/views/dashboard/ServerAnalytic.vue:100
 msgid "Disk IO"
 msgid "Disk IO"
 msgstr "磁盘 IO"
 msgstr "磁盘 IO"
 
 
@@ -434,15 +463,20 @@ msgstr "DNS供应商"
 msgid "DNS01"
 msgid "DNS01"
 msgstr "DNS01"
 msgstr "DNS01"
 
 
+#: src/views/domain/components/Deploy.vue:21
+msgid "Do you want to deploy this file to remote server?"
+msgid_plural "Do you want to deploy this file to remote servers?"
+msgstr[0] "你想把这个文件部署到远程服务器上吗?"
+
 #: src/views/domain/cert/components/ObtainCert.vue:187
 #: src/views/domain/cert/components/ObtainCert.vue:187
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "你想禁用自动更新证书吗?"
 msgstr "你想禁用自动更新证书吗?"
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 msgid "Do you want to disable this site?"
 msgid "Do you want to disable this site?"
 msgstr "你想停用这个网站吗?"
 msgstr "你想停用这个网站吗?"
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 msgid "Do you want to enable this site?"
 msgid "Do you want to enable this site?"
 msgstr "你想启用这个网站吗?"
 msgstr "你想启用这个网站吗?"
 
 
@@ -474,16 +508,28 @@ msgstr "下载最新版本"
 msgid "Dry run mode enabled"
 msgid "Dry run mode enabled"
 msgstr "试运行模式已启动"
 msgstr "试运行模式已启动"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:2
 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
-#: src/views/domain/SiteDuplicate.vue:2
 msgid "Duplicate"
 msgid "Duplicate"
 msgstr "复制"
 msgstr "复制"
 
 
-#: src/views/domain/SiteDuplicate.vue:43
-msgid "Duplicated successfully"
+#: src/views/domain/components/SiteDuplicate.vue:73
+msgid "Duplicate %{conf_name} to %{node_name} successfully"
+msgstr "成功地将%{conf_name}复制到%{node_name}。"
+
+#: src/views/domain/components/SiteDuplicate.vue:78
+msgid "Duplicate failed"
+msgstr "复制失败"
+
+#: src/views/domain/components/SiteDuplicate.vue:71
+msgid "Duplicate successfully"
 msgstr "复制成功"
 msgstr "复制成功"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:57
+msgid "Duplicate to local successfully"
+msgstr "成功复制到本地"
+
 #: src/views/domain/DomainEdit.vue:5 src/views/domain/DomainEdit.vue:6
 #: src/views/domain/DomainEdit.vue:5 src/views/domain/DomainEdit.vue:6
 msgid "Edit %{n}"
 msgid "Edit %{n}"
 msgstr "编辑 %{n}"
 msgstr "编辑 %{n}"
@@ -500,28 +546,43 @@ msgstr "编辑站点"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "邮箱 (*)"
 msgstr "邮箱 (*)"
 
 
+#: src/views/domain/components/Deploy.vue:53
+msgid "Enable %{conf_name} in %{node_name} failed"
+msgstr "在%{node_name}中启用%{conf_name}失败"
+
+#: src/views/domain/components/Deploy.vue:48
+msgid "Enable %{conf_name} in %{node_name} successfully"
+msgstr "成功启用%{node_name}中的%{conf_name}。"
+
 #: src/views/domain/cert/components/ObtainCert.vue:55
 #: src/views/domain/cert/components/ObtainCert.vue:55
 msgid "Enable auto-renewal failed for %{name}"
 msgid "Enable auto-renewal failed for %{name}"
 msgstr "启用 %{name} 自动续签失败"
 msgstr "启用 %{name} 自动续签失败"
 
 
-#: src/views/domain/DomainAdd.vue:49
+#: src/views/domain/DomainAdd.vue:52
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "启用失败"
 msgstr "启用失败"
 
 
+#: src/views/domain/components/Deploy.vue:46
+msgid "Enable successfully"
+msgstr "启用成功"
+
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr "启用 TLS"
 msgstr "启用 TLS"
 
 
 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:44
 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:44
-#: src/views/domain/DomainEdit.vue:29 src/views/domain/DomainEdit.vue:7
-#: src/views/domain/DomainEdit.vue:8 src/views/domain/DomainList.vue:10
-#: src/views/domain/DomainList.vue:11 src/views/domain/DomainList.vue:12
-#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31
+#: src/views/domain/components/Deploy.vue:3
+#: src/views/domain/components/Deploy.vue:4
+#: src/views/domain/components/RightSettings.vue:5
+#: src/views/domain/DomainEdit.vue:7 src/views/domain/DomainEdit.vue:8
+#: src/views/domain/DomainList.vue:10 src/views/domain/DomainList.vue:11
+#: src/views/domain/DomainList.vue:12 src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:31
 msgid "Enabled"
 msgid "Enabled"
 msgstr "启用"
 msgstr "启用"
 
 
-#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:154
-#: src/views/domain/DomainList.vue:59
+#: src/views/domain/components/RightSettings.vue:26
+#: src/views/domain/DomainAdd.vue:49 src/views/domain/DomainList.vue:59
 msgid "Enabled successfully"
 msgid "Enabled successfully"
 msgstr "启用成功"
 msgstr "启用成功"
 
 
@@ -562,11 +623,13 @@ msgstr "过期时间: %{date}"
 msgid "Export"
 msgid "Export"
 msgstr "导出"
 msgstr "导出"
 
 
-#: src/views/domain/DomainEdit.vue:166 src/views/domain/DomainList.vue:73
+#: src/views/domain/components/RightSettings.vue:38
+#: src/views/domain/DomainList.vue:73
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "禁用失败 %{msg}"
 msgstr "禁用失败 %{msg}"
 
 
-#: src/views/domain/DomainEdit.vue:157 src/views/domain/DomainList.vue:63
+#: src/views/domain/components/RightSettings.vue:29
+#: src/views/domain/DomainList.vue:63
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "启用失败 %{msg}"
 msgstr "启用失败 %{msg}"
 
 
@@ -574,7 +637,7 @@ msgstr "启用失败 %{msg}"
 msgid "Failed to get certificate information"
 msgid "Failed to get certificate information"
 msgstr "获取证书信息失败"
 msgstr "获取证书信息失败"
 
 
-#: src/views/domain/DomainEdit.vue:132
+#: src/views/domain/DomainEdit.vue:133
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr "保存失败,在配置中检测到语法错误。"
 msgstr "保存失败,在配置中检测到语法错误。"
 
 
@@ -598,7 +661,7 @@ msgstr "过滤"
 msgid "Finished"
 msgid "Finished"
 msgstr "完成"
 msgstr "完成"
 
 
-#: src/views/config/ConfigEdit.vue:86
+#: src/views/config/ConfigEdit.vue:83
 msgid "Format Code"
 msgid "Format Code"
 msgstr "代码格式化"
 msgstr "代码格式化"
 
 
@@ -715,12 +778,14 @@ msgstr "浅色"
 msgid "Link Start"
 msgid "Link Start"
 msgstr "链接"
 msgstr "链接"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:154
+#: src/views/dashboard/ServerAnalytic.vue:161
 msgid "Load Averages:"
 msgid "Load Averages:"
 msgstr "系统负载:"
 msgstr "系统负载:"
 
 
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:6
 #: src/components/EnvIndicator/EnvIndicator.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:4
+#: src/components/NodeSelector/NodeSelector.vue:5
 msgid "Local"
 msgid "Local"
 msgstr "本地"
 msgstr "本地"
 
 
@@ -766,16 +831,16 @@ msgstr "网站管理"
 msgid "Manage Users"
 msgid "Manage Users"
 msgstr "用户管理"
 msgstr "用户管理"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:34
+#: src/views/dashboard/ServerAnalytic.vue:36
 msgid "Memory"
 msgid "Memory"
 msgstr "内存"
 msgstr "内存"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:31
+#: src/views/dashboard/ServerAnalytic.vue:33
 msgid "Memory and Storage"
 msgid "Memory and Storage"
 msgstr "内存与存储"
 msgstr "内存与存储"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:13 src/components/ChatGPT/ChatGPT.vue:14
-#: src/components/ChatGPT/ChatGPT.vue:18 src/components/ChatGPT/ChatGPT.vue:20
+#: src/components/ChatGPT/ChatGPT.vue:18 src/components/ChatGPT/ChatGPT.vue:19
+#: src/components/ChatGPT/ChatGPT.vue:23 src/components/ChatGPT/ChatGPT.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:26
 #: src/components/StdDataDisplay/StdTable.vue:26
@@ -785,7 +850,7 @@ msgstr "内存与存储"
 msgid "Modify"
 msgid "Modify"
 msgstr "修改"
 msgstr "修改"
 
 
-#: src/views/domain/DomainAdd.vue:151
+#: src/views/domain/DomainAdd.vue:154
 msgid "Modify Config"
 msgid "Modify Config"
 msgstr "修改配置文件"
 msgstr "修改配置文件"
 
 
@@ -796,25 +861,25 @@ msgstr "单行指令"
 
 
 #: src/views/cert/Cert.vue:16 src/views/cert/DNSCredential.vue:12
 #: src/views/cert/Cert.vue:16 src/views/cert/DNSCredential.vue:12
 #: src/views/config/config.ts:8 src/views/domain/cert/ChangeCert.vue:21
 #: src/views/config/config.ts:8 src/views/domain/cert/ChangeCert.vue:21
-#: src/views/domain/DomainEdit.vue:32 src/views/domain/DomainList.vue:15
-#: src/views/domain/SiteDuplicate.vue:5
-#: src/views/environment/Environment.vue:13
+#: src/views/domain/components/RightSettings.vue:8
+#: src/views/domain/components/SiteDuplicate.vue:5
+#: src/views/domain/DomainList.vue:15 src/views/environment/Environment.vue:13
 msgid "Name"
 msgid "Name"
 msgstr "名称"
 msgstr "名称"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:76
+#: src/views/dashboard/ServerAnalytic.vue:78
 msgid "Network"
 msgid "Network"
 msgstr "网络"
 msgstr "网络"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:50
+#: src/views/dashboard/ServerAnalytic.vue:52
 msgid "Network Statistics"
 msgid "Network Statistics"
 msgstr "流量统计"
 msgstr "流量统计"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:54
+#: src/views/dashboard/ServerAnalytic.vue:56
 msgid "Network Total Receive"
 msgid "Network Total Receive"
 msgstr "下载流量"
 msgstr "下载流量"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:58
+#: src/views/dashboard/ServerAnalytic.vue:60
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "上传流量"
 msgstr "上传流量"
 
 
@@ -825,7 +890,7 @@ msgstr "新版本发布"
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:21
 #: src/views/domain/cert/components/ObtainCert.vue:21
-#: src/views/domain/DomainAdd.vue:141
+#: src/views/domain/DomainAdd.vue:144
 msgid "Next"
 msgid "Next"
 msgstr "下一步"
 msgstr "下一步"
 
 
@@ -833,7 +898,7 @@ msgstr "下一步"
 msgid "Nginx Access Log Path"
 msgid "Nginx Access Log Path"
 msgstr "Nginx 访问日志路径"
 msgstr "Nginx 访问日志路径"
 
 
-#: src/views/domain/DomainEdit.vue:39
+#: src/views/domain/DomainEdit.vue:32
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Nginx 配置解析错误"
 msgstr "Nginx 配置解析错误"
 
 
@@ -860,7 +925,7 @@ msgstr "Nginx 重载成功"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx 重启成功"
 msgstr "Nginx 重启成功"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:38
+#: src/components/ChatGPT/ChatGPT.vue:43
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
@@ -889,24 +954,32 @@ msgstr "获取证书"
 msgid "Obtaining certificate"
 msgid "Obtaining certificate"
 msgstr "正在获取证书"
 msgstr "正在获取证书"
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:11
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:16
 #: src/views/dashboard/Environments.vue:16
 #: src/views/environment/Environment.vue:48
 #: src/views/environment/Environment.vue:48
 msgid "Offline"
 msgid "Offline"
 msgstr "离线"
 msgstr "离线"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:39
+#: src/components/ChatGPT/ChatGPT.vue:44
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:190
 #: src/views/domain/cert/components/ObtainCert.vue:190
-#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:28
+#: src/views/domain/components/Deploy.vue:25
+#: src/views/domain/components/RightSettings.vue:47
+#: src/views/domain/DomainList.vue:28
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 msgid "OK"
 msgid "OK"
 msgstr "确定"
 msgstr "确定"
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:5
+#: src/components/NodeSelector/NodeSelector.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:9
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/environment/Environment.vue:45
 #: src/views/environment/Environment.vue:45
@@ -923,10 +996,20 @@ msgstr "OpenAI"
 msgid "OS"
 msgid "OS"
 msgstr "OS"
 msgstr "OS"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:160
+#: src/views/dashboard/ServerAnalytic.vue:167
 msgid "OS:"
 msgid "OS:"
 msgstr "OS:"
 msgstr "OS:"
 
 
+#: src/views/domain/components/Deploy.vue:5
+#: src/views/domain/components/Deploy.vue:6
+msgid "Overwrite"
+msgstr "覆盖"
+
+#: src/views/domain/components/Deploy.vue:7
+#: src/views/domain/components/Deploy.vue:8
+msgid "Overwrite exist file"
+msgstr "覆盖现有文件"
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 msgid "Params"
 msgid "Params"
 msgstr "参数"
 msgstr "参数"
@@ -972,7 +1055,7 @@ msgstr ""
 "请首先在 “证书”>”DNS凭证 \"中添加凭证,然后在下方选择一个凭证,请求DNS提供商"
 "请首先在 “证书”>”DNS凭证 \"中添加凭证,然后在下方选择一个凭证,请求DNS提供商"
 "的API。"
 "的API。"
 
 
-#: src/views/domain/SiteDuplicate.vue:28
+#: src/views/domain/components/SiteDuplicate.vue:32
 msgid ""
 msgid ""
 "Please input name, this will be used as the filename of the new "
 "Please input name, this will be used as the filename of the new "
 "configuration!"
 "configuration!"
@@ -990,6 +1073,10 @@ msgstr "请输入您的密码!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "请输入您的用户名!"
 msgstr "请输入您的用户名!"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:39
+msgid "Please select at least one node!"
+msgstr "请至少选择一个节点!"
+
 #: src/views/system/Upgrade.vue:25 src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:25 src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:30 src/views/system/Upgrade.vue:34
 #: src/views/system/Upgrade.vue:30 src/views/system/Upgrade.vue:34
 #: src/views/system/Upgrade.vue:38 src/views/system/Upgrade.vue:48
 #: src/views/system/Upgrade.vue:38 src/views/system/Upgrade.vue:48
@@ -1022,18 +1109,18 @@ msgstr "项目团队"
 msgid "Provider"
 msgid "Provider"
 msgstr "提供商"
 msgstr "提供商"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:109
-#: src/views/dashboard/ServerAnalytic.vue:23
+#: src/views/dashboard/ServerAnalytic.vue:111
+#: src/views/dashboard/ServerAnalytic.vue:30
 msgid "Reads"
 msgid "Reads"
 msgstr "读"
 msgstr "读"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:20
-#: src/views/dashboard/ServerAnalytic.vue:80
+#: src/views/dashboard/ServerAnalytic.vue:27
+#: src/views/dashboard/ServerAnalytic.vue:82
 msgid "Receive"
 msgid "Receive"
 msgstr "下载"
 msgstr "下载"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:34 src/components/ChatGPT/ChatGPT.vue:35
-#: src/components/ChatGPT/ChatGPT.vue:41 src/components/ChatGPT/ChatGPT.vue:45
+#: src/components/ChatGPT/ChatGPT.vue:39 src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:46 src/components/ChatGPT/ChatGPT.vue:50
 msgid "Regenerate response"
 msgid "Regenerate response"
 msgstr "重新生成响应"
 msgstr "重新生成响应"
 
 
@@ -1054,8 +1141,8 @@ msgstr "重新安装"
 msgid "Release Note"
 msgid "Release Note"
 msgstr "发行日志"
 msgstr "发行日志"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:20 src/components/ChatGPT/ChatGPT.vue:21
-#: src/components/ChatGPT/ChatGPT.vue:25 src/components/ChatGPT/ChatGPT.vue:27
+#: src/components/ChatGPT/ChatGPT.vue:25 src/components/ChatGPT/ChatGPT.vue:26
+#: src/components/ChatGPT/ChatGPT.vue:30 src/components/ChatGPT/ChatGPT.vue:32
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:17
 #: src/components/NginxControl/NginxControl.vue:17
@@ -1098,9 +1185,9 @@ msgstr "运行模式"
 msgid "Running"
 msgid "Running"
 msgstr "运行中"
 msgstr "运行中"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:16 src/components/ChatGPT/ChatGPT.vue:17
-#: src/components/ChatGPT/ChatGPT.vue:21 src/components/ChatGPT/ChatGPT.vue:23
-#: src/views/config/ConfigEdit.vue:89 src/views/domain/DomainEdit.vue:266
+#: src/components/ChatGPT/ChatGPT.vue:21 src/components/ChatGPT/ChatGPT.vue:22
+#: src/components/ChatGPT/ChatGPT.vue:26 src/components/ChatGPT/ChatGPT.vue:28
+#: src/views/config/ConfigEdit.vue:86 src/views/domain/DomainEdit.vue:228
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
@@ -1116,7 +1203,7 @@ msgstr "保存"
 msgid "Save Directive"
 msgid "Save Directive"
 msgstr "保存指令"
 msgstr "保存指令"
 
 
-#: src/views/config/ConfigEdit.vue:53 src/views/domain/DomainAdd.vue:53
+#: src/views/config/ConfigEdit.vue:53 src/views/domain/DomainAdd.vue:56
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "保存错误 %{msg}"
 msgstr "保存错误 %{msg}"
@@ -1130,8 +1217,8 @@ msgstr "保存成功"
 msgid "Save Successfully"
 msgid "Save Successfully"
 msgstr "保存成功"
 msgstr "保存成功"
 
 
-#: src/views/config/ConfigEdit.vue:51 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:146
+#: src/views/config/ConfigEdit.vue:51 src/views/domain/DomainAdd.vue:46
+#: src/views/domain/DomainEdit.vue:147
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr "保存成功"
 msgstr "保存成功"
@@ -1140,8 +1227,8 @@ msgstr "保存成功"
 msgid "Selector"
 msgid "Selector"
 msgstr "选择器"
 msgstr "选择器"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:21
-#: src/views/dashboard/ServerAnalytic.vue:87
+#: src/views/dashboard/ServerAnalytic.vue:28
+#: src/views/dashboard/ServerAnalytic.vue:89
 msgid "Send"
 msgid "Send"
 msgstr "上传"
 msgstr "上传"
 
 
@@ -1168,7 +1255,7 @@ msgstr "未在指令集合中找到 server_name"
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
-#: src/views/domain/DomainAdd.vue:116
+#: src/views/domain/DomainAdd.vue:119
 msgid "server_name parameter is required"
 msgid "server_name parameter is required"
 msgstr "必须为 server_name 指令指明参数"
 msgstr "必须为 server_name 指令指明参数"
 
 
@@ -1221,7 +1308,7 @@ msgstr "状态"
 msgid "Stopped"
 msgid "Stopped"
 msgstr "已停止"
 msgstr "已停止"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:43
+#: src/views/dashboard/ServerAnalytic.vue:45
 msgid "Storage"
 msgid "Storage"
 msgstr "存储"
 msgstr "存储"
 
 
@@ -1229,7 +1316,7 @@ msgstr "存储"
 msgid "Subject Name: %{name}"
 msgid "Subject Name: %{name}"
 msgstr "主体名称: %{name}"
 msgstr "主体名称: %{name}"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:38
+#: src/views/dashboard/ServerAnalytic.vue:40
 msgid "Swap"
 msgid "Swap"
 msgstr "Swap"
 msgstr "Swap"
 
 
@@ -1241,6 +1328,10 @@ msgstr "系统"
 msgid "Table"
 msgid "Table"
 msgstr "列表"
 msgstr "列表"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:8
+msgid "Target"
+msgstr "目标"
+
 #: src/routes/index.ts:102 src/views/pty/Terminal.vue:2
 #: src/routes/index.ts:102 src/views/pty/Terminal.vue:2
 msgid "Terminal"
 msgid "Terminal"
 msgstr "终端"
 msgstr "终端"
@@ -1301,8 +1392,10 @@ msgid "Type"
 msgstr "类型"
 msgstr "类型"
 
 
 #: src/views/cert/Cert.vue:68 src/views/cert/DNSCredential.vue:25
 #: src/views/cert/Cert.vue:68 src/views/cert/DNSCredential.vue:25
-#: src/views/config/config.ts:28 src/views/domain/DomainList.vue:41
-#: src/views/environment/Environment.vue:55 src/views/user/User.vue:37
+#: src/views/config/config.ts:28
+#: src/views/domain/components/RightSettings.vue:11
+#: src/views/domain/DomainList.vue:41 src/views/environment/Environment.vue:55
+#: src/views/user/User.vue:37
 msgid "Updated at"
 msgid "Updated at"
 msgstr "修改时间"
 msgstr "修改时间"
 
 
@@ -1326,7 +1419,7 @@ msgstr "升级成功"
 msgid "Upgrading Nginx UI, please wait..."
 msgid "Upgrading Nginx UI, please wait..."
 msgstr "正在升级Nginx UI,请等待..."
 msgstr "正在升级Nginx UI,请等待..."
 
 
-#: src/views/dashboard/ServerAnalytic.vue:150
+#: src/views/dashboard/ServerAnalytic.vue:157
 msgid "Uptime:"
 msgid "Uptime:"
 msgstr "运行时间:"
 msgstr "运行时间:"
 
 
@@ -1334,6 +1427,10 @@ msgstr "运行时间:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
+#: src/components/ChatGPT/ChatGPT.vue:16
+msgid "User"
+msgstr "用户"
+
 #: src/views/other/Login.vue:11 src/views/user/User.vue:11
 #: src/views/other/Login.vue:11 src/views/user/User.vue:11
 msgid "Username"
 msgid "Username"
 msgstr "用户名"
 msgstr "用户名"
@@ -1369,8 +1466,8 @@ msgid ""
 msgstr ""
 msgstr ""
 "我们将从这个文件中删除HTTPChallenge的配置,并重新加载Nginx。你确定要继续吗?"
 "我们将从这个文件中删除HTTPChallenge的配置,并重新加载Nginx。你确定要继续吗?"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:102
-#: src/views/dashboard/ServerAnalytic.vue:22
+#: src/views/dashboard/ServerAnalytic.vue:104
+#: src/views/dashboard/ServerAnalytic.vue:29
 msgid "Writes"
 msgid "Writes"
 msgstr "写"
 msgstr "写"
 
 

+ 177 - 71
frontend/src/language/zh_TW/app.po

@@ -82,7 +82,7 @@ msgstr "API 令牌"
 msgid "Arch"
 msgid "Arch"
 msgstr "架搆"
 msgstr "架搆"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:45
 msgid "Are you sure you want to clear the record of chat?"
 msgid "Are you sure you want to clear the record of chat?"
 msgstr "您確定要清除聊天記錄嗎?"
 msgstr "您確定要清除聊天記錄嗎?"
 
 
@@ -99,6 +99,15 @@ msgstr "您確定要刪除這條指令?"
 msgid "Are you sure you want to remove this location?"
 msgid "Are you sure you want to remove this location?"
 msgstr "您確定要刪除此 Location 嗎?"
 msgstr "您確定要刪除此 Location 嗎?"
 
 
+#: src/components/ChatGPT/ChatGPT.vue:4 src/components/ChatGPT/ChatGPT.vue:5
+#, fuzzy
+msgid "Ask ChatGPT for Help"
+msgstr "ChatGPT模型"
+
+#: src/components/ChatGPT/ChatGPT.vue:16
+msgid "Assistant"
+msgstr ""
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:12
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:16
@@ -141,7 +150,7 @@ msgstr "已啟用 %{name} 自動續簽"
 
 
 #: src/views/config/Config.vue:17 src/views/config/Config.vue:18
 #: src/views/config/Config.vue:17 src/views/config/Config.vue:18
 #: src/views/config/Config.vue:28 src/views/config/Config.vue:6
 #: src/views/config/Config.vue:28 src/views/config/Config.vue:6
-#: src/views/config/ConfigEdit.vue:83 src/views/domain/DomainEdit.vue:263
+#: src/views/config/ConfigEdit.vue:80 src/views/domain/DomainEdit.vue:225
 #: src/views/nginx_log/NginxLog.vue:161
 #: src/views/nginx_log/NginxLog.vue:161
 msgid "Back"
 msgid "Back"
 msgstr "返回"
 msgstr "返回"
@@ -154,6 +163,7 @@ msgstr "回到首頁"
 msgid "Base information"
 msgid "Base information"
 msgstr "基本訊息"
 msgstr "基本訊息"
 
 
+#: src/views/domain/components/RightSettings.vue:4
 #: src/views/preference/Preference.vue:5
 #: src/views/preference/Preference.vue:5
 msgid "Basic"
 msgid "Basic"
 msgstr "基本"
 msgstr "基本"
@@ -178,13 +188,14 @@ msgstr "構建基於"
 msgid "CADir"
 msgid "CADir"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:17 src/components/ChatGPT/ChatGPT.vue:18
-#: src/components/ChatGPT/ChatGPT.vue:22 src/components/ChatGPT/ChatGPT.vue:24
+#: src/components/ChatGPT/ChatGPT.vue:22 src/components/ChatGPT/ChatGPT.vue:23
+#: src/components/ChatGPT/ChatGPT.vue:27 src/components/ChatGPT/ChatGPT.vue:29
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdBatchEdit.vue:7
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataDisplay/StdCurd.vue:27
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/components/StdDataEntry/components/StdSelector.vue:11
 #: src/views/domain/cert/components/ObtainCert.vue:191
 #: src/views/domain/cert/components/ObtainCert.vue:191
-#: src/views/domain/DomainEdit.vue:176
+#: src/views/domain/components/Deploy.vue:26
+#: src/views/domain/components/RightSettings.vue:48
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:208
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:37
 msgid "Cancel"
 msgid "Cancel"
@@ -242,8 +253,8 @@ msgstr "中國用戶:https://ghproxy.com/"
 msgid "Cleaning environment variables"
 msgid "Cleaning environment variables"
 msgstr "清理環境變量"
 msgstr "清理環境變量"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:31 src/components/ChatGPT/ChatGPT.vue:32
-#: src/components/ChatGPT/ChatGPT.vue:38 src/components/ChatGPT/ChatGPT.vue:42
+#: src/components/ChatGPT/ChatGPT.vue:36 src/components/ChatGPT/ChatGPT.vue:37
+#: src/components/ChatGPT/ChatGPT.vue:43 src/components/ChatGPT/ChatGPT.vue:47
 msgid "Clear"
 msgid "Clear"
 msgstr "清除"
 msgstr "清除"
 
 
@@ -293,7 +304,7 @@ msgstr "內容"
 msgid "Core Upgrade"
 msgid "Core Upgrade"
 msgstr "核心升級"
 msgstr "核心升級"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:66
+#: src/views/dashboard/ServerAnalytic.vue:68
 msgid "CPU Status"
 msgid "CPU Status"
 msgstr "中央處理器狀態"
 msgstr "中央處理器狀態"
 
 
@@ -302,7 +313,7 @@ msgstr "中央處理器狀態"
 msgid "CPU:"
 msgid "CPU:"
 msgstr "中央處理器:"
 msgstr "中央處理器:"
 
 
-#: src/views/domain/DomainAdd.vue:154
+#: src/views/domain/DomainAdd.vue:157
 msgid "Create Another"
 msgid "Create Another"
 msgstr "再創建一個"
 msgstr "再創建一個"
 
 
@@ -372,6 +383,24 @@ msgstr "刪除 ID: %{id}"
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr "刪除站點:%{site_name}"
 msgstr "刪除站點:%{site_name}"
 
 
+#: src/views/domain/components/Deploy.vue:12
+#: src/views/domain/components/Deploy.vue:13
+msgid "Deploy"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:63
+msgid "Deploy %{conf_name} to %{node_name} failed"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:40
+msgid "Deploy %{conf_name} to %{node_name} successfully"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:38
+#, fuzzy
+msgid "Deploy successfully"
+msgstr "保存成功"
+
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:13
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:14
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:17
@@ -412,11 +441,12 @@ msgstr "關閉 %{name} 自動續簽失敗"
 msgid "Disabled"
 msgid "Disabled"
 msgstr "禁用"
 msgstr "禁用"
 
 
-#: src/views/domain/DomainEdit.vue:163 src/views/domain/DomainList.vue:69
+#: src/views/domain/components/RightSettings.vue:35
+#: src/views/domain/DomainList.vue:69
 msgid "Disabled successfully"
 msgid "Disabled successfully"
 msgstr "禁用成功"
 msgstr "禁用成功"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:98
+#: src/views/dashboard/ServerAnalytic.vue:100
 msgid "Disk IO"
 msgid "Disk IO"
 msgstr "磁碟 IO"
 msgstr "磁碟 IO"
 
 
@@ -435,15 +465,22 @@ msgstr "DNS 供應商"
 msgid "DNS01"
 msgid "DNS01"
 msgstr "DNS01"
 msgstr "DNS01"
 
 
+#: src/views/domain/components/Deploy.vue:21
+#, fuzzy
+msgid "Do you want to deploy this file to remote server?"
+msgid_plural "Do you want to deploy this file to remote servers?"
+msgstr[0] "您要刪除此服務器嗎?"
+msgstr[1] "您要刪除此服務器嗎?"
+
 #: src/views/domain/cert/components/ObtainCert.vue:187
 #: src/views/domain/cert/components/ObtainCert.vue:187
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "您要禁用自動證書續訂嗎?"
 msgstr "您要禁用自動證書續訂嗎?"
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 msgid "Do you want to disable this site?"
 msgid "Do you want to disable this site?"
 msgstr "你想禁用這個網站嗎?"
 msgstr "你想禁用這個網站嗎?"
 
 
-#: src/views/domain/DomainEdit.vue:172
+#: src/views/domain/components/RightSettings.vue:44
 msgid "Do you want to enable this site?"
 msgid "Do you want to enable this site?"
 msgstr "您要啟用此站點嗎?"
 msgstr "您要啟用此站點嗎?"
 
 
@@ -475,14 +512,30 @@ msgstr "正在下載最新版本"
 msgid "Dry run mode enabled"
 msgid "Dry run mode enabled"
 msgstr ""
 msgstr ""
 
 
+#: src/views/domain/components/SiteDuplicate.vue:2
 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
-#: src/views/domain/SiteDuplicate.vue:2
 msgid "Duplicate"
 msgid "Duplicate"
 msgstr "複製"
 msgstr "複製"
 
 
-#: src/views/domain/SiteDuplicate.vue:43
-msgid "Duplicated successfully"
+#: src/views/domain/components/SiteDuplicate.vue:73
+#, fuzzy
+msgid "Duplicate %{conf_name} to %{node_name} successfully"
+msgstr "複製成功"
+
+#: src/views/domain/components/SiteDuplicate.vue:78
+#, fuzzy
+msgid "Duplicate failed"
+msgstr "複製"
+
+#: src/views/domain/components/SiteDuplicate.vue:71
+#, fuzzy
+msgid "Duplicate successfully"
+msgstr "複製成功"
+
+#: src/views/domain/components/SiteDuplicate.vue:57
+#, fuzzy
+msgid "Duplicate to local successfully"
 msgstr "複製成功"
 msgstr "複製成功"
 
 
 #: src/views/domain/DomainEdit.vue:5 src/views/domain/DomainEdit.vue:6
 #: src/views/domain/DomainEdit.vue:5 src/views/domain/DomainEdit.vue:6
@@ -501,28 +554,44 @@ msgstr "編輯站點"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "郵箱 (*)"
 msgstr "郵箱 (*)"
 
 
+#: src/views/domain/components/Deploy.vue:53
+msgid "Enable %{conf_name} in %{node_name} failed"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:48
+msgid "Enable %{conf_name} in %{node_name} successfully"
+msgstr ""
+
 #: src/views/domain/cert/components/ObtainCert.vue:55
 #: src/views/domain/cert/components/ObtainCert.vue:55
 msgid "Enable auto-renewal failed for %{name}"
 msgid "Enable auto-renewal failed for %{name}"
 msgstr "啟用 %{name} 自動續簽失敗"
 msgstr "啟用 %{name} 自動續簽失敗"
 
 
-#: src/views/domain/DomainAdd.vue:49
+#: src/views/domain/DomainAdd.vue:52
 msgid "Enable failed"
 msgid "Enable failed"
 msgstr "啟用失敗"
 msgstr "啟用失敗"
 
 
+#: src/views/domain/components/Deploy.vue:46
+#, fuzzy
+msgid "Enable successfully"
+msgstr "啟用成功"
+
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:3
 msgid "Enable TLS"
 msgid "Enable TLS"
 msgstr "啟用 TLS"
 msgstr "啟用 TLS"
 
 
 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:44
 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:44
-#: src/views/domain/DomainEdit.vue:29 src/views/domain/DomainEdit.vue:7
-#: src/views/domain/DomainEdit.vue:8 src/views/domain/DomainList.vue:10
-#: src/views/domain/DomainList.vue:11 src/views/domain/DomainList.vue:12
-#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31
+#: src/views/domain/components/Deploy.vue:3
+#: src/views/domain/components/Deploy.vue:4
+#: src/views/domain/components/RightSettings.vue:5
+#: src/views/domain/DomainEdit.vue:7 src/views/domain/DomainEdit.vue:8
+#: src/views/domain/DomainList.vue:10 src/views/domain/DomainList.vue:11
+#: src/views/domain/DomainList.vue:12 src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:31
 msgid "Enabled"
 msgid "Enabled"
 msgstr "啟用"
 msgstr "啟用"
 
 
-#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:154
-#: src/views/domain/DomainList.vue:59
+#: src/views/domain/components/RightSettings.vue:26
+#: src/views/domain/DomainAdd.vue:49 src/views/domain/DomainList.vue:59
 msgid "Enabled successfully"
 msgid "Enabled successfully"
 msgstr "啟用成功"
 msgstr "啟用成功"
 
 
@@ -564,11 +633,13 @@ msgstr "過期時間: %{date}"
 msgid "Export"
 msgid "Export"
 msgstr "導出"
 msgstr "導出"
 
 
-#: src/views/domain/DomainEdit.vue:166 src/views/domain/DomainList.vue:73
+#: src/views/domain/components/RightSettings.vue:38
+#: src/views/domain/DomainList.vue:73
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "禁用失敗 %{msg}"
 msgstr "禁用失敗 %{msg}"
 
 
-#: src/views/domain/DomainEdit.vue:157 src/views/domain/DomainList.vue:63
+#: src/views/domain/components/RightSettings.vue:29
+#: src/views/domain/DomainList.vue:63
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "啟用失敗 %{msg}"
 msgstr "啟用失敗 %{msg}"
 
 
@@ -576,7 +647,7 @@ msgstr "啟用失敗 %{msg}"
 msgid "Failed to get certificate information"
 msgid "Failed to get certificate information"
 msgstr "獲取證書信息失敗"
 msgstr "獲取證書信息失敗"
 
 
-#: src/views/domain/DomainEdit.vue:132
+#: src/views/domain/DomainEdit.vue:133
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgid "Failed to save, syntax error(s) was detected in the configuration."
 msgstr "保存失敗,在配置中檢測到語法錯誤。"
 msgstr "保存失敗,在配置中檢測到語法錯誤。"
 
 
@@ -600,7 +671,7 @@ msgstr "篩選"
 msgid "Finished"
 msgid "Finished"
 msgstr "完成"
 msgstr "完成"
 
 
-#: src/views/config/ConfigEdit.vue:86
+#: src/views/config/ConfigEdit.vue:83
 msgid "Format Code"
 msgid "Format Code"
 msgstr "格式化代碼"
 msgstr "格式化代碼"
 
 
@@ -717,12 +788,14 @@ msgstr "淺色"
 msgid "Link Start"
 msgid "Link Start"
 msgstr ""
 msgstr ""
 
 
-#: src/views/dashboard/ServerAnalytic.vue:154
+#: src/views/dashboard/ServerAnalytic.vue:161
 msgid "Load Averages:"
 msgid "Load Averages:"
 msgstr "系統負載:"
 msgstr "系統負載:"
 
 
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:5
 #: src/components/EnvIndicator/EnvIndicator.vue:6
 #: src/components/EnvIndicator/EnvIndicator.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:4
+#: src/components/NodeSelector/NodeSelector.vue:5
 #, fuzzy
 #, fuzzy
 msgid "Local"
 msgid "Local"
 msgstr "Location"
 msgstr "Location"
@@ -769,16 +842,16 @@ msgstr "網站管理"
 msgid "Manage Users"
 msgid "Manage Users"
 msgstr "使用者管理"
 msgstr "使用者管理"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:34
+#: src/views/dashboard/ServerAnalytic.vue:36
 msgid "Memory"
 msgid "Memory"
 msgstr "記憶體"
 msgstr "記憶體"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:31
+#: src/views/dashboard/ServerAnalytic.vue:33
 msgid "Memory and Storage"
 msgid "Memory and Storage"
 msgstr "記憶體和存儲"
 msgstr "記憶體和存儲"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:13 src/components/ChatGPT/ChatGPT.vue:14
-#: src/components/ChatGPT/ChatGPT.vue:18 src/components/ChatGPT/ChatGPT.vue:20
+#: src/components/ChatGPT/ChatGPT.vue:18 src/components/ChatGPT/ChatGPT.vue:19
+#: src/components/ChatGPT/ChatGPT.vue:23 src/components/ChatGPT/ChatGPT.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdCurd.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:25
 #: src/components/StdDataDisplay/StdTable.vue:26
 #: src/components/StdDataDisplay/StdTable.vue:26
@@ -788,7 +861,7 @@ msgstr "記憶體和存儲"
 msgid "Modify"
 msgid "Modify"
 msgstr "修改"
 msgstr "修改"
 
 
-#: src/views/domain/DomainAdd.vue:151
+#: src/views/domain/DomainAdd.vue:154
 msgid "Modify Config"
 msgid "Modify Config"
 msgstr "修改配置"
 msgstr "修改配置"
 
 
@@ -799,25 +872,25 @@ msgstr "多行指令"
 
 
 #: src/views/cert/Cert.vue:16 src/views/cert/DNSCredential.vue:12
 #: src/views/cert/Cert.vue:16 src/views/cert/DNSCredential.vue:12
 #: src/views/config/config.ts:8 src/views/domain/cert/ChangeCert.vue:21
 #: src/views/config/config.ts:8 src/views/domain/cert/ChangeCert.vue:21
-#: src/views/domain/DomainEdit.vue:32 src/views/domain/DomainList.vue:15
-#: src/views/domain/SiteDuplicate.vue:5
-#: src/views/environment/Environment.vue:13
+#: src/views/domain/components/RightSettings.vue:8
+#: src/views/domain/components/SiteDuplicate.vue:5
+#: src/views/domain/DomainList.vue:15 src/views/environment/Environment.vue:13
 msgid "Name"
 msgid "Name"
 msgstr "名稱"
 msgstr "名稱"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:76
+#: src/views/dashboard/ServerAnalytic.vue:78
 msgid "Network"
 msgid "Network"
 msgstr "網路"
 msgstr "網路"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:50
+#: src/views/dashboard/ServerAnalytic.vue:52
 msgid "Network Statistics"
 msgid "Network Statistics"
 msgstr "網路統計"
 msgstr "網路統計"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:54
+#: src/views/dashboard/ServerAnalytic.vue:56
 msgid "Network Total Receive"
 msgid "Network Total Receive"
 msgstr "下載流量"
 msgstr "下載流量"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:58
+#: src/views/dashboard/ServerAnalytic.vue:60
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "上傳流量"
 msgstr "上傳流量"
 
 
@@ -828,7 +901,7 @@ msgstr "新版本發布"
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:13
 #: src/views/domain/cert/components/ObtainCert.vue:21
 #: src/views/domain/cert/components/ObtainCert.vue:21
-#: src/views/domain/DomainAdd.vue:141
+#: src/views/domain/DomainAdd.vue:144
 msgid "Next"
 msgid "Next"
 msgstr "下一步"
 msgstr "下一步"
 
 
@@ -836,7 +909,7 @@ msgstr "下一步"
 msgid "Nginx Access Log Path"
 msgid "Nginx Access Log Path"
 msgstr "Nginx 訪問日誌路徑"
 msgstr "Nginx 訪問日誌路徑"
 
 
-#: src/views/domain/DomainEdit.vue:39
+#: src/views/domain/DomainEdit.vue:32
 msgid "Nginx Configuration Parse Error"
 msgid "Nginx Configuration Parse Error"
 msgstr "Nginx 配置解析錯誤"
 msgstr "Nginx 配置解析錯誤"
 
 
@@ -863,7 +936,7 @@ msgstr "Nginx 重載成功"
 msgid "Nginx restarted successfully"
 msgid "Nginx restarted successfully"
 msgstr "Nginx 重啟成功"
 msgstr "Nginx 重啟成功"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:38
+#: src/components/ChatGPT/ChatGPT.vue:43
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/components/StdDataDisplay/StdTable.vue:53
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/DomainList.vue:27
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:22
@@ -892,24 +965,32 @@ msgstr "取得證書"
 msgid "Obtaining certificate"
 msgid "Obtaining certificate"
 msgstr "正在獲取證書"
 msgstr "正在獲取證書"
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:11
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:16
 #: src/views/dashboard/Environments.vue:16
 #: src/views/environment/Environment.vue:48
 #: src/views/environment/Environment.vue:48
 msgid "Offline"
 msgid "Offline"
 msgstr ""
 msgstr ""
 
 
-#: src/components/ChatGPT/ChatGPT.vue:39
+#: src/components/ChatGPT/ChatGPT.vue:44
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdBatchEdit.vue:8
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdCurd.vue:28
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataDisplay/StdTable.vue:54
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/components/StdDataEntry/components/StdSelector.vue:12
 #: src/views/domain/cert/components/ObtainCert.vue:190
 #: src/views/domain/cert/components/ObtainCert.vue:190
-#: src/views/domain/DomainEdit.vue:175 src/views/domain/DomainList.vue:28
+#: src/views/domain/components/Deploy.vue:25
+#: src/views/domain/components/RightSettings.vue:47
+#: src/views/domain/DomainList.vue:28
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:207
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:36
 msgid "OK"
 msgid "OK"
 msgstr "確定"
 msgstr "確定"
 
 
+#: src/components/NodeSelector/NodeSelector.vue:10
+#: src/components/NodeSelector/NodeSelector.vue:5
+#: src/components/NodeSelector/NodeSelector.vue:6
+#: src/components/NodeSelector/NodeSelector.vue:9
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:14
 #: src/views/dashboard/Environments.vue:15
 #: src/views/dashboard/Environments.vue:15
 #: src/views/environment/Environment.vue:45
 #: src/views/environment/Environment.vue:45
@@ -926,10 +1007,20 @@ msgstr "OpenAI"
 msgid "OS"
 msgid "OS"
 msgstr "作業系統"
 msgstr "作業系統"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:160
+#: src/views/dashboard/ServerAnalytic.vue:167
 msgid "OS:"
 msgid "OS:"
 msgstr "作業系統:"
 msgstr "作業系統:"
 
 
+#: src/views/domain/components/Deploy.vue:5
+#: src/views/domain/components/Deploy.vue:6
+msgid "Overwrite"
+msgstr ""
+
+#: src/views/domain/components/Deploy.vue:7
+#: src/views/domain/components/Deploy.vue:8
+msgid "Overwrite exist file"
+msgstr ""
+
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 #: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
 msgid "Params"
 msgid "Params"
 msgstr "參數"
 msgstr "參數"
@@ -975,7 +1066,7 @@ msgstr ""
 "請先在 Certification > DNS Credentials 中添加憑據,然後選擇以下憑據之一以請"
 "請先在 Certification > DNS Credentials 中添加憑據,然後選擇以下憑據之一以請"
 "求 DNS 提供商的 API。"
 "求 DNS 提供商的 API。"
 
 
-#: src/views/domain/SiteDuplicate.vue:28
+#: src/views/domain/components/SiteDuplicate.vue:32
 msgid ""
 msgid ""
 "Please input name, this will be used as the filename of the new "
 "Please input name, this will be used as the filename of the new "
 "configuration!"
 "configuration!"
@@ -993,6 +1084,10 @@ msgstr "請輸入您的密碼!"
 msgid "Please input your username!"
 msgid "Please input your username!"
 msgstr "請輸入您的使用者名稱!"
 msgstr "請輸入您的使用者名稱!"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:39
+msgid "Please select at least one node!"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:25 src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:25 src/views/system/Upgrade.vue:26
 #: src/views/system/Upgrade.vue:30 src/views/system/Upgrade.vue:34
 #: src/views/system/Upgrade.vue:30 src/views/system/Upgrade.vue:34
 #: src/views/system/Upgrade.vue:38 src/views/system/Upgrade.vue:48
 #: src/views/system/Upgrade.vue:38 src/views/system/Upgrade.vue:48
@@ -1025,18 +1120,18 @@ msgstr "專案團隊"
 msgid "Provider"
 msgid "Provider"
 msgstr "供應者"
 msgstr "供應者"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:109
-#: src/views/dashboard/ServerAnalytic.vue:23
+#: src/views/dashboard/ServerAnalytic.vue:111
+#: src/views/dashboard/ServerAnalytic.vue:30
 msgid "Reads"
 msgid "Reads"
 msgstr "讀"
 msgstr "讀"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:20
-#: src/views/dashboard/ServerAnalytic.vue:80
+#: src/views/dashboard/ServerAnalytic.vue:27
+#: src/views/dashboard/ServerAnalytic.vue:82
 msgid "Receive"
 msgid "Receive"
 msgstr "下載"
 msgstr "下載"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:34 src/components/ChatGPT/ChatGPT.vue:35
-#: src/components/ChatGPT/ChatGPT.vue:41 src/components/ChatGPT/ChatGPT.vue:45
+#: src/components/ChatGPT/ChatGPT.vue:39 src/components/ChatGPT/ChatGPT.vue:40
+#: src/components/ChatGPT/ChatGPT.vue:46 src/components/ChatGPT/ChatGPT.vue:50
 msgid "Regenerate response"
 msgid "Regenerate response"
 msgstr "重新生成響應"
 msgstr "重新生成響應"
 
 
@@ -1057,8 +1152,8 @@ msgstr "安裝"
 msgid "Release Note"
 msgid "Release Note"
 msgstr "發行公告"
 msgstr "發行公告"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:20 src/components/ChatGPT/ChatGPT.vue:21
-#: src/components/ChatGPT/ChatGPT.vue:25 src/components/ChatGPT/ChatGPT.vue:27
+#: src/components/ChatGPT/ChatGPT.vue:25 src/components/ChatGPT/ChatGPT.vue:26
+#: src/components/ChatGPT/ChatGPT.vue:30 src/components/ChatGPT/ChatGPT.vue:32
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:12
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:13
 #: src/components/NginxControl/NginxControl.vue:17
 #: src/components/NginxControl/NginxControl.vue:17
@@ -1101,9 +1196,9 @@ msgstr "高階模式"
 msgid "Running"
 msgid "Running"
 msgstr "運行中"
 msgstr "運行中"
 
 
-#: src/components/ChatGPT/ChatGPT.vue:16 src/components/ChatGPT/ChatGPT.vue:17
-#: src/components/ChatGPT/ChatGPT.vue:21 src/components/ChatGPT/ChatGPT.vue:23
-#: src/views/config/ConfigEdit.vue:89 src/views/domain/DomainEdit.vue:266
+#: src/components/ChatGPT/ChatGPT.vue:21 src/components/ChatGPT/ChatGPT.vue:22
+#: src/components/ChatGPT/ChatGPT.vue:26 src/components/ChatGPT/ChatGPT.vue:28
+#: src/views/config/ConfigEdit.vue:86 src/views/domain/DomainEdit.vue:228
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:32
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:33
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
@@ -1119,7 +1214,7 @@ msgstr "儲存"
 msgid "Save Directive"
 msgid "Save Directive"
 msgstr "儲存指令"
 msgstr "儲存指令"
 
 
-#: src/views/config/ConfigEdit.vue:53 src/views/domain/DomainAdd.vue:53
+#: src/views/config/ConfigEdit.vue:53 src/views/domain/DomainAdd.vue:56
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:36
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "儲存錯誤 %{msg}"
 msgstr "儲存錯誤 %{msg}"
@@ -1133,8 +1228,8 @@ msgstr "保存成功"
 msgid "Save Successfully"
 msgid "Save Successfully"
 msgstr "保存成功"
 msgstr "保存成功"
 
 
-#: src/views/config/ConfigEdit.vue:51 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:146
+#: src/views/config/ConfigEdit.vue:51 src/views/domain/DomainAdd.vue:46
+#: src/views/domain/DomainEdit.vue:147
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
 msgid "Saved successfully"
 msgid "Saved successfully"
 msgstr "儲存成功"
 msgstr "儲存成功"
@@ -1143,8 +1238,8 @@ msgstr "儲存成功"
 msgid "Selector"
 msgid "Selector"
 msgstr "選擇器"
 msgstr "選擇器"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:21
-#: src/views/dashboard/ServerAnalytic.vue:87
+#: src/views/dashboard/ServerAnalytic.vue:28
+#: src/views/dashboard/ServerAnalytic.vue:89
 msgid "Send"
 msgid "Send"
 msgstr "上傳"
 msgstr "上傳"
 
 
@@ -1171,7 +1266,7 @@ msgstr "未在指令集合中找到 server_name"
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:10
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:5
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
 #: src/views/domain/cert/components/AutoCertStepOne.vue:6
-#: src/views/domain/DomainAdd.vue:116
+#: src/views/domain/DomainAdd.vue:119
 msgid "server_name parameter is required"
 msgid "server_name parameter is required"
 msgstr "必須為 server_name 指令指明參數"
 msgstr "必須為 server_name 指令指明參數"
 
 
@@ -1225,7 +1320,7 @@ msgstr "狀態"
 msgid "Stopped"
 msgid "Stopped"
 msgstr "已停止"
 msgstr "已停止"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:43
+#: src/views/dashboard/ServerAnalytic.vue:45
 msgid "Storage"
 msgid "Storage"
 msgstr "儲存"
 msgstr "儲存"
 
 
@@ -1233,7 +1328,7 @@ msgstr "儲存"
 msgid "Subject Name: %{name}"
 msgid "Subject Name: %{name}"
 msgstr "主體名稱: %{name}"
 msgstr "主體名稱: %{name}"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:38
+#: src/views/dashboard/ServerAnalytic.vue:40
 msgid "Swap"
 msgid "Swap"
 msgstr "交換空間"
 msgstr "交換空間"
 
 
@@ -1245,6 +1340,10 @@ msgstr "系統"
 msgid "Table"
 msgid "Table"
 msgstr "表格"
 msgstr "表格"
 
 
+#: src/views/domain/components/SiteDuplicate.vue:8
+msgid "Target"
+msgstr ""
+
 #: src/routes/index.ts:102 src/views/pty/Terminal.vue:2
 #: src/routes/index.ts:102 src/views/pty/Terminal.vue:2
 msgid "Terminal"
 msgid "Terminal"
 msgstr "終端"
 msgstr "終端"
@@ -1307,8 +1406,10 @@ msgid "Type"
 msgstr "類型"
 msgstr "類型"
 
 
 #: src/views/cert/Cert.vue:68 src/views/cert/DNSCredential.vue:25
 #: src/views/cert/Cert.vue:68 src/views/cert/DNSCredential.vue:25
-#: src/views/config/config.ts:28 src/views/domain/DomainList.vue:41
-#: src/views/environment/Environment.vue:55 src/views/user/User.vue:37
+#: src/views/config/config.ts:28
+#: src/views/domain/components/RightSettings.vue:11
+#: src/views/domain/DomainList.vue:41 src/views/environment/Environment.vue:55
+#: src/views/user/User.vue:37
 msgid "Updated at"
 msgid "Updated at"
 msgstr "修改時間"
 msgstr "修改時間"
 
 
@@ -1332,7 +1433,7 @@ msgstr "升級成功"
 msgid "Upgrading Nginx UI, please wait..."
 msgid "Upgrading Nginx UI, please wait..."
 msgstr "正在升級 Nginx UI,請稍候..."
 msgstr "正在升級 Nginx UI,請稍候..."
 
 
-#: src/views/dashboard/ServerAnalytic.vue:150
+#: src/views/dashboard/ServerAnalytic.vue:157
 msgid "Uptime:"
 msgid "Uptime:"
 msgstr "執行時間:"
 msgstr "執行時間:"
 
 
@@ -1340,6 +1441,11 @@ msgstr "執行時間:"
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
+#: src/components/ChatGPT/ChatGPT.vue:16
+#, fuzzy
+msgid "User"
+msgstr "使用者名稱"
+
 #: src/views/other/Login.vue:11 src/views/user/User.vue:11
 #: src/views/other/Login.vue:11 src/views/user/User.vue:11
 msgid "Username"
 msgid "Username"
 msgstr "使用者名稱"
 msgstr "使用者名稱"
@@ -1376,8 +1482,8 @@ msgstr ""
 "我們將從該文件中刪除 HTTPChallenge 配置並重新加載 Nginx 配置文件。你確定你要"
 "我們將從該文件中刪除 HTTPChallenge 配置並重新加載 Nginx 配置文件。你確定你要"
 "繼續嗎?"
 "繼續嗎?"
 
 
-#: src/views/dashboard/ServerAnalytic.vue:102
-#: src/views/dashboard/ServerAnalytic.vue:22
+#: src/views/dashboard/ServerAnalytic.vue:104
+#: src/views/dashboard/ServerAnalytic.vue:29
 msgid "Writes"
 msgid "Writes"
 msgstr "寫"
 msgstr "寫"
 
 

+ 1 - 1
frontend/src/version.json

@@ -1 +1 @@
-{"version":"1.9.9","build_id":116,"total_build":186}
+{"version":"1.9.9","build_id":119,"total_build":189}

+ 1 - 1
frontend/version.json

@@ -1 +1 @@
-{"version":"1.9.9","build_id":116,"total_build":186}
+{"version":"1.9.9","build_id":119,"total_build":189}

+ 1 - 1
frontend/vite.config.ts

@@ -58,7 +58,7 @@ export default defineConfig({
         preprocessorOptions: {
         preprocessorOptions: {
             less: {
             less: {
                 modifyVars: {
                 modifyVars: {
-                    'border-radius-base': '4px'
+                    'border-radius-base': '5px'
                 },
                 },
                 javascriptEnabled: true
                 javascriptEnabled: true
             }
             }

Some files were not shown because too many files changed in this diff