diff --git a/frontend/package.json b/frontend/package.json
index 12b21205..59d3c5f2 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,7 +1,7 @@
{
"name": "nginx-ui-frontend-next",
"private": true,
- "version": "1.6.8",
+ "version": "1.7.0",
"type": "commonjs",
"scripts": {
"dev": "vite",
diff --git a/frontend/src/App.vue b/frontend/src/App.vue
index 77d2df86..dcdbb1b3 100644
--- a/frontend/src/App.vue
+++ b/frontend/src/App.vue
@@ -5,17 +5,22 @@ import {useSettingsStore} from '@/pinia'
import {dark_mode} from '@/lib/theme'
let media = window.matchMedia('(prefers-color-scheme: dark)')
+
const callback = (media: { matches: any; }) => {
const settings = useSettingsStore()
- if (media.matches) {
- dark_mode(true)
- settings.set_theme('dark')
- } else {
- dark_mode(false)
- settings.set_theme('default')
+ if (settings.preference_theme === 'auto') {
+ if (media.matches) {
+ dark_mode(true)
+ settings.set_theme('dark')
+ } else {
+ dark_mode(false)
+ settings.set_theme('auto')
+ }
}
}
+
callback(media)
+
if (typeof media.addEventListener === 'function') {
media.addEventListener('change', callback)
} else if (typeof media.addListener === 'function') {
diff --git a/frontend/src/components/FooterToolbar/FooterToolBar.vue b/frontend/src/components/FooterToolbar/FooterToolBar.vue
index 3a3fd624..b952b64f 100644
--- a/frontend/src/components/FooterToolbar/FooterToolBar.vue
+++ b/frontend/src/components/FooterToolbar/FooterToolBar.vue
@@ -26,6 +26,13 @@ export default {
\ No newline at end of file
+
diff --git a/frontend/src/components/StdDataEntry/compontents/StdSelector.vue b/frontend/src/components/StdDataEntry/compontents/StdSelector.vue
index 8625995b..efa662f7 100644
--- a/frontend/src/components/StdDataEntry/compontents/StdSelector.vue
+++ b/frontend/src/components/StdDataEntry/compontents/StdSelector.vue
@@ -70,28 +70,28 @@ watch(props, () => {
{{ M_value }}
{{ description }}
@@ -99,6 +99,12 @@ watch(props, () => {
\ No newline at end of file
+
diff --git a/frontend/src/language/en/app.po b/frontend/src/language/en/app.po
index 00f363a7..be27c8d5 100644
--- a/frontend/src/language/en/app.po
+++ b/frontend/src/language/en/app.po
@@ -9,21 +9,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: src/routes/index.ts:116
+#: src/routes/index.ts:125
msgid "About"
msgstr "About"
-#: src/routes/index.ts:99 src/views/domain/ngx_conf/LogEntry.vue:64
+#: src/routes/index.ts:100 src/views/domain/ngx_conf/LogEntry.vue:64
msgid "Access Logs"
msgstr ""
-#: src/views/config/Config.vue:24 src/views/domain/DomainList.vue:42
+#: src/views/config/Config.vue:24 src/views/domain/DomainList.vue:47
#: src/views/user/User.vue:43
msgid "Action"
msgstr "Action"
-#: src/components/StdDataDisplay/StdCurd.vue:134
-#: src/components/StdDataDisplay/StdCurd.vue:26
+#: src/components/StdDataDisplay/StdCurd.vue:145
+#: src/components/StdDataDisplay/StdCurd.vue:25
msgid "Add"
msgstr ""
@@ -33,47 +33,53 @@ msgstr ""
msgid "Add Directive Below"
msgstr "Add Directive Below"
-#: src/views/domain/ngx_conf/LocationEditor.vue:33
-#: src/views/domain/ngx_conf/LocationEditor.vue:48
+#: src/views/domain/ngx_conf/LocationEditor.vue:45
+#: src/views/domain/ngx_conf/LocationEditor.vue:50
+#: src/views/domain/ngx_conf/LocationEditor.vue:51
+#: src/views/domain/ngx_conf/LocationEditor.vue:60
msgid "Add Location"
msgstr "Add Location"
-#: src/routes/index.ts:55 src/views/domain/DomainAdd.vue:2
+#: src/routes/index.ts:56 src/views/domain/DomainAdd.vue:2
msgid "Add Site"
msgstr "Add Site"
-#: src/views/domain/DomainEdit.vue:19
+#: src/views/domain/DomainEdit.vue:18 src/views/domain/DomainEdit.vue:19
msgid "Advance Mode"
msgstr "Advance Mode"
-#: src/components/StdDataDisplay/StdTable.vue:44
-#: src/views/domain/DomainList.vue:27
+#: src/components/StdDataDisplay/StdTable.vue:54
+#: src/views/domain/DomainList.vue:26
#, fuzzy
-msgid "Are you sure you want to delete ?"
+msgid "Are you sure you want to delete?"
msgstr "Are you sure you want to remove this directive?"
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:15
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:27
msgid "Are you sure you want to remove this directive?"
msgstr "Are you sure you want to remove this directive?"
-#: src/views/domain/ngx_conf/LocationEditor.vue:9
+#: src/views/domain/ngx_conf/LocationEditor.vue:19
#, fuzzy
msgid "Are you sure you want to remove this location?"
msgstr "Are you sure you want to remove this directive?"
+#: src/views/preference/Preference.vue:7 src/views/preference/Preference.vue:8
+msgid "Auto"
+msgstr ""
+
#: src/views/nginx_log/NginxLog.vue:4
msgid "Auto Refresh"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:78
+#: src/views/domain/cert/IssueCert.vue:72
msgid "Auto-renewal disabled for %{name}"
msgstr "Auto-renewal disabled for %{name}"
-#: src/views/domain/cert/IssueCert.vue:72
+#: src/views/domain/cert/IssueCert.vue:66
msgid "Auto-renewal enabled for %{name}"
msgstr "Auto-renewal enabled for %{name}"
-#: src/views/domain/DomainEdit.vue:178 src/views/nginx_log/NginxLog.vue:172
+#: src/views/domain/DomainEdit.vue:187 src/views/nginx_log/NginxLog.vue:173
msgid "Back"
msgstr "Back"
@@ -86,15 +92,25 @@ msgstr "Back"
msgid "Base information"
msgstr "Base information"
-#: src/views/domain/DomainEdit.vue:22
+#: src/views/domain/DomainEdit.vue:21 src/views/domain/DomainEdit.vue:22
msgid "Basic Mode"
msgstr "Basic Mode"
+#: src/components/StdDataDisplay/StdBatchEdit.vue:5
+#: src/components/StdDataDisplay/StdTable.vue:12
+#: src/components/StdDataDisplay/StdTable.vue:13
+#: src/components/StdDataDisplay/StdTable.vue:18
+#, fuzzy
+msgid "Batch Modify"
+msgstr "Modify Config"
+
#: src/views/other/About.vue:21
msgid "Build with"
msgstr "Build with"
-#: src/components/StdDataDisplay/StdCurd.vue:28
+#: src/components/StdDataDisplay/StdBatchEdit.vue:7
+#: src/components/StdDataDisplay/StdCurd.vue:27
+#: src/components/StdDataEntry/components/StdSelector.vue:11
#: src/components/StdDataEntry/compontents/StdSelector.vue:11
#: src/views/config/ConfigEdit.vue:49
msgid "Cancel"
@@ -112,9 +128,9 @@ msgstr "Certificate is valid"
msgid "Certificate Status"
msgstr "Certificate Status"
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:29
-#: src/views/domain/ngx_conf/LocationEditor.vue:21
-#: src/views/domain/ngx_conf/LocationEditor.vue:35
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:41
+#: src/views/domain/ngx_conf/LocationEditor.vue:31
+#: src/views/domain/ngx_conf/LocationEditor.vue:47
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:175
msgid "Comments"
msgstr "Comments"
@@ -131,8 +147,8 @@ msgstr "Configurations"
msgid "Configure SSL"
msgstr "Configure SSL"
-#: src/views/domain/ngx_conf/LocationEditor.vue:27
-#: src/views/domain/ngx_conf/LocationEditor.vue:41
+#: src/views/domain/ngx_conf/LocationEditor.vue:37
+#: src/views/domain/ngx_conf/LocationEditor.vue:53
msgid "Content"
msgstr "Content"
@@ -156,7 +172,12 @@ msgstr "Created at"
msgid "Creating client facilitates communication with the CA server"
msgstr ""
-#: src/routes/index.ts:27
+#: src/views/preference/Preference.vue:13
+#: src/views/preference/Preference.vue:14
+msgid "Dark"
+msgstr ""
+
+#: src/routes/index.ts:28
msgid "Dashboard"
msgstr "Dashboard"
@@ -164,16 +185,16 @@ msgstr "Dashboard"
msgid "Database (Optional, default: database)"
msgstr "Database (Optional, default: database)"
-#: src/components/StdDataDisplay/StdTable.vue:366
-#: src/views/domain/DomainList.vue:111
+#: src/components/StdDataDisplay/StdTable.vue:527
+#: src/views/domain/DomainList.vue:115
msgid "Delete"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:120
+#: src/components/StdDataDisplay/StdTable.vue:132
msgid "Delete ID: %{id}"
msgstr ""
-#: src/views/domain/DomainList.vue:76
+#: src/views/domain/DomainList.vue:81
msgid "Delete site: %{site_name}"
msgstr ""
@@ -185,20 +206,23 @@ msgstr "Development Mode"
msgid "Directive"
msgstr "Directive"
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:1
#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:2
msgid "Directives"
msgstr "Directives"
-#: src/views/domain/cert/IssueCert.vue:80
+#: src/views/domain/cert/IssueCert.vue:74
msgid "Disable auto-renewal failed for %{name}"
msgstr "Disable auto-renewal failed for %{name}"
-#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainList.vue:17
-#: src/views/domain/DomainList.vue:29
+#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainEdit.vue:9
+#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:34
+#: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8
+#: src/views/domain/DomainList.vue:9
msgid "Disabled"
msgstr "Disabled"
-#: src/views/domain/DomainEdit.vue:112 src/views/domain/DomainList.vue:64
+#: src/views/domain/DomainEdit.vue:118 src/views/domain/DomainList.vue:69
msgid "Disabled successfully"
msgstr "Disabled successfully"
@@ -210,15 +234,15 @@ msgstr "Disk IO"
msgid "Domain Config Created Successfully"
msgstr "Domain Config Created Successfully"
-#: src/views/domain/DomainEdit.vue:5
+#: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5
msgid "Edit %{n}"
msgstr "Edit %{n}"
-#: src/routes/index.ts:77 src/views/config/ConfigEdit.vue:2
+#: src/routes/index.ts:78 src/views/config/ConfigEdit.vue:2
msgid "Edit Configuration"
msgstr "Edit Configuration"
-#: src/routes/index.ts:59
+#: src/routes/index.ts:60
msgid "Edit Site"
msgstr "Edit Site"
@@ -226,7 +250,7 @@ msgstr "Edit Site"
msgid "Email (*)"
msgstr "Email (*)"
-#: src/views/domain/cert/IssueCert.vue:74
+#: src/views/domain/cert/IssueCert.vue:68
msgid "Enable auto-renewal failed for %{name}"
msgstr "Enable auto-renewal failed for %{name}"
@@ -238,14 +262,15 @@ msgstr "Enable failed"
msgid "Enable TLS"
msgstr "Enable TLS"
-#: src/views/domain/DomainEdit.vue:33 src/views/domain/DomainEdit.vue:7
-#: src/views/domain/DomainList.vue:12 src/views/domain/DomainList.vue:20
-#: src/views/domain/DomainList.vue:26
+#: src/views/domain/DomainEdit.vue:33 src/views/domain/DomainEdit.vue:6
+#: src/views/domain/DomainEdit.vue:7 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"
msgstr "Enabled"
-#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:103
-#: src/views/domain/DomainList.vue:54
+#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:109
+#: src/views/domain/DomainList.vue:59
msgid "Enabled successfully"
msgstr "Enabled successfully"
@@ -253,7 +278,7 @@ msgstr "Enabled successfully"
msgid "Encrypt website with Let's Encrypt"
msgstr "Encrypt website with Let's Encrypt"
-#: src/routes/index.ts:103 src/views/domain/ngx_conf/LogEntry.vue:68
+#: src/routes/index.ts:104 src/views/domain/ngx_conf/LogEntry.vue:68
msgid "Error Logs"
msgstr ""
@@ -262,15 +287,17 @@ msgid "Expiration Date: %{date}"
msgstr "Expiration Date: %{date}"
#: src/components/StdDataDisplay/StdTable.vue:12
-#: src/components/StdDataDisplay/StdTable.vue:317
+#: src/components/StdDataDisplay/StdTable.vue:362
+#: src/components/StdDataDisplay/StdTable.vue:6
+#: src/components/StdDataDisplay/StdTable.vue:7
msgid "Export"
msgstr ""
-#: src/views/domain/DomainEdit.vue:115 src/views/domain/DomainList.vue:68
+#: src/views/domain/DomainEdit.vue:121 src/views/domain/DomainList.vue:73
msgid "Failed to disable %{msg}"
msgstr "Failed to disable %{msg}"
-#: src/views/domain/DomainEdit.vue:106 src/views/domain/DomainList.vue:58
+#: src/views/domain/DomainEdit.vue:112 src/views/domain/DomainList.vue:63
msgid "Failed to enable %{msg}"
msgstr "Failed to enable %{msg}"
@@ -290,6 +317,7 @@ msgstr ""
msgid "Finished"
msgstr "Finished"
+#: src/components/StdDataEntry/components/StdPassword.vue:42
#: src/components/StdDataEntry/compontents/StdPassword.vue:42
msgid "Generate"
msgstr ""
@@ -298,15 +326,15 @@ msgstr ""
msgid "Generating private key for registering account"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:103
+#: src/views/domain/cert/IssueCert.vue:97
msgid "Getting the certificate, please wait..."
msgstr "Getting the certificate, please wait..."
-#: src/routes/index.ts:20
+#: src/routes/index.ts:21
msgid "Home"
msgstr "Home"
-#: src/routes/index.ts:126 src/views/other/Install.vue:128
+#: src/routes/index.ts:135 src/views/other/Install.vue:128
msgid "Install"
msgstr "Install"
@@ -328,19 +356,26 @@ msgstr "Enabled successfully"
msgid "Leave blank for no change"
msgstr "Leave blank for no change"
+#: src/views/preference/Preference.vue:10
+#: src/views/preference/Preference.vue:11
+msgid "Light"
+msgstr ""
+
#: src/views/dashboard/DashBoard.vue:141
msgid "Load Averages:"
msgstr "Load Averages:"
-#: src/views/domain/ngx_conf/LocationEditor.vue:5
+#: src/views/domain/ngx_conf/LocationEditor.vue:15
+#: src/views/domain/ngx_conf/LocationEditor.vue:8
+#: src/views/domain/ngx_conf/LocationEditor.vue:9
msgid "Location"
msgstr "Location"
-#: src/views/domain/ngx_conf/LocationEditor.vue:39
+#: src/views/domain/ngx_conf/LocationEditor.vue:40
msgid "Locations"
msgstr "Locations"
-#: src/routes/index.ts:132 src/views/other/Login.vue:103
+#: src/routes/index.ts:141 src/views/other/Login.vue:103
msgid "Login"
msgstr "Login"
@@ -352,7 +387,7 @@ msgstr "Login successful"
msgid "Logout successful"
msgstr "Logout successful"
-#: src/views/domain/cert/IssueCert.vue:226
+#: src/views/domain/cert/IssueCert.vue:209
msgid ""
"Make sure you have configured a reverse proxy for .well-known directory to "
"HTTPChallengePort (default: 9180) before getting the certificate."
@@ -360,15 +395,15 @@ msgstr ""
"Make sure you have configured a reverse proxy for .well-known directory to "
"HTTPChallengePort (default: 9180) before getting the certificate."
-#: src/routes/index.ts:68
+#: src/routes/index.ts:69
msgid "Manage Configs"
msgstr "Manage Configs"
-#: src/routes/index.ts:43 src/views/domain/DomainList.vue:2
+#: src/routes/index.ts:44 src/views/domain/DomainList.vue:2
msgid "Manage Sites"
msgstr "Manage Sites"
-#: src/routes/index.ts:35 src/views/user/User.vue:2
+#: src/routes/index.ts:36 src/views/user/User.vue:2
msgid "Manage Users"
msgstr "Manage Users"
@@ -380,12 +415,12 @@ msgstr "Memory"
msgid "Memory and Storage"
msgstr "Memory and Storage"
-#: src/components/StdDataDisplay/StdCurd.vue:26
-#: src/components/StdDataDisplay/StdTable.vue:18
-#: src/components/StdDataDisplay/StdTable.vue:19
-#: src/components/StdDataDisplay/StdTable.vue:24
-#: src/components/StdDataDisplay/StdTable.vue:34
-#: src/components/StdDataDisplay/StdTable.vue:36
+#: src/components/StdDataDisplay/StdCurd.vue:25
+#: src/components/StdDataDisplay/StdTable.vue:25
+#: src/components/StdDataDisplay/StdTable.vue:26
+#: src/components/StdDataDisplay/StdTable.vue:31
+#: src/components/StdDataDisplay/StdTable.vue:44
+#: src/components/StdDataDisplay/StdTable.vue:46
#, fuzzy
msgid "Modify"
msgstr "Modify Config"
@@ -394,7 +429,8 @@ msgstr "Modify Config"
msgid "Modify Config"
msgstr "Modify Config"
-#: src/views/config/Config.vue:12 src/views/domain/DomainList.vue:14
+#: src/views/config/Config.vue:12 src/views/domain/DomainEdit.vue:36
+#: src/views/domain/DomainList.vue:15
msgid "Name"
msgstr "Name"
@@ -418,18 +454,18 @@ msgstr "Network Total Send"
msgid "Next"
msgstr "Next"
-#: src/routes/index.ts:93 src/views/nginx_log/NginxLog.vue:2
+#: src/routes/index.ts:94 src/views/nginx_log/NginxLog.vue:2
msgid "Nginx Log"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:42
-#: src/views/domain/DomainList.vue:25
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:17
-#: src/views/domain/ngx_conf/LocationEditor.vue:11
+#: src/components/StdDataDisplay/StdTable.vue:52
+#: src/views/domain/DomainList.vue:24
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:29
+#: src/views/domain/ngx_conf/LocationEditor.vue:21
msgid "No"
msgstr "No"
-#: src/routes/index.ts:138 src/routes/index.ts:140
+#: src/routes/index.ts:147 src/routes/index.ts:149
msgid "Not Found"
msgstr "Not Found"
@@ -437,7 +473,7 @@ msgstr "Not Found"
msgid "Not Valid Before: %{date}"
msgstr "Not Valid Before: %{date}"
-#: src/views/domain/cert/IssueCert.vue:218
+#: src/views/domain/cert/IssueCert.vue:201
msgid ""
"Note: The server_name in the current configuration must be the domain name "
"you need to get the certificate."
@@ -449,10 +485,12 @@ msgstr ""
msgid "Obtaining certificate"
msgstr ""
-#: src/components/StdDataDisplay/StdCurd.vue:29
-#: src/components/StdDataDisplay/StdTable.vue:43
+#: src/components/StdDataDisplay/StdBatchEdit.vue:8
+#: src/components/StdDataDisplay/StdCurd.vue:28
+#: src/components/StdDataDisplay/StdTable.vue:53
+#: src/components/StdDataEntry/components/StdSelector.vue:12
#: src/components/StdDataEntry/compontents/StdSelector.vue:12
-#: src/views/domain/DomainList.vue:26
+#: src/views/domain/DomainList.vue:25
msgid "OK"
msgstr ""
@@ -472,8 +510,8 @@ msgstr "Password"
msgid "Password (*)"
msgstr "Password (*)"
-#: src/views/domain/ngx_conf/LocationEditor.vue:24
-#: src/views/domain/ngx_conf/LocationEditor.vue:38
+#: src/views/domain/ngx_conf/LocationEditor.vue:34
+#: src/views/domain/ngx_conf/LocationEditor.vue:50
msgid "Path"
msgstr "Path"
@@ -489,6 +527,10 @@ msgstr "Please input your password!"
msgid "Please input your username!"
msgstr "Please input your username!"
+#: src/routes/index.ts:117 src/views/preference/Preference.vue:2
+msgid "Preference"
+msgstr ""
+
#: src/language/constants.ts:12
#, fuzzy
msgid "Preparing lego configurations"
@@ -522,11 +564,15 @@ msgstr ""
msgid "Reloading nginx"
msgstr ""
+#: src/components/StdDataDisplay/StdTable.vue:10
#: src/components/StdDataDisplay/StdTable.vue:15
+#: src/components/StdDataDisplay/StdTable.vue:9
msgid "Reset"
msgstr ""
-#: src/views/config/ConfigEdit.vue:52 src/views/domain/DomainEdit.vue:181
+#: src/views/config/ConfigEdit.vue:52 src/views/domain/DomainEdit.vue:190
+#: src/views/preference/Preference.vue:22
+#: src/views/preference/Preference.vue:23
msgid "Save"
msgstr "Save"
@@ -540,16 +586,22 @@ msgstr "Save Directive"
msgid "Save error %{msg}"
msgstr "Save error %{msg}"
-#: src/components/StdDataDisplay/StdCurd.vue:102
+#: src/components/StdDataDisplay/StdBatchEdit.vue:40
+#, fuzzy
+msgid "Save successfully"
+msgstr "Saved successfully"
+
+#: src/components/StdDataDisplay/StdCurd.vue:108
#, fuzzy
msgid "Save Successfully"
msgstr "Saved successfully"
#: src/views/config/ConfigEdit.vue:34 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:91
+#: src/views/domain/DomainEdit.vue:97
msgid "Saved successfully"
msgstr "Saved successfully"
+#: src/components/StdDataEntry/components/StdSelector.vue:13
#: src/components/StdDataEntry/compontents/StdSelector.vue:13
msgid "Selector"
msgstr ""
@@ -558,11 +610,13 @@ msgstr ""
msgid "Send"
msgstr "Send"
-#: src/components/StdDataDisplay/StdTable.vue:140
-#: src/components/StdDataDisplay/StdTable.vue:298
-#: src/views/config/ConfigEdit.vue:22 src/views/domain/DomainEdit.vue:56
-#: src/views/domain/DomainEdit.vue:68 src/views/domain/DomainEdit.vue:77
-#: src/views/domain/DomainEdit.vue:94 src/views/domain/DomainList.vue:78
+#: src/components/StdDataDisplay/StdBatchEdit.vue:43
+#: src/components/StdDataDisplay/StdTable.vue:168
+#: src/components/StdDataDisplay/StdTable.vue:343
+#: src/components/StdDataDisplay/StdTable.vue:463
+#: src/views/config/ConfigEdit.vue:22 src/views/domain/DomainEdit.vue:100
+#: src/views/domain/DomainEdit.vue:62 src/views/domain/DomainEdit.vue:74
+#: src/views/domain/DomainEdit.vue:83 src/views/domain/DomainList.vue:83
#: src/views/other/Install.vue:71
msgid "Server error"
msgstr "Server error"
@@ -575,29 +629,25 @@ msgstr "Server Info"
msgid "server_name not found in directives"
msgstr "server_name not found in directives"
-#: src/views/domain/cert/IssueCert.vue:209 src/views/domain/DomainAdd.vue:112
+#: src/views/domain/cert/IssueCert.vue:195 src/views/domain/DomainAdd.vue:112
msgid "server_name parameter is required"
msgstr "server_name parameter is required"
-#: src/views/domain/cert/IssueCert.vue:212
-#: src/views/domain/cert/IssueCert.vue:35
-msgid "server_name parameters more than one"
-msgstr "server_name parameters more than one"
-
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:6
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:7
msgid "Single Directive"
msgstr "Single Directive"
-#: src/routes/index.ts:107
+#: src/routes/index.ts:108
#, fuzzy
msgid "Site Logs"
msgstr "Sites List"
-#: src/routes/index.ts:51
+#: src/routes/index.ts:52
msgid "Sites List"
msgstr "Sites List"
-#: src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:24
msgid "Status"
msgstr "Status"
@@ -618,11 +668,11 @@ msgstr "Swap"
msgid "Table"
msgstr "Enabled"
-#: src/routes/index.ts:85 src/views/pty/Terminal.vue:2
+#: src/routes/index.ts:86 src/views/pty/Terminal.vue:2
msgid "Terminal"
msgstr "Terminal"
-#: src/views/domain/cert/IssueCert.vue:222
+#: src/views/domain/cert/IssueCert.vue:205
msgid ""
"The certificate for the domain will be checked every hour, and will be "
"renewed if it has been more than 1 month since it was last issued."
@@ -638,11 +688,20 @@ msgstr "The filename cannot contain the following characters: %{c}"
msgid "The username or password is incorrect"
msgstr ""
-#: src/views/config/Config.vue:17 src/views/domain/DomainList.vue:36
+#: src/views/preference/Preference.vue:5
+msgid "Theme"
+msgstr ""
+
+#: src/views/config/Config.vue:17 src/views/domain/DomainList.vue:41
#: src/views/user/User.vue:37
msgid "Updated at"
msgstr "Updated at"
+#: src/components/StdDataDisplay/StdTable.vue:461
+#, fuzzy
+msgid "Updated successfully"
+msgstr "Saved successfully"
+
#: src/views/dashboard/DashBoard.vue:137
msgid "Uptime:"
msgstr "Uptime:"
@@ -676,8 +735,8 @@ msgstr ""
msgid "Writing certificate to disk"
msgstr ""
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:16
-#: src/views/domain/ngx_conf/LocationEditor.vue:10
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:28
+#: src/views/domain/ngx_conf/LocationEditor.vue:20
msgid "Yes"
msgstr "Yes"
@@ -686,6 +745,13 @@ msgctxt "Project"
msgid "License"
msgstr "License"
+#, fuzzy
+#~ msgid "Are you sure you want to delete ?"
+#~ msgstr "Are you sure you want to remove this directive?"
+
+#~ msgid "server_name parameters more than one"
+#~ msgstr "server_name parameters more than one"
+
#~ msgid "404 Not Found"
#~ msgstr "404 Not Found"
diff --git a/frontend/src/language/messages.pot b/frontend/src/language/messages.pot
index 98eacab3..d8dbb625 100644
--- a/frontend/src/language/messages.pot
+++ b/frontend/src/language/messages.pot
@@ -2,23 +2,23 @@ msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
-#: src/routes/index.ts:116
+#: src/routes/index.ts:125
msgid "About"
msgstr ""
-#: src/routes/index.ts:99
+#: src/routes/index.ts:100
#: src/views/domain/ngx_conf/LogEntry.vue:64
msgid "Access Logs"
msgstr ""
#: src/views/config/Config.vue:24
-#: src/views/domain/DomainList.vue:42
+#: src/views/domain/DomainList.vue:47
#: src/views/user/User.vue:43
msgid "Action"
msgstr ""
-#: src/components/StdDataDisplay/StdCurd.vue:134
-#: src/components/StdDataDisplay/StdCurd.vue:26
+#: src/components/StdDataDisplay/StdCurd.vue:145
+#: src/components/StdDataDisplay/StdCurd.vue:25
msgid "Add"
msgstr ""
@@ -28,47 +28,55 @@ msgstr ""
msgid "Add Directive Below"
msgstr ""
-#: src/views/domain/ngx_conf/LocationEditor.vue:33
-#: src/views/domain/ngx_conf/LocationEditor.vue:48
+#: src/views/domain/ngx_conf/LocationEditor.vue:45
+#: src/views/domain/ngx_conf/LocationEditor.vue:50
+#: src/views/domain/ngx_conf/LocationEditor.vue:51
+#: src/views/domain/ngx_conf/LocationEditor.vue:60
msgid "Add Location"
msgstr ""
-#: src/routes/index.ts:55
+#: src/routes/index.ts:56
#: src/views/domain/DomainAdd.vue:2
msgid "Add Site"
msgstr ""
+#: src/views/domain/DomainEdit.vue:18
#: src/views/domain/DomainEdit.vue:19
msgid "Advance Mode"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:44
-#: src/views/domain/DomainList.vue:27
-msgid "Are you sure you want to delete ?"
+#: src/components/StdDataDisplay/StdTable.vue:54
+#: src/views/domain/DomainList.vue:26
+msgid "Are you sure you want to delete?"
msgstr ""
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:15
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:27
msgid "Are you sure you want to remove this directive?"
msgstr ""
-#: src/views/domain/ngx_conf/LocationEditor.vue:9
+#: src/views/domain/ngx_conf/LocationEditor.vue:19
msgid "Are you sure you want to remove this location?"
msgstr ""
+#: src/views/preference/Preference.vue:7
+#: src/views/preference/Preference.vue:8
+msgid "Auto"
+msgstr ""
+
#: src/views/nginx_log/NginxLog.vue:4
msgid "Auto Refresh"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:78
+#: src/views/domain/cert/IssueCert.vue:72
msgid "Auto-renewal disabled for %{name}"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:72
+#: src/views/domain/cert/IssueCert.vue:66
msgid "Auto-renewal enabled for %{name}"
msgstr ""
-#: src/views/domain/DomainEdit.vue:178
-#: src/views/nginx_log/NginxLog.vue:172
+#: src/views/domain/DomainEdit.vue:187
+#: src/views/nginx_log/NginxLog.vue:173
msgid "Back"
msgstr ""
@@ -80,15 +88,25 @@ msgstr ""
msgid "Base information"
msgstr ""
+#: src/views/domain/DomainEdit.vue:21
#: src/views/domain/DomainEdit.vue:22
msgid "Basic Mode"
msgstr ""
+#: src/components/StdDataDisplay/StdBatchEdit.vue:5
+#: src/components/StdDataDisplay/StdTable.vue:12
+#: src/components/StdDataDisplay/StdTable.vue:13
+#: src/components/StdDataDisplay/StdTable.vue:18
+msgid "Batch Modify"
+msgstr ""
+
#: src/views/other/About.vue:21
msgid "Build with"
msgstr ""
-#: src/components/StdDataDisplay/StdCurd.vue:28
+#: src/components/StdDataDisplay/StdBatchEdit.vue:7
+#: src/components/StdDataDisplay/StdCurd.vue:27
+#: src/components/StdDataEntry/components/StdSelector.vue:11
#: src/components/StdDataEntry/compontents/StdSelector.vue:11
#: src/views/config/ConfigEdit.vue:49
msgid "Cancel"
@@ -106,9 +124,9 @@ msgstr ""
msgid "Certificate Status"
msgstr ""
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:29
-#: src/views/domain/ngx_conf/LocationEditor.vue:21
-#: src/views/domain/ngx_conf/LocationEditor.vue:35
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:41
+#: src/views/domain/ngx_conf/LocationEditor.vue:31
+#: src/views/domain/ngx_conf/LocationEditor.vue:47
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:175
msgid "Comments"
msgstr ""
@@ -125,8 +143,8 @@ msgstr ""
msgid "Configure SSL"
msgstr ""
-#: src/views/domain/ngx_conf/LocationEditor.vue:27
-#: src/views/domain/ngx_conf/LocationEditor.vue:41
+#: src/views/domain/ngx_conf/LocationEditor.vue:37
+#: src/views/domain/ngx_conf/LocationEditor.vue:53
msgid "Content"
msgstr ""
@@ -150,7 +168,12 @@ msgstr ""
msgid "Creating client facilitates communication with the CA server"
msgstr ""
-#: src/routes/index.ts:27
+#: src/views/preference/Preference.vue:13
+#: src/views/preference/Preference.vue:14
+msgid "Dark"
+msgstr ""
+
+#: src/routes/index.ts:28
msgid "Dashboard"
msgstr ""
@@ -158,16 +181,16 @@ msgstr ""
msgid "Database (Optional, default: database)"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:366
-#: src/views/domain/DomainList.vue:111
+#: src/components/StdDataDisplay/StdTable.vue:527
+#: src/views/domain/DomainList.vue:115
msgid "Delete"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:120
+#: src/components/StdDataDisplay/StdTable.vue:132
msgid "Delete ID: %{id}"
msgstr ""
-#: src/views/domain/DomainList.vue:76
+#: src/views/domain/DomainList.vue:81
msgid "Delete site: %{site_name}"
msgstr ""
@@ -180,22 +203,27 @@ msgstr ""
msgid "Directive"
msgstr ""
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:1
#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:2
msgid "Directives"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:80
+#: src/views/domain/cert/IssueCert.vue:74
msgid "Disable auto-renewal failed for %{name}"
msgstr ""
#: src/views/domain/DomainEdit.vue:10
-#: src/views/domain/DomainList.vue:17
-#: src/views/domain/DomainList.vue:29
+#: src/views/domain/DomainEdit.vue:9
+#: src/views/domain/DomainList.vue:16
+#: src/views/domain/DomainList.vue:34
+#: src/views/domain/DomainList.vue:7
+#: src/views/domain/DomainList.vue:8
+#: src/views/domain/DomainList.vue:9
msgid "Disabled"
msgstr ""
-#: src/views/domain/DomainEdit.vue:112
-#: src/views/domain/DomainList.vue:64
+#: src/views/domain/DomainEdit.vue:118
+#: src/views/domain/DomainList.vue:69
msgid "Disabled successfully"
msgstr ""
@@ -207,16 +235,17 @@ msgstr ""
msgid "Domain Config Created Successfully"
msgstr ""
+#: src/views/domain/DomainEdit.vue:4
#: src/views/domain/DomainEdit.vue:5
msgid "Edit %{n}"
msgstr ""
-#: src/routes/index.ts:77
+#: src/routes/index.ts:78
#: src/views/config/ConfigEdit.vue:2
msgid "Edit Configuration"
msgstr ""
-#: src/routes/index.ts:59
+#: src/routes/index.ts:60
msgid "Edit Site"
msgstr ""
@@ -224,7 +253,7 @@ msgstr ""
msgid "Email (*)"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:74
+#: src/views/domain/cert/IssueCert.vue:68
msgid "Enable auto-renewal failed for %{name}"
msgstr ""
@@ -237,16 +266,19 @@ msgid "Enable TLS"
msgstr ""
#: src/views/domain/DomainEdit.vue:33
+#: src/views/domain/DomainEdit.vue:6
#: src/views/domain/DomainEdit.vue:7
+#: src/views/domain/DomainList.vue:10
+#: src/views/domain/DomainList.vue:11
#: src/views/domain/DomainList.vue:12
-#: src/views/domain/DomainList.vue:20
-#: src/views/domain/DomainList.vue:26
+#: src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:31
msgid "Enabled"
msgstr ""
#: src/views/domain/DomainAdd.vue:46
-#: src/views/domain/DomainEdit.vue:103
-#: src/views/domain/DomainList.vue:54
+#: src/views/domain/DomainEdit.vue:109
+#: src/views/domain/DomainList.vue:59
msgid "Enabled successfully"
msgstr ""
@@ -254,7 +286,7 @@ msgstr ""
msgid "Encrypt website with Let's Encrypt"
msgstr ""
-#: src/routes/index.ts:103
+#: src/routes/index.ts:104
#: src/views/domain/ngx_conf/LogEntry.vue:68
msgid "Error Logs"
msgstr ""
@@ -264,17 +296,19 @@ msgid "Expiration Date: %{date}"
msgstr ""
#: src/components/StdDataDisplay/StdTable.vue:12
-#: src/components/StdDataDisplay/StdTable.vue:317
+#: src/components/StdDataDisplay/StdTable.vue:362
+#: src/components/StdDataDisplay/StdTable.vue:6
+#: src/components/StdDataDisplay/StdTable.vue:7
msgid "Export"
msgstr ""
-#: src/views/domain/DomainEdit.vue:115
-#: src/views/domain/DomainList.vue:68
+#: src/views/domain/DomainEdit.vue:121
+#: src/views/domain/DomainList.vue:73
msgid "Failed to disable %{msg}"
msgstr ""
-#: src/views/domain/DomainEdit.vue:106
-#: src/views/domain/DomainList.vue:58
+#: src/views/domain/DomainEdit.vue:112
+#: src/views/domain/DomainList.vue:63
msgid "Failed to enable %{msg}"
msgstr ""
@@ -296,6 +330,7 @@ msgstr ""
msgid "Finished"
msgstr ""
+#: src/components/StdDataEntry/components/StdPassword.vue:42
#: src/components/StdDataEntry/compontents/StdPassword.vue:42
msgid "Generate"
msgstr ""
@@ -304,15 +339,15 @@ msgstr ""
msgid "Generating private key for registering account"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:103
+#: src/views/domain/cert/IssueCert.vue:97
msgid "Getting the certificate, please wait..."
msgstr ""
-#: src/routes/index.ts:20
+#: src/routes/index.ts:21
msgid "Home"
msgstr ""
-#: src/routes/index.ts:126
+#: src/routes/index.ts:135
#: src/views/other/Install.vue:128
msgid "Install"
msgstr ""
@@ -333,19 +368,26 @@ msgstr ""
msgid "Leave blank for no change"
msgstr ""
+#: src/views/preference/Preference.vue:10
+#: src/views/preference/Preference.vue:11
+msgid "Light"
+msgstr ""
+
#: src/views/dashboard/DashBoard.vue:141
msgid "Load Averages:"
msgstr ""
-#: src/views/domain/ngx_conf/LocationEditor.vue:5
+#: src/views/domain/ngx_conf/LocationEditor.vue:15
+#: src/views/domain/ngx_conf/LocationEditor.vue:8
+#: src/views/domain/ngx_conf/LocationEditor.vue:9
msgid "Location"
msgstr ""
-#: src/views/domain/ngx_conf/LocationEditor.vue:39
+#: src/views/domain/ngx_conf/LocationEditor.vue:40
msgid "Locations"
msgstr ""
-#: src/routes/index.ts:132
+#: src/routes/index.ts:141
#: src/views/other/Login.vue:103
msgid "Login"
msgstr ""
@@ -358,20 +400,20 @@ msgstr ""
msgid "Logout successful"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:226
+#: src/views/domain/cert/IssueCert.vue:209
msgid "Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate."
msgstr ""
-#: src/routes/index.ts:68
+#: src/routes/index.ts:69
msgid "Manage Configs"
msgstr ""
-#: src/routes/index.ts:43
+#: src/routes/index.ts:44
#: src/views/domain/DomainList.vue:2
msgid "Manage Sites"
msgstr ""
-#: src/routes/index.ts:35
+#: src/routes/index.ts:36
#: src/views/user/User.vue:2
msgid "Manage Users"
msgstr ""
@@ -384,12 +426,12 @@ msgstr ""
msgid "Memory and Storage"
msgstr ""
-#: src/components/StdDataDisplay/StdCurd.vue:26
-#: src/components/StdDataDisplay/StdTable.vue:18
-#: src/components/StdDataDisplay/StdTable.vue:19
-#: src/components/StdDataDisplay/StdTable.vue:24
-#: src/components/StdDataDisplay/StdTable.vue:34
-#: src/components/StdDataDisplay/StdTable.vue:36
+#: src/components/StdDataDisplay/StdCurd.vue:25
+#: src/components/StdDataDisplay/StdTable.vue:25
+#: src/components/StdDataDisplay/StdTable.vue:26
+#: src/components/StdDataDisplay/StdTable.vue:31
+#: src/components/StdDataDisplay/StdTable.vue:44
+#: src/components/StdDataDisplay/StdTable.vue:46
msgid "Modify"
msgstr ""
@@ -398,7 +440,8 @@ msgid "Modify Config"
msgstr ""
#: src/views/config/Config.vue:12
-#: src/views/domain/DomainList.vue:14
+#: src/views/domain/DomainEdit.vue:36
+#: src/views/domain/DomainList.vue:15
msgid "Name"
msgstr ""
@@ -422,20 +465,20 @@ msgstr ""
msgid "Next"
msgstr ""
-#: src/routes/index.ts:93
+#: src/routes/index.ts:94
#: src/views/nginx_log/NginxLog.vue:2
msgid "Nginx Log"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:42
-#: src/views/domain/DomainList.vue:25
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:17
-#: src/views/domain/ngx_conf/LocationEditor.vue:11
+#: src/components/StdDataDisplay/StdTable.vue:52
+#: src/views/domain/DomainList.vue:24
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:29
+#: src/views/domain/ngx_conf/LocationEditor.vue:21
msgid "No"
msgstr ""
-#: src/routes/index.ts:138
-#: src/routes/index.ts:140
+#: src/routes/index.ts:147
+#: src/routes/index.ts:149
msgid "Not Found"
msgstr ""
@@ -443,7 +486,7 @@ msgstr ""
msgid "Not Valid Before: %{date}"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:218
+#: src/views/domain/cert/IssueCert.vue:201
msgid "Note: The server_name in the current configuration must be the domain name you need to get the certificate."
msgstr ""
@@ -452,10 +495,12 @@ msgstr ""
msgid "Obtaining certificate"
msgstr ""
-#: src/components/StdDataDisplay/StdCurd.vue:29
-#: src/components/StdDataDisplay/StdTable.vue:43
+#: src/components/StdDataDisplay/StdBatchEdit.vue:8
+#: src/components/StdDataDisplay/StdCurd.vue:28
+#: src/components/StdDataDisplay/StdTable.vue:53
+#: src/components/StdDataEntry/components/StdSelector.vue:12
#: src/components/StdDataEntry/compontents/StdSelector.vue:12
-#: src/views/domain/DomainList.vue:26
+#: src/views/domain/DomainList.vue:25
msgid "OK"
msgstr ""
@@ -476,8 +521,8 @@ msgstr ""
msgid "Password (*)"
msgstr ""
-#: src/views/domain/ngx_conf/LocationEditor.vue:24
-#: src/views/domain/ngx_conf/LocationEditor.vue:38
+#: src/views/domain/ngx_conf/LocationEditor.vue:34
+#: src/views/domain/ngx_conf/LocationEditor.vue:50
msgid "Path"
msgstr ""
@@ -495,6 +540,11 @@ msgstr ""
msgid "Please input your username!"
msgstr ""
+#: src/routes/index.ts:117
+#: src/views/preference/Preference.vue:2
+msgid "Preference"
+msgstr ""
+
#: src/language/constants.ts:12
msgid "Preparing lego configurations"
msgstr ""
@@ -528,12 +578,16 @@ msgstr ""
msgid "Reloading nginx"
msgstr ""
+#: src/components/StdDataDisplay/StdTable.vue:10
#: src/components/StdDataDisplay/StdTable.vue:15
+#: src/components/StdDataDisplay/StdTable.vue:9
msgid "Reset"
msgstr ""
#: src/views/config/ConfigEdit.vue:52
-#: src/views/domain/DomainEdit.vue:181
+#: src/views/domain/DomainEdit.vue:190
+#: src/views/preference/Preference.vue:22
+#: src/views/preference/Preference.vue:23
msgid "Save"
msgstr ""
@@ -548,16 +602,21 @@ msgstr ""
msgid "Save error %{msg}"
msgstr ""
-#: src/components/StdDataDisplay/StdCurd.vue:102
+#: src/components/StdDataDisplay/StdBatchEdit.vue:40
+msgid "Save successfully"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdCurd.vue:108
msgid "Save Successfully"
msgstr ""
#: src/views/config/ConfigEdit.vue:34
#: src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:91
+#: src/views/domain/DomainEdit.vue:97
msgid "Saved successfully"
msgstr ""
+#: src/components/StdDataEntry/components/StdSelector.vue:13
#: src/components/StdDataEntry/compontents/StdSelector.vue:13
msgid "Selector"
msgstr ""
@@ -567,14 +626,16 @@ msgstr ""
msgid "Send"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:140
-#: src/components/StdDataDisplay/StdTable.vue:298
+#: src/components/StdDataDisplay/StdBatchEdit.vue:43
+#: src/components/StdDataDisplay/StdTable.vue:168
+#: src/components/StdDataDisplay/StdTable.vue:343
+#: src/components/StdDataDisplay/StdTable.vue:463
#: src/views/config/ConfigEdit.vue:22
-#: src/views/domain/DomainEdit.vue:56
-#: src/views/domain/DomainEdit.vue:68
-#: src/views/domain/DomainEdit.vue:77
-#: src/views/domain/DomainEdit.vue:94
-#: src/views/domain/DomainList.vue:78
+#: src/views/domain/DomainEdit.vue:100
+#: src/views/domain/DomainEdit.vue:62
+#: src/views/domain/DomainEdit.vue:74
+#: src/views/domain/DomainEdit.vue:83
+#: src/views/domain/DomainList.vue:83
#: src/views/other/Install.vue:71
msgid "Server error"
msgstr ""
@@ -587,29 +648,25 @@ msgstr ""
msgid "server_name not found in directives"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:209
+#: src/views/domain/cert/IssueCert.vue:195
#: src/views/domain/DomainAdd.vue:112
msgid "server_name parameter is required"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:212
-#: src/views/domain/cert/IssueCert.vue:35
-msgid "server_name parameters more than one"
-msgstr ""
-
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:6
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:7
msgid "Single Directive"
msgstr ""
-#: src/routes/index.ts:107
+#: src/routes/index.ts:108
msgid "Site Logs"
msgstr ""
-#: src/routes/index.ts:51
+#: src/routes/index.ts:52
msgid "Sites List"
msgstr ""
-#: src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:24
msgid "Status"
msgstr ""
@@ -629,12 +686,12 @@ msgstr ""
msgid "Table"
msgstr ""
-#: src/routes/index.ts:85
+#: src/routes/index.ts:86
#: src/views/pty/Terminal.vue:2
msgid "Terminal"
msgstr ""
-#: src/views/domain/cert/IssueCert.vue:222
+#: src/views/domain/cert/IssueCert.vue:205
msgid "The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued."
msgstr ""
@@ -646,12 +703,20 @@ msgstr ""
msgid "The username or password is incorrect"
msgstr ""
+#: src/views/preference/Preference.vue:5
+msgid "Theme"
+msgstr ""
+
#: src/views/config/Config.vue:17
-#: src/views/domain/DomainList.vue:36
+#: src/views/domain/DomainList.vue:41
#: src/views/user/User.vue:37
msgid "Updated at"
msgstr ""
+#: src/components/StdDataDisplay/StdTable.vue:461
+msgid "Updated successfully"
+msgstr ""
+
#: src/views/dashboard/DashBoard.vue:137
msgid "Uptime:"
msgstr ""
@@ -688,8 +753,8 @@ msgstr ""
msgid "Writing certificate to disk"
msgstr ""
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:16
-#: src/views/domain/ngx_conf/LocationEditor.vue:10
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:28
+#: src/views/domain/ngx_conf/LocationEditor.vue:20
msgid "Yes"
msgstr ""
diff --git a/frontend/src/language/translations.json b/frontend/src/language/translations.json
index ad4315e7..9f70a014 100644
--- a/frontend/src/language/translations.json
+++ b/frontend/src/language/translations.json
@@ -1 +1 @@
-{"zh_CN":{"About":"关于","Access Logs":"访问日志","Action":"操作","Add":"添加","Add Directive Below":"在下面添加指令","Add Location":"添加 Location","Add Site":"添加站点","Advance Mode":"高级模式","Are you sure you want to delete ?":"您确定要删除吗?","Are you sure you want to remove this directive?":"您确定要删除这条指令?","Are you sure you want to remove this location?":"您确定要删除这个 Location?","Auto Refresh":"自动刷新","Auto-renewal disabled for %{name}":"成功关闭 %{name} 自动续签","Auto-renewal enabled for %{name}":"成功启用 %{name} 自动续签","Back":"返回","Back Home":"返回首页","Base information":"基本信息","Basic Mode":"基本模式","Build with":"构建基于","Cancel":"取消","Certificate has expired":"此证书已过期","Certificate is valid":"此证书有效","Certificate Status":"证书状态","Comments":"注释","Configuration Name":"配置名称","Configurations":"配置","Configure SSL":"配置 SSL","Content":"内容","CPU Status":"CPU 状态","Create Another":"再创建一个","Created at":"创建时间","Creating client facilitates communication with the CA server":"正在创建客户端用于与 CA 服务器通信","Dashboard":"仪表盘","Database (Optional, default: database)":"数据库 (可选,默认: database)","Delete":"删除","Delete ID: %{id}":"删除 ID: %{id}","Delete site: %{site_name}":"删除站点: %{site_name}","Development Mode":"开发模式","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"关闭 %{name} 自动续签失败","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁盘 IO","Domain Config Created Successfully":"域名配置文件创建成功","Edit %{n}":"编辑 %{n}","Edit Configuration":"编辑配置","Edit Site":"编辑站点","Email (*)":"邮箱 (*)","Enable auto-renewal failed for %{name}":"启用 %{name} 自动续签失败","Enable failed":"启用失败","Enable TLS":"启用 TLS","Enabled":"启用","Enabled successfully":"启用成功","Encrypt website with Let's Encrypt":"用 Let's Encrypt 对网站进行加密","Error Logs":"错误日志","Expiration Date: %{date}":"过期时间: %{date}","Export":"导出","Failed to disable %{msg}":"禁用失败 %{msg}","Failed to enable %{msg}":"启用失败 %{msg}","Failed to get certificate information":"获取证书信息失败","File Not Found":"未找到文件","Filter":"过滤","Finished":"完成","Generate":"生成","Generating private key for registering account":"正在生成私钥用于注册账户","Getting the certificate, please wait...":"正在获取证书,请稍等...","Home":"首页","Install":"安装","Install successfully":"安装成功","Intermediate Certification Authorities: %{issuer}":"中级证书颁发机构: %{issuer}","Issued certificate successfully":"证书申请成功","Leave blank for no change":"留空表示不修改","Load Averages:":"系统负载:","Location":"Location","Locations":"Locations","Login":"登录","Login successful":"登录成功","Logout successful":"登出成功","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 HTTPChallengePort (默认: 9180)","Manage Configs":"配置管理","Manage Sites":"网站管理","Manage Users":"用户管理","Memory":"内存","Memory and Storage":"内存与存储","Modify":"修改","Modify Config":"修改配置文件","Name":"名称","Network":"网络","Network Statistics":"流量统计","Network Total Receive":"下载流量","Network Total Send":"上传流量","Next":"下一步","Nginx Log":"Nginx 日志","No":"取消","Not Found":"找不到页面","Not Valid Before: %{date}":"此前无效: %{date}","Note: The server_name in the current configuration must be the domain name you need to get the certificate.":"注意:当前配置中的 server_name 必须为需要申请证书的域名。","Obtaining certificate":"正在获取证书","OK":"确定","Params":"参数","Password":"密码","Password (*)":"密码 (*)","Path":"路径","Please input your E-mail!":"请输入您的邮箱!","Please input your password!":"请输入您的密码!","Please input your username!":"请输入您的用户名!","Preparing lego configurations":"正在准备 Lego 的配置","Prohibit changing root password in demo":"禁止在演示模式下修改 root 账户的密码","Prohibit deleting the default user":"禁止删除默认用户","Project Team":"项目团队","Reads":"读","Receive":"下载","Registering user":"正在注册用户","Reloading nginx":"正在重载 Nginx","Reset":"重置","Save":"保存","Save Directive":"保存指令","Save error %{msg}":"保存错误 %{msg}","Save Successfully":"保存成功","Saved successfully":"保存成功","Selector":"选择器","Send":"上传","Server error":"服务器错误","Server Info":"服务器信息","server_name not found in directives":"未在指令集合中找到 server_name","server_name parameter is required":"必须为 server_name 指令指明参数","server_name parameters more than one":"server_name 指令包含多个参数","Single Directive":"单行指令","Site Logs":"站点列表","Sites List":"站点列表","Status":"状态","Storage":"存储","Subject Name: %{name}":"主体名称: %{name}","Table":"列表","Terminal":"终端","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。","The filename cannot contain the following characters: %{c}":"文件名不能包含以下字符: %{c}","The username or password is incorrect":"用户名或密码错误","Updated at":"修改时间","Uptime:":"运行时间:","Username":"用户名","Username (*)":"用户名 (*)","Using HTTP01 challenge provider":"使用 HTTP01 challenge provider","Warning":"警告","Writes":"写","Writing certificate private key to disk":"正在将证书私钥写入磁盘","Writing certificate to disk":"正在将证书写入磁盘","Yes":"是的","License":{"Project":"开源许可"}},"zh_TW":{"About":"關於","Action":"操作","Add Directive Below":"在下面新增指令","Add Location":"新增 Location","Add Site":"新增站點","Advance Mode":"高階模式","Are you sure you want to remove this directive?":"您確定要刪除這條指令?","Auto-renewal disabled for %{name}":"已關閉 %{name} 自動續簽","Auto-renewal enabled for %{name}":"已啟用 %{name} 自動續簽","Back":"返回","Base information":"基本訊息","Basic Mode":"基本模式","Build with":"構建基於","Cancel":"取消","Certificate has expired":"此憑證已過期","Certificate is valid":"此憑證有效","Certificate Status":"憑證狀態","Comments":"註釋","Configuration Name":"配置名稱","Configurations":"配置","Configure SSL":"配置 SSL","Content":"內容","CPU Status":"中央處理器狀態","CPU:":"中央處理器:","Create Another":"再創建一個","Created at":"建立時間","Dashboard":"儀表盤","Database (Optional, default: database)":"資料庫 (可選,預設: database)","Delete ID: %{id}":"刪除 ID: %{id}","Development Mode":"開發模式","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"關閉 %{name} 自動續簽失敗","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁碟 IO","Domain Config Created Successfully":"域名配置文件創建成功","Edit %{n}":"編輯 %{n}","Edit Configuration":"編輯配置","Edit Site":"編輯站點","Email (*)":"郵箱 (*)","Enable auto-renewal failed for %{name}":"啟用 %{name} 自動續簽失敗","Enable failed":"啟用失敗","Enable TLS":"啟用 TLS","Enabled":"啟用","Enabled successfully":"啟用成功","Encrypt website with Let's Encrypt":"用 Let's Encrypt 對網站進行加密","Expiration Date: %{date}":"過期時間: %{date}","Failed to disable %{msg}":"禁用失敗 %{msg}","Failed to enable %{msg}":"啟用失敗 %{msg}","File Not Found":"未找到檔案","Finished":"完成","Getting the certificate, please wait...":"正在獲取憑證,請稍等...","Home":"首頁","Install":"安裝","Intermediate Certification Authorities: %{issuer}":"中級憑證頒發機構: %{issuer}","Leave blank for no change":"留空表示不修改","Load Averages:":"系統負載:","Location":"Location","Locations":"Locations","Login":"登入","Login successful":"登入成功","Logout successful":"登出成功","Manage Configs":"配置管理","Manage Sites":"網站管理","Manage Users":"使用者管理","Memory":"記憶體","Memory and Storage":"記憶體和存儲","Modify Config":"修改配置","Name":"名稱","Network":"網路","Network Statistics":"網路統計","Network Total Receive":"下載流量","Network Total Send":"上傳流量","Next":"下一步","No":"取消","Not Found":"找不到頁面","Not Valid Before: %{date}":"此前無效: %{date}","OK":"確定","OS:":"作業系統:","Params":"參數","Password":"密碼","Password (*)":"密碼 (*)","Path":"路徑","Please input your E-mail!":"請輸入您的郵箱!","Please input your password!":"請輸入您的密碼!","Please input your username!":"請輸入您的使用者名稱!","Project Team":"專案團隊","Reads":"讀","Receive":"下載","Save":"儲存","Save Directive":"儲存指令","Save error %{msg}":"儲存錯誤 %{msg}","Saved successfully":"儲存成功","Send":"上傳","Server error":"伺服器錯誤","Server Info":"伺服器資訊","server_name not found in directives":"未在指令集合中找到 server_name","server_name parameter is required":"必須為 server_name 指令指明參數","server_name parameters more than one":"server_name 指令包含多個參數","Single Directive":"單行指令","Sites List":"站點列表","Status":"狀態","Storage":"儲存","Subject Name: %{name}":"主體名稱: %{name}","Swap":"交換空間","Terminal":"終端","The filename cannot contain the following characters: %{c}":"檔名不能包含以下字元: %{c}","Updated at":"修改時間","Uptime:":"執行時間:","Username":"使用者名稱","Username (*)":"使用者名稱 (*)","Warning":"警告","Writes":"寫","Yes":"是的","License":{"Project":"開源軟體授權條款"}},"en":{"About":"About","Action":"Action","Add Directive Below":"Add Directive Below","Add Location":"Add Location","Add Site":"Add Site","Advance Mode":"Advance Mode","Are you sure you want to remove this directive?":"Are you sure you want to remove this directive?","Auto-renewal disabled for %{name}":"Auto-renewal disabled for %{name}","Auto-renewal enabled for %{name}":"Auto-renewal enabled for %{name}","Back":"Back","Base information":"Base information","Basic Mode":"Basic Mode","Build with":"Build with","Cancel":"Cancel","Certificate has expired":"Certificate has expired","Certificate is valid":"Certificate is valid","Certificate Status":"Certificate Status","Comments":"Comments","Configuration Name":"Configuration Name","Configurations":"Configurations","Configure SSL":"Configure SSL","Content":"Content","CPU Status":"CPU Status","CPU:":"CPU:","Create Another":"Create Another","Created at":"Created at","Dashboard":"Dashboard","Database (Optional, default: database)":"Database (Optional, default: database)","Development Mode":"Development Mode","Directive":"Directive","Directives":"Directives","Disable auto-renewal failed for %{name}":"Disable auto-renewal failed for %{name}","Disabled":"Disabled","Disabled successfully":"Disabled successfully","Disk IO":"Disk IO","Domain Config Created Successfully":"Domain Config Created Successfully","Edit %{n}":"Edit %{n}","Edit Configuration":"Edit Configuration","Edit Site":"Edit Site","Email (*)":"Email (*)","Enable auto-renewal failed for %{name}":"Enable auto-renewal failed for %{name}","Enable failed":"Enable failed","Enable TLS":"Enable TLS","Enabled":"Enabled","Enabled successfully":"Enabled successfully","Encrypt website with Let's Encrypt":"Encrypt website with Let's Encrypt","Expiration Date: %{date}":"Expiration Date: %{date}","Failed to disable %{msg}":"Failed to disable %{msg}","Failed to enable %{msg}":"Failed to enable %{msg}","File Not Found":"File Not Found","Finished":"Finished","Getting the certificate, please wait...":"Getting the certificate, please wait...","Home":"Home","Install":"Install","Intermediate Certification Authorities: %{issuer}":"Intermediate Certification Authorities: %{issuer}","Leave blank for no change":"Leave blank for no change","Load Averages:":"Load Averages:","Location":"Location","Locations":"Locations","Login":"Login","Login successful":"Login successful","Logout successful":"Logout successful","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.","Manage Configs":"Manage Configs","Manage Sites":"Manage Sites","Manage Users":"Manage Users","Memory":"Memory","Memory and Storage":"Memory and Storage","Modify Config":"Modify Config","Name":"Name","Network":"Network","Network Statistics":"Network Statistics","Network Total Receive":"Network Total Receive","Network Total Send":"Network Total Send","Next":"Next","No":"No","Not Found":"Not Found","Not Valid Before: %{date}":"Not Valid Before: %{date}","Note: The server_name in the current configuration must be the domain name you need to get the certificate.":"Note: The server_name in the current configuration must be the domain name you need to get the certificate.","OS:":"OS:","Params":"Params","Password":"Password","Password (*)":"Password (*)","Path":"Path","Please input your E-mail!":"Please input your E-mail!","Please input your password!":"Please input your password!","Please input your username!":"Please input your username!","Project Team":"Project Team","Reads":"Reads","Receive":"Receive","Save":"Save","Save Directive":"Save Directive","Save error %{msg}":"Save error %{msg}","Saved successfully":"Saved successfully","Send":"Send","Server error":"Server error","Server Info":"Server Info","server_name not found in directives":"server_name not found in directives","server_name parameter is required":"server_name parameter is required","server_name parameters more than one":"server_name parameters more than one","Single Directive":"Single Directive","Sites List":"Sites List","Status":"Status","Storage":"Storage","Subject Name: %{name}":"Subject Name: %{name}","Swap":"Swap","Terminal":"Terminal","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.","The filename cannot contain the following characters: %{c}":"The filename cannot contain the following characters: %{c}","Updated at":"Updated at","Uptime:":"Uptime:","Username":"Username","Username (*)":"Username (*)","Warning":"Warning","Writes":"Writes","Yes":"Yes","License":{"Project":"License"}}}
\ No newline at end of file
+{"zh_TW":{"About":"關於","Access Logs":"訪問日誌","Action":"操作","Add":"新增","Add Directive Below":"在下面新增指令","Add Location":"新增 Location","Add Site":"新增站點","Advance Mode":"高階模式","Are you sure you want to delete?":"你確定你要刪除?","Are you sure you want to remove this directive?":"您確定要刪除這條指令?","Are you sure you want to remove this location?":"您確定要刪除此 Location 嗎?","Auto":"自動","Auto Refresh":"自動刷新","Auto-renewal disabled for %{name}":"已關閉 %{name} 自動續簽","Auto-renewal enabled for %{name}":"已啟用 %{name} 自動續簽","Back":"返回","Back Home":"回到首頁","Base information":"基本訊息","Basic Mode":"基本模式","Batch Modify":"批量修改","Build with":"構建基於","Cancel":"取消","Certificate has expired":"此憑證已過期","Certificate is valid":"此憑證有效","Certificate Status":"憑證狀態","Comments":"註釋","Configuration Name":"配置名稱","Configurations":"配置","Configure SSL":"配置 SSL","Content":"內容","CPU Status":"中央處理器狀態","CPU:":"中央處理器:","Create Another":"再創建一個","Created at":"建立時間","Creating client facilitates communication with the CA server":"創建客戶端方便與CA服務器通信","Dark":"深色","Dashboard":"儀表盤","Database (Optional, default: database)":"資料庫 (可選,預設: database)","Delete":"刪除","Delete ID: %{id}":"刪除 ID: %{id}","Delete site: %{site_name}":"刪除站點:%{site_name}","Development Mode":"開發模式","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"關閉 %{name} 自動續簽失敗","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁碟 IO","Domain Config Created Successfully":"域名配置文件創建成功","Edit %{n}":"編輯 %{n}","Edit Configuration":"編輯配置","Edit Site":"編輯站點","Email (*)":"郵箱 (*)","Enable auto-renewal failed for %{name}":"啟用 %{name} 自動續簽失敗","Enable failed":"啟用失敗","Enable TLS":"啟用 TLS","Enabled":"啟用","Enabled successfully":"啟用成功","Encrypt website with Let's Encrypt":"用 Let's Encrypt 對網站進行加密","Error Logs":"錯誤日志","Expiration Date: %{date}":"過期時間: %{date}","Export":"導出","Failed to disable %{msg}":"禁用失敗 %{msg}","Failed to enable %{msg}":"啟用失敗 %{msg}","Failed to get certificate information":"獲取證書信息失敗","File Not Found":"未找到檔案","Filter":"篩選","Finished":"完成","Generate":"生成","Generating private key for registering account":"生成註冊賬號私鑰","Getting the certificate, please wait...":"正在獲取憑證,請稍等...","Home":"首頁","Install":"安裝","Install successfully":"安裝成功","Intermediate Certification Authorities: %{issuer}":"中級憑證頒發機構: %{issuer}","Issued certificate successfully":"頒發證書成功","Leave blank for no change":"留空表示不修改","Light":"淺色","Load Averages:":"系統負載:","Location":"Location","Locations":"Locations","Login":"登入","Login successful":"登入成功","Logout successful":"登出成功","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"在獲取證書前,請確保配置檔案中已將 .well-known 目錄反向代理到 HTTPChallengePort (預設: 9180)","Manage Configs":"配置管理","Manage Sites":"網站管理","Manage Users":"使用者管理","Memory":"記憶體","Memory and Storage":"記憶體和存儲","Modify":"修改","Modify Config":"修改配置","Name":"名稱","Network":"網路","Network Statistics":"網路統計","Network Total Receive":"下載流量","Network Total Send":"上傳流量","Next":"下一步","Nginx Log":"Nginx 日誌","No":"取消","Not Found":"找不到頁面","Not Valid Before: %{date}":"此前無效: %{date}","Note: The server_name in the current configuration must be the domain name you need to get the certificate.":"注意:當前配置中的 server_name 必須為需要申請證書的域名。","Obtaining certificate":"正在獲取證書,請稍等...","OK":"確定","OS:":"作業系統:","Params":"參數","Password":"密碼","Password (*)":"密碼 (*)","Path":"路徑","Please input your E-mail!":"請輸入您的郵箱!","Please input your password!":"請輸入您的密碼!","Please input your username!":"請輸入您的使用者名稱!","Preference":"設定","Preparing lego configurations":"準備 Lego 配置","Prohibit changing root password in demo":"禁止在demo中修改root密碼","Prohibit deleting the default user":"禁止刪除默認用戶","Project Team":"專案團隊","Reads":"讀","Receive":"下載","Registering user":"註冊用戶","Reloading nginx":"重载 Nginx","Reset":"重設","Save":"儲存","Save Directive":"儲存指令","Save error %{msg}":"儲存錯誤 %{msg}","Save successfully":"保存成功","Save Successfully":"保存成功","Saved successfully":"儲存成功","Selector":"選擇器","Send":"上傳","Server error":"伺服器錯誤","Server Info":"伺服器資訊","server_name not found in directives":"未在指令集合中找到 server_name","server_name parameter is required":"必須為 server_name 指令指明參數","Single Directive":"單行指令","Site Logs":"網站日誌","Sites List":"站點列表","Status":"狀態","Storage":"儲存","Subject Name: %{name}":"主體名稱: %{name}","Swap":"交換空間","Table":"表格","Terminal":"終端","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續簽。
如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。","The filename cannot contain the following characters: %{c}":"檔名不能包含以下字元: %{c}","The username or password is incorrect":"用戶名或密碼不正確","Theme":"外觀樣式","Updated at":"修改時間","Updated successfully":"已成功更新","Uptime:":"執行時間:","Username":"使用者名稱","Username (*)":"使用者名稱 (*)","Using HTTP01 challenge provider":"使用 HTTP01 挑戰提供者","Warning":"警告","Writes":"寫","Writing certificate private key to disk":"將證書私鑰寫入磁盤","Writing certificate to disk":"將證書寫入磁盤","Yes":"是的","License":{"Project":"開源軟體授權條款"}},"en":{"About":"About","Action":"Action","Add Directive Below":"Add Directive Below","Add Location":"Add Location","Add Site":"Add Site","Advance Mode":"Advance Mode","Are you sure you want to remove this directive?":"Are you sure you want to remove this directive?","Auto-renewal disabled for %{name}":"Auto-renewal disabled for %{name}","Auto-renewal enabled for %{name}":"Auto-renewal enabled for %{name}","Back":"Back","Base information":"Base information","Basic Mode":"Basic Mode","Build with":"Build with","Cancel":"Cancel","Certificate has expired":"Certificate has expired","Certificate is valid":"Certificate is valid","Certificate Status":"Certificate Status","Comments":"Comments","Configuration Name":"Configuration Name","Configurations":"Configurations","Configure SSL":"Configure SSL","Content":"Content","CPU Status":"CPU Status","CPU:":"CPU:","Create Another":"Create Another","Created at":"Created at","Dashboard":"Dashboard","Database (Optional, default: database)":"Database (Optional, default: database)","Development Mode":"Development Mode","Directive":"Directive","Directives":"Directives","Disable auto-renewal failed for %{name}":"Disable auto-renewal failed for %{name}","Disabled":"Disabled","Disabled successfully":"Disabled successfully","Disk IO":"Disk IO","Domain Config Created Successfully":"Domain Config Created Successfully","Edit %{n}":"Edit %{n}","Edit Configuration":"Edit Configuration","Edit Site":"Edit Site","Email (*)":"Email (*)","Enable auto-renewal failed for %{name}":"Enable auto-renewal failed for %{name}","Enable failed":"Enable failed","Enable TLS":"Enable TLS","Enabled":"Enabled","Enabled successfully":"Enabled successfully","Encrypt website with Let's Encrypt":"Encrypt website with Let's Encrypt","Expiration Date: %{date}":"Expiration Date: %{date}","Failed to disable %{msg}":"Failed to disable %{msg}","Failed to enable %{msg}":"Failed to enable %{msg}","File Not Found":"File Not Found","Finished":"Finished","Getting the certificate, please wait...":"Getting the certificate, please wait...","Home":"Home","Install":"Install","Intermediate Certification Authorities: %{issuer}":"Intermediate Certification Authorities: %{issuer}","Leave blank for no change":"Leave blank for no change","Load Averages:":"Load Averages:","Location":"Location","Locations":"Locations","Login":"Login","Login successful":"Login successful","Logout successful":"Logout successful","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.","Manage Configs":"Manage Configs","Manage Sites":"Manage Sites","Manage Users":"Manage Users","Memory":"Memory","Memory and Storage":"Memory and Storage","Modify Config":"Modify Config","Name":"Name","Network":"Network","Network Statistics":"Network Statistics","Network Total Receive":"Network Total Receive","Network Total Send":"Network Total Send","Next":"Next","No":"No","Not Found":"Not Found","Not Valid Before: %{date}":"Not Valid Before: %{date}","Note: The server_name in the current configuration must be the domain name you need to get the certificate.":"Note: The server_name in the current configuration must be the domain name you need to get the certificate.","OS:":"OS:","Params":"Params","Password":"Password","Password (*)":"Password (*)","Path":"Path","Please input your E-mail!":"Please input your E-mail!","Please input your password!":"Please input your password!","Please input your username!":"Please input your username!","Project Team":"Project Team","Reads":"Reads","Receive":"Receive","Save":"Save","Save Directive":"Save Directive","Save error %{msg}":"Save error %{msg}","Saved successfully":"Saved successfully","Send":"Send","Server error":"Server error","Server Info":"Server Info","server_name not found in directives":"server_name not found in directives","server_name parameter is required":"server_name parameter is required","Single Directive":"Single Directive","Sites List":"Sites List","Status":"Status","Storage":"Storage","Subject Name: %{name}":"Subject Name: %{name}","Swap":"Swap","Terminal":"Terminal","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.","The filename cannot contain the following characters: %{c}":"The filename cannot contain the following characters: %{c}","Updated at":"Updated at","Uptime:":"Uptime:","Username":"Username","Username (*)":"Username (*)","Warning":"Warning","Writes":"Writes","Yes":"Yes","License":{"Project":"License"}},"zh_CN":{"About":"关于","Access Logs":"访问日志","Action":"操作","Add":"添加","Add Directive Below":"在下面添加指令","Add Location":"添加 Location","Add Site":"添加站点","Advance Mode":"高级模式","Are you sure you want to delete?":"您确定要删除吗?","Are you sure you want to remove this directive?":"您确定要删除这条指令?","Are you sure you want to remove this location?":"您确定要删除这个 Location?","Auto":"自动","Auto Refresh":"自动刷新","Auto-renewal disabled for %{name}":"成功关闭 %{name} 自动续签","Auto-renewal enabled for %{name}":"成功启用 %{name} 自动续签","Back":"返回","Back Home":"返回首页","Base information":"基本信息","Basic Mode":"基本模式","Batch Modify":"批量修改","Build with":"构建基于","Cancel":"取消","Certificate has expired":"此证书已过期","Certificate is valid":"此证书有效","Certificate Status":"证书状态","Comments":"注释","Configuration Name":"配置名称","Configurations":"配置","Configure SSL":"配置 SSL","Content":"内容","CPU Status":"CPU 状态","CPU:":"CPU:","Create Another":"再创建一个","Created at":"创建时间","Creating client facilitates communication with the CA server":"正在创建客户端用于与 CA 服务器通信","Dark":"深色","Dashboard":"仪表盘","Database (Optional, default: database)":"数据库 (可选,默认: database)","Delete":"删除","Delete ID: %{id}":"删除 ID: %{id}","Delete site: %{site_name}":"删除站点: %{site_name}","Development Mode":"开发模式","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"关闭 %{name} 自动续签失败","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁盘 IO","Domain Config Created Successfully":"域名配置文件创建成功","Edit %{n}":"编辑 %{n}","Edit Configuration":"编辑配置","Edit Site":"编辑站点","Email (*)":"邮箱 (*)","Enable auto-renewal failed for %{name}":"启用 %{name} 自动续签失败","Enable failed":"启用失败","Enable TLS":"启用 TLS","Enabled":"启用","Enabled successfully":"启用成功","Encrypt website with Let's Encrypt":"用 Let's Encrypt 对网站进行加密","Error Logs":"错误日志","Expiration Date: %{date}":"过期时间: %{date}","Export":"导出","Failed to disable %{msg}":"禁用失败 %{msg}","Failed to enable %{msg}":"启用失败 %{msg}","Failed to get certificate information":"获取证书信息失败","File Not Found":"未找到文件","Filter":"过滤","Finished":"完成","Generate":"生成","Generating private key for registering account":"正在生成私钥用于注册账户","Getting the certificate, please wait...":"正在获取证书,请稍等...","Home":"首页","Install":"安装","Install successfully":"安装成功","Intermediate Certification Authorities: %{issuer}":"中级证书颁发机构: %{issuer}","Issued certificate successfully":"证书申请成功","Leave blank for no change":"留空表示不修改","Light":"浅色","Load Averages:":"系统负载:","Location":"Location","Locations":"Locations","Login":"登录","Login successful":"登录成功","Logout successful":"登出成功","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 HTTPChallengePort (默认: 9180)","Manage Configs":"配置管理","Manage Sites":"网站管理","Manage Users":"用户管理","Memory":"内存","Memory and Storage":"内存与存储","Modify":"修改","Modify Config":"修改配置文件","Name":"名称","Network":"网络","Network Statistics":"流量统计","Network Total Receive":"下载流量","Network Total Send":"上传流量","Next":"下一步","Nginx Log":"Nginx 日志","No":"取消","Not Found":"找不到页面","Not Valid Before: %{date}":"此前无效: %{date}","Note: The server_name in the current configuration must be the domain name you need to get the certificate.":"注意:当前配置中的 server_name 必须为需要申请证书的域名。","Obtaining certificate":"正在获取证书","OK":"确定","OS:":"OS:","Params":"参数","Password":"密码","Password (*)":"密码 (*)","Path":"路径","Please input your E-mail!":"请输入您的邮箱!","Please input your password!":"请输入您的密码!","Please input your username!":"请输入您的用户名!","Preference":"偏好设置","Preparing lego configurations":"正在准备 Lego 的配置","Prohibit changing root password in demo":"禁止在演示模式下修改 root 账户的密码","Prohibit deleting the default user":"禁止删除默认用户","Project Team":"项目团队","Reads":"读","Receive":"下载","Registering user":"正在注册用户","Reloading nginx":"正在重载 Nginx","Reset":"重置","Save":"保存","Save Directive":"保存指令","Save error %{msg}":"保存错误 %{msg}","Save successfully":"保存成功","Save Successfully":"保存成功","Saved successfully":"保存成功","Selector":"选择器","Send":"上传","Server error":"服务器错误","Server Info":"服务器信息","server_name not found in directives":"未在指令集合中找到 server_name","server_name parameter is required":"必须为 server_name 指令指明参数","Single Directive":"单行指令","Site Logs":"站点列表","Sites List":"站点列表","Status":"状态","Storage":"存储","Subject Name: %{name}":"主体名称: %{name}","Swap":"Swap","Table":"列表","Terminal":"终端","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。","The filename cannot contain the following characters: %{c}":"文件名不能包含以下字符: %{c}","The username or password is incorrect":"用户名或密码错误","Theme":"主题","Updated at":"修改时间","Updated successfully":"更新成功","Uptime:":"运行时间:","Username":"用户名","Username (*)":"用户名 (*)","Using HTTP01 challenge provider":"使用 HTTP01 challenge provider","Warning":"警告","Writes":"写","Writing certificate private key to disk":"正在将证书私钥写入磁盘","Writing certificate to disk":"正在将证书写入磁盘","Yes":"是的","License":{"Project":"开源许可"}}}
\ No newline at end of file
diff --git a/frontend/src/language/zh_CN/app.mo b/frontend/src/language/zh_CN/app.mo
index 096d9f84..214f2996 100644
Binary files a/frontend/src/language/zh_CN/app.mo and b/frontend/src/language/zh_CN/app.mo differ
diff --git a/frontend/src/language/zh_CN/app.po b/frontend/src/language/zh_CN/app.po
index 827ed706..b33e08a6 100644
--- a/frontend/src/language/zh_CN/app.po
+++ b/frontend/src/language/zh_CN/app.po
@@ -10,23 +10,23 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: easygettext\n"
-"X-Generator: Poedit 3.1.1\n"
+"X-Generator: Poedit 3.2.2\n"
-#: src/routes/index.ts:116
+#: src/routes/index.ts:125
msgid "About"
msgstr "关于"
-#: src/routes/index.ts:99 src/views/domain/ngx_conf/LogEntry.vue:64
+#: src/routes/index.ts:100 src/views/domain/ngx_conf/LogEntry.vue:64
msgid "Access Logs"
msgstr "访问日志"
-#: src/views/config/Config.vue:24 src/views/domain/DomainList.vue:42
+#: src/views/config/Config.vue:24 src/views/domain/DomainList.vue:47
#: src/views/user/User.vue:43
msgid "Action"
msgstr "操作"
-#: src/components/StdDataDisplay/StdCurd.vue:134
-#: src/components/StdDataDisplay/StdCurd.vue:26
+#: src/components/StdDataDisplay/StdCurd.vue:145
+#: src/components/StdDataDisplay/StdCurd.vue:25
msgid "Add"
msgstr "添加"
@@ -36,45 +36,51 @@ msgstr "添加"
msgid "Add Directive Below"
msgstr "在下面添加指令"
-#: src/views/domain/ngx_conf/LocationEditor.vue:33
-#: src/views/domain/ngx_conf/LocationEditor.vue:48
+#: src/views/domain/ngx_conf/LocationEditor.vue:45
+#: src/views/domain/ngx_conf/LocationEditor.vue:50
+#: src/views/domain/ngx_conf/LocationEditor.vue:51
+#: src/views/domain/ngx_conf/LocationEditor.vue:60
msgid "Add Location"
msgstr "添加 Location"
-#: src/routes/index.ts:55 src/views/domain/DomainAdd.vue:2
+#: src/routes/index.ts:56 src/views/domain/DomainAdd.vue:2
msgid "Add Site"
msgstr "添加站点"
-#: src/views/domain/DomainEdit.vue:19
+#: src/views/domain/DomainEdit.vue:18 src/views/domain/DomainEdit.vue:19
msgid "Advance Mode"
msgstr "高级模式"
-#: src/components/StdDataDisplay/StdTable.vue:44
-#: src/views/domain/DomainList.vue:27
-msgid "Are you sure you want to delete ?"
+#: src/components/StdDataDisplay/StdTable.vue:54
+#: src/views/domain/DomainList.vue:26
+msgid "Are you sure you want to delete?"
msgstr "您确定要删除吗?"
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:15
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:27
msgid "Are you sure you want to remove this directive?"
msgstr "您确定要删除这条指令?"
-#: src/views/domain/ngx_conf/LocationEditor.vue:9
+#: src/views/domain/ngx_conf/LocationEditor.vue:19
msgid "Are you sure you want to remove this location?"
msgstr "您确定要删除这个 Location?"
+#: src/views/preference/Preference.vue:7 src/views/preference/Preference.vue:8
+msgid "Auto"
+msgstr "自动"
+
#: src/views/nginx_log/NginxLog.vue:4
msgid "Auto Refresh"
msgstr "自动刷新"
-#: src/views/domain/cert/IssueCert.vue:78
+#: src/views/domain/cert/IssueCert.vue:72
msgid "Auto-renewal disabled for %{name}"
msgstr "成功关闭 %{name} 自动续签"
-#: src/views/domain/cert/IssueCert.vue:72
+#: src/views/domain/cert/IssueCert.vue:66
msgid "Auto-renewal enabled for %{name}"
msgstr "成功启用 %{name} 自动续签"
-#: src/views/domain/DomainEdit.vue:178 src/views/nginx_log/NginxLog.vue:172
+#: src/views/domain/DomainEdit.vue:187 src/views/nginx_log/NginxLog.vue:173
msgid "Back"
msgstr "返回"
@@ -86,15 +92,24 @@ msgstr "返回首页"
msgid "Base information"
msgstr "基本信息"
-#: src/views/domain/DomainEdit.vue:22
+#: src/views/domain/DomainEdit.vue:21 src/views/domain/DomainEdit.vue:22
msgid "Basic Mode"
msgstr "基本模式"
+#: src/components/StdDataDisplay/StdBatchEdit.vue:5
+#: src/components/StdDataDisplay/StdTable.vue:12
+#: src/components/StdDataDisplay/StdTable.vue:13
+#: src/components/StdDataDisplay/StdTable.vue:18
+msgid "Batch Modify"
+msgstr "批量修改"
+
#: src/views/other/About.vue:21
msgid "Build with"
msgstr "构建基于"
-#: src/components/StdDataDisplay/StdCurd.vue:28
+#: src/components/StdDataDisplay/StdBatchEdit.vue:7
+#: src/components/StdDataDisplay/StdCurd.vue:27
+#: src/components/StdDataEntry/components/StdSelector.vue:11
#: src/components/StdDataEntry/compontents/StdSelector.vue:11
#: src/views/config/ConfigEdit.vue:49
msgid "Cancel"
@@ -112,9 +127,9 @@ msgstr "此证书有效"
msgid "Certificate Status"
msgstr "证书状态"
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:29
-#: src/views/domain/ngx_conf/LocationEditor.vue:21
-#: src/views/domain/ngx_conf/LocationEditor.vue:35
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:41
+#: src/views/domain/ngx_conf/LocationEditor.vue:31
+#: src/views/domain/ngx_conf/LocationEditor.vue:47
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:175
msgid "Comments"
msgstr "注释"
@@ -131,8 +146,8 @@ msgstr "配置"
msgid "Configure SSL"
msgstr "配置 SSL"
-#: src/views/domain/ngx_conf/LocationEditor.vue:27
-#: src/views/domain/ngx_conf/LocationEditor.vue:41
+#: src/views/domain/ngx_conf/LocationEditor.vue:37
+#: src/views/domain/ngx_conf/LocationEditor.vue:53
msgid "Content"
msgstr "内容"
@@ -142,7 +157,7 @@ msgstr "CPU 状态"
#: src/views/dashboard/DashBoard.vue:153
msgid "CPU:"
-msgstr ""
+msgstr "CPU:"
#: src/views/domain/DomainAdd.vue:150
msgid "Create Another"
@@ -156,7 +171,12 @@ msgstr "创建时间"
msgid "Creating client facilitates communication with the CA server"
msgstr "正在创建客户端用于与 CA 服务器通信"
-#: src/routes/index.ts:27
+#: src/views/preference/Preference.vue:13
+#: src/views/preference/Preference.vue:14
+msgid "Dark"
+msgstr "深色"
+
+#: src/routes/index.ts:28
msgid "Dashboard"
msgstr "仪表盘"
@@ -164,16 +184,16 @@ msgstr "仪表盘"
msgid "Database (Optional, default: database)"
msgstr "数据库 (可选,默认: database)"
-#: src/components/StdDataDisplay/StdTable.vue:366
-#: src/views/domain/DomainList.vue:111
+#: src/components/StdDataDisplay/StdTable.vue:527
+#: src/views/domain/DomainList.vue:115
msgid "Delete"
msgstr "删除"
-#: src/components/StdDataDisplay/StdTable.vue:120
+#: src/components/StdDataDisplay/StdTable.vue:132
msgid "Delete ID: %{id}"
msgstr "删除 ID: %{id}"
-#: src/views/domain/DomainList.vue:76
+#: src/views/domain/DomainList.vue:81
msgid "Delete site: %{site_name}"
msgstr "删除站点: %{site_name}"
@@ -185,20 +205,23 @@ msgstr "开发模式"
msgid "Directive"
msgstr "指令"
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:1
#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:2
msgid "Directives"
msgstr "指令"
-#: src/views/domain/cert/IssueCert.vue:80
+#: src/views/domain/cert/IssueCert.vue:74
msgid "Disable auto-renewal failed for %{name}"
msgstr "关闭 %{name} 自动续签失败"
-#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainList.vue:17
-#: src/views/domain/DomainList.vue:29
+#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainEdit.vue:9
+#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:34
+#: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8
+#: src/views/domain/DomainList.vue:9
msgid "Disabled"
msgstr "禁用"
-#: src/views/domain/DomainEdit.vue:112 src/views/domain/DomainList.vue:64
+#: src/views/domain/DomainEdit.vue:118 src/views/domain/DomainList.vue:69
msgid "Disabled successfully"
msgstr "禁用成功"
@@ -210,15 +233,15 @@ msgstr "磁盘 IO"
msgid "Domain Config Created Successfully"
msgstr "域名配置文件创建成功"
-#: src/views/domain/DomainEdit.vue:5
+#: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5
msgid "Edit %{n}"
msgstr "编辑 %{n}"
-#: src/routes/index.ts:77 src/views/config/ConfigEdit.vue:2
+#: src/routes/index.ts:78 src/views/config/ConfigEdit.vue:2
msgid "Edit Configuration"
msgstr "编辑配置"
-#: src/routes/index.ts:59
+#: src/routes/index.ts:60
msgid "Edit Site"
msgstr "编辑站点"
@@ -226,7 +249,7 @@ msgstr "编辑站点"
msgid "Email (*)"
msgstr "邮箱 (*)"
-#: src/views/domain/cert/IssueCert.vue:74
+#: src/views/domain/cert/IssueCert.vue:68
msgid "Enable auto-renewal failed for %{name}"
msgstr "启用 %{name} 自动续签失败"
@@ -238,14 +261,15 @@ msgstr "启用失败"
msgid "Enable TLS"
msgstr "启用 TLS"
-#: src/views/domain/DomainEdit.vue:33 src/views/domain/DomainEdit.vue:7
-#: src/views/domain/DomainList.vue:12 src/views/domain/DomainList.vue:20
-#: src/views/domain/DomainList.vue:26
+#: src/views/domain/DomainEdit.vue:33 src/views/domain/DomainEdit.vue:6
+#: src/views/domain/DomainEdit.vue:7 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"
msgstr "启用"
-#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:103
-#: src/views/domain/DomainList.vue:54
+#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:109
+#: src/views/domain/DomainList.vue:59
msgid "Enabled successfully"
msgstr "启用成功"
@@ -253,7 +277,7 @@ msgstr "启用成功"
msgid "Encrypt website with Let's Encrypt"
msgstr "用 Let's Encrypt 对网站进行加密"
-#: src/routes/index.ts:103 src/views/domain/ngx_conf/LogEntry.vue:68
+#: src/routes/index.ts:104 src/views/domain/ngx_conf/LogEntry.vue:68
msgid "Error Logs"
msgstr "错误日志"
@@ -262,15 +286,17 @@ msgid "Expiration Date: %{date}"
msgstr "过期时间: %{date}"
#: src/components/StdDataDisplay/StdTable.vue:12
-#: src/components/StdDataDisplay/StdTable.vue:317
+#: src/components/StdDataDisplay/StdTable.vue:362
+#: src/components/StdDataDisplay/StdTable.vue:6
+#: src/components/StdDataDisplay/StdTable.vue:7
msgid "Export"
msgstr "导出"
-#: src/views/domain/DomainEdit.vue:115 src/views/domain/DomainList.vue:68
+#: src/views/domain/DomainEdit.vue:121 src/views/domain/DomainList.vue:73
msgid "Failed to disable %{msg}"
msgstr "禁用失败 %{msg}"
-#: src/views/domain/DomainEdit.vue:106 src/views/domain/DomainList.vue:58
+#: src/views/domain/DomainEdit.vue:112 src/views/domain/DomainList.vue:63
msgid "Failed to enable %{msg}"
msgstr "启用失败 %{msg}"
@@ -290,6 +316,7 @@ msgstr "过滤"
msgid "Finished"
msgstr "完成"
+#: src/components/StdDataEntry/components/StdPassword.vue:42
#: src/components/StdDataEntry/compontents/StdPassword.vue:42
msgid "Generate"
msgstr "生成"
@@ -298,15 +325,15 @@ msgstr "生成"
msgid "Generating private key for registering account"
msgstr "正在生成私钥用于注册账户"
-#: src/views/domain/cert/IssueCert.vue:103
+#: src/views/domain/cert/IssueCert.vue:97
msgid "Getting the certificate, please wait..."
msgstr "正在获取证书,请稍等..."
-#: src/routes/index.ts:20
+#: src/routes/index.ts:21
msgid "Home"
msgstr "首页"
-#: src/routes/index.ts:126 src/views/other/Install.vue:128
+#: src/routes/index.ts:135 src/views/other/Install.vue:128
msgid "Install"
msgstr "安装"
@@ -326,19 +353,26 @@ msgstr "证书申请成功"
msgid "Leave blank for no change"
msgstr "留空表示不修改"
+#: src/views/preference/Preference.vue:10
+#: src/views/preference/Preference.vue:11
+msgid "Light"
+msgstr "浅色"
+
#: src/views/dashboard/DashBoard.vue:141
msgid "Load Averages:"
msgstr "系统负载:"
-#: src/views/domain/ngx_conf/LocationEditor.vue:5
+#: src/views/domain/ngx_conf/LocationEditor.vue:15
+#: src/views/domain/ngx_conf/LocationEditor.vue:8
+#: src/views/domain/ngx_conf/LocationEditor.vue:9
msgid "Location"
msgstr "Location"
-#: src/views/domain/ngx_conf/LocationEditor.vue:39
+#: src/views/domain/ngx_conf/LocationEditor.vue:40
msgid "Locations"
msgstr "Locations"
-#: src/routes/index.ts:132 src/views/other/Login.vue:103
+#: src/routes/index.ts:141 src/views/other/Login.vue:103
msgid "Login"
msgstr "登录"
@@ -350,7 +384,7 @@ msgstr "登录成功"
msgid "Logout successful"
msgstr "登出成功"
-#: src/views/domain/cert/IssueCert.vue:226
+#: src/views/domain/cert/IssueCert.vue:209
msgid ""
"Make sure you have configured a reverse proxy for .well-known directory to "
"HTTPChallengePort (default: 9180) before getting the certificate."
@@ -358,15 +392,15 @@ msgstr ""
"在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 "
"HTTPChallengePort (默认: 9180)"
-#: src/routes/index.ts:68
+#: src/routes/index.ts:69
msgid "Manage Configs"
msgstr "配置管理"
-#: src/routes/index.ts:43 src/views/domain/DomainList.vue:2
+#: src/routes/index.ts:44 src/views/domain/DomainList.vue:2
msgid "Manage Sites"
msgstr "网站管理"
-#: src/routes/index.ts:35 src/views/user/User.vue:2
+#: src/routes/index.ts:36 src/views/user/User.vue:2
msgid "Manage Users"
msgstr "用户管理"
@@ -378,12 +412,12 @@ msgstr "内存"
msgid "Memory and Storage"
msgstr "内存与存储"
-#: src/components/StdDataDisplay/StdCurd.vue:26
-#: src/components/StdDataDisplay/StdTable.vue:18
-#: src/components/StdDataDisplay/StdTable.vue:19
-#: src/components/StdDataDisplay/StdTable.vue:24
-#: src/components/StdDataDisplay/StdTable.vue:34
-#: src/components/StdDataDisplay/StdTable.vue:36
+#: src/components/StdDataDisplay/StdCurd.vue:25
+#: src/components/StdDataDisplay/StdTable.vue:25
+#: src/components/StdDataDisplay/StdTable.vue:26
+#: src/components/StdDataDisplay/StdTable.vue:31
+#: src/components/StdDataDisplay/StdTable.vue:44
+#: src/components/StdDataDisplay/StdTable.vue:46
msgid "Modify"
msgstr "修改"
@@ -391,7 +425,8 @@ msgstr "修改"
msgid "Modify Config"
msgstr "修改配置文件"
-#: src/views/config/Config.vue:12 src/views/domain/DomainList.vue:14
+#: src/views/config/Config.vue:12 src/views/domain/DomainEdit.vue:36
+#: src/views/domain/DomainList.vue:15
msgid "Name"
msgstr "名称"
@@ -415,18 +450,18 @@ msgstr "上传流量"
msgid "Next"
msgstr "下一步"
-#: src/routes/index.ts:93 src/views/nginx_log/NginxLog.vue:2
+#: src/routes/index.ts:94 src/views/nginx_log/NginxLog.vue:2
msgid "Nginx Log"
msgstr "Nginx 日志"
-#: src/components/StdDataDisplay/StdTable.vue:42
-#: src/views/domain/DomainList.vue:25
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:17
-#: src/views/domain/ngx_conf/LocationEditor.vue:11
+#: src/components/StdDataDisplay/StdTable.vue:52
+#: src/views/domain/DomainList.vue:24
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:29
+#: src/views/domain/ngx_conf/LocationEditor.vue:21
msgid "No"
msgstr "取消"
-#: src/routes/index.ts:138 src/routes/index.ts:140
+#: src/routes/index.ts:147 src/routes/index.ts:149
msgid "Not Found"
msgstr "找不到页面"
@@ -434,7 +469,7 @@ msgstr "找不到页面"
msgid "Not Valid Before: %{date}"
msgstr "此前无效: %{date}"
-#: src/views/domain/cert/IssueCert.vue:218
+#: src/views/domain/cert/IssueCert.vue:201
msgid ""
"Note: The server_name in the current configuration must be the domain name "
"you need to get the certificate."
@@ -444,16 +479,18 @@ msgstr "注意:当前配置中的 server_name 必须为需要申请证书的
msgid "Obtaining certificate"
msgstr "正在获取证书"
-#: src/components/StdDataDisplay/StdCurd.vue:29
-#: src/components/StdDataDisplay/StdTable.vue:43
+#: src/components/StdDataDisplay/StdBatchEdit.vue:8
+#: src/components/StdDataDisplay/StdCurd.vue:28
+#: src/components/StdDataDisplay/StdTable.vue:53
+#: src/components/StdDataEntry/components/StdSelector.vue:12
#: src/components/StdDataEntry/compontents/StdSelector.vue:12
-#: src/views/domain/DomainList.vue:26
+#: src/views/domain/DomainList.vue:25
msgid "OK"
msgstr "确定"
#: src/views/dashboard/DashBoard.vue:147
msgid "OS:"
-msgstr ""
+msgstr "OS:"
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:22
msgid "Params"
@@ -467,8 +504,8 @@ msgstr "密码"
msgid "Password (*)"
msgstr "密码 (*)"
-#: src/views/domain/ngx_conf/LocationEditor.vue:24
-#: src/views/domain/ngx_conf/LocationEditor.vue:38
+#: src/views/domain/ngx_conf/LocationEditor.vue:34
+#: src/views/domain/ngx_conf/LocationEditor.vue:50
msgid "Path"
msgstr "路径"
@@ -484,6 +521,10 @@ msgstr "请输入您的密码!"
msgid "Please input your username!"
msgstr "请输入您的用户名!"
+#: src/routes/index.ts:117 src/views/preference/Preference.vue:2
+msgid "Preference"
+msgstr "偏好设置"
+
#: src/language/constants.ts:12
msgid "Preparing lego configurations"
msgstr "正在准备 Lego 的配置"
@@ -516,11 +557,15 @@ msgstr "正在注册用户"
msgid "Reloading nginx"
msgstr "正在重载 Nginx"
+#: src/components/StdDataDisplay/StdTable.vue:10
#: src/components/StdDataDisplay/StdTable.vue:15
+#: src/components/StdDataDisplay/StdTable.vue:9
msgid "Reset"
msgstr "重置"
-#: src/views/config/ConfigEdit.vue:52 src/views/domain/DomainEdit.vue:181
+#: src/views/config/ConfigEdit.vue:52 src/views/domain/DomainEdit.vue:190
+#: src/views/preference/Preference.vue:22
+#: src/views/preference/Preference.vue:23
msgid "Save"
msgstr "保存"
@@ -534,15 +579,20 @@ msgstr "保存指令"
msgid "Save error %{msg}"
msgstr "保存错误 %{msg}"
-#: src/components/StdDataDisplay/StdCurd.vue:102
+#: src/components/StdDataDisplay/StdBatchEdit.vue:40
+msgid "Save successfully"
+msgstr "保存成功"
+
+#: src/components/StdDataDisplay/StdCurd.vue:108
msgid "Save Successfully"
msgstr "保存成功"
#: src/views/config/ConfigEdit.vue:34 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:91
+#: src/views/domain/DomainEdit.vue:97
msgid "Saved successfully"
msgstr "保存成功"
+#: src/components/StdDataEntry/components/StdSelector.vue:13
#: src/components/StdDataEntry/compontents/StdSelector.vue:13
msgid "Selector"
msgstr "选择器"
@@ -551,11 +601,13 @@ msgstr "选择器"
msgid "Send"
msgstr "上传"
-#: src/components/StdDataDisplay/StdTable.vue:140
-#: src/components/StdDataDisplay/StdTable.vue:298
-#: src/views/config/ConfigEdit.vue:22 src/views/domain/DomainEdit.vue:56
-#: src/views/domain/DomainEdit.vue:68 src/views/domain/DomainEdit.vue:77
-#: src/views/domain/DomainEdit.vue:94 src/views/domain/DomainList.vue:78
+#: src/components/StdDataDisplay/StdBatchEdit.vue:43
+#: src/components/StdDataDisplay/StdTable.vue:168
+#: src/components/StdDataDisplay/StdTable.vue:343
+#: src/components/StdDataDisplay/StdTable.vue:463
+#: src/views/config/ConfigEdit.vue:22 src/views/domain/DomainEdit.vue:100
+#: src/views/domain/DomainEdit.vue:62 src/views/domain/DomainEdit.vue:74
+#: src/views/domain/DomainEdit.vue:83 src/views/domain/DomainList.vue:83
#: src/views/other/Install.vue:71
msgid "Server error"
msgstr "服务器错误"
@@ -568,28 +620,24 @@ msgstr "服务器信息"
msgid "server_name not found in directives"
msgstr "未在指令集合中找到 server_name"
-#: src/views/domain/cert/IssueCert.vue:209 src/views/domain/DomainAdd.vue:112
+#: src/views/domain/cert/IssueCert.vue:195 src/views/domain/DomainAdd.vue:112
msgid "server_name parameter is required"
msgstr "必须为 server_name 指令指明参数"
-#: src/views/domain/cert/IssueCert.vue:212
-#: src/views/domain/cert/IssueCert.vue:35
-msgid "server_name parameters more than one"
-msgstr "server_name 指令包含多个参数"
-
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:6
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:7
msgid "Single Directive"
msgstr "单行指令"
-#: src/routes/index.ts:107
+#: src/routes/index.ts:108
msgid "Site Logs"
msgstr "站点列表"
-#: src/routes/index.ts:51
+#: src/routes/index.ts:52
msgid "Sites List"
msgstr "站点列表"
-#: src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:24
msgid "Status"
msgstr "状态"
@@ -603,17 +651,17 @@ msgstr "主体名称: %{name}"
#: src/views/dashboard/DashBoard.vue:36
msgid "Swap"
-msgstr ""
+msgstr "Swap"
#: src/components/StdDataDisplay/StdCurd.vue:3
msgid "Table"
msgstr "列表"
-#: src/routes/index.ts:85 src/views/pty/Terminal.vue:2
+#: src/routes/index.ts:86 src/views/pty/Terminal.vue:2
msgid "Terminal"
msgstr "终端"
-#: src/views/domain/cert/IssueCert.vue:222
+#: src/views/domain/cert/IssueCert.vue:205
msgid ""
"The certificate for the domain will be checked every hour, and will be "
"renewed if it has been more than 1 month since it was last issued."
@@ -628,11 +676,19 @@ msgstr "文件名不能包含以下字符: %{c}"
msgid "The username or password is incorrect"
msgstr "用户名或密码错误"
-#: src/views/config/Config.vue:17 src/views/domain/DomainList.vue:36
+#: src/views/preference/Preference.vue:5
+msgid "Theme"
+msgstr "主题"
+
+#: src/views/config/Config.vue:17 src/views/domain/DomainList.vue:41
#: src/views/user/User.vue:37
msgid "Updated at"
msgstr "修改时间"
+#: src/components/StdDataDisplay/StdTable.vue:461
+msgid "Updated successfully"
+msgstr "更新成功"
+
#: src/views/dashboard/DashBoard.vue:137
msgid "Uptime:"
msgstr "运行时间:"
@@ -666,8 +722,8 @@ msgstr "正在将证书私钥写入磁盘"
msgid "Writing certificate to disk"
msgstr "正在将证书写入磁盘"
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:16
-#: src/views/domain/ngx_conf/LocationEditor.vue:10
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:28
+#: src/views/domain/ngx_conf/LocationEditor.vue:20
msgid "Yes"
msgstr "是的"
@@ -676,6 +732,12 @@ msgctxt "Project"
msgid "License"
msgstr "开源许可"
+#~ msgid "Are you sure you want to delete ?"
+#~ msgstr "您确定要删除吗?"
+
+#~ msgid "server_name parameters more than one"
+#~ msgstr "server_name 指令包含多个参数"
+
#~ msgid "All logs"
#~ msgstr "所有日志"
diff --git a/frontend/src/language/zh_TW/app.mo b/frontend/src/language/zh_TW/app.mo
new file mode 100644
index 00000000..3c29365c
Binary files /dev/null and b/frontend/src/language/zh_TW/app.mo differ
diff --git a/frontend/src/language/zh_TW/app.po b/frontend/src/language/zh_TW/app.po
index 247037de..4719d426 100644
--- a/frontend/src/language/zh_TW/app.po
+++ b/frontend/src/language/zh_TW/app.po
@@ -11,25 +11,25 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: easygettext\n"
-"X-Generator: Poedit 2.2\n"
+"X-Generator: Poedit 3.2.2\n"
-#: src/routes/index.ts:116
+#: src/routes/index.ts:125
msgid "About"
msgstr "關於"
-#: src/routes/index.ts:99 src/views/domain/ngx_conf/LogEntry.vue:64
+#: src/routes/index.ts:100 src/views/domain/ngx_conf/LogEntry.vue:64
msgid "Access Logs"
-msgstr ""
+msgstr "訪問日誌"
-#: src/views/config/Config.vue:24 src/views/domain/DomainList.vue:42
+#: src/views/config/Config.vue:24 src/views/domain/DomainList.vue:47
#: src/views/user/User.vue:43
msgid "Action"
msgstr "操作"
-#: src/components/StdDataDisplay/StdCurd.vue:134
-#: src/components/StdDataDisplay/StdCurd.vue:26
+#: src/components/StdDataDisplay/StdCurd.vue:145
+#: src/components/StdDataDisplay/StdCurd.vue:25
msgid "Add"
-msgstr ""
+msgstr "新增"
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:31
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:32
@@ -37,68 +37,80 @@ msgstr ""
msgid "Add Directive Below"
msgstr "在下面新增指令"
-#: src/views/domain/ngx_conf/LocationEditor.vue:33
-#: src/views/domain/ngx_conf/LocationEditor.vue:48
+#: src/views/domain/ngx_conf/LocationEditor.vue:45
+#: src/views/domain/ngx_conf/LocationEditor.vue:50
+#: src/views/domain/ngx_conf/LocationEditor.vue:51
+#: src/views/domain/ngx_conf/LocationEditor.vue:60
msgid "Add Location"
msgstr "新增 Location"
-#: src/routes/index.ts:55 src/views/domain/DomainAdd.vue:2
+#: src/routes/index.ts:56 src/views/domain/DomainAdd.vue:2
msgid "Add Site"
msgstr "新增站點"
-#: src/views/domain/DomainEdit.vue:19
+#: src/views/domain/DomainEdit.vue:18 src/views/domain/DomainEdit.vue:19
msgid "Advance Mode"
msgstr "高階模式"
-#: src/components/StdDataDisplay/StdTable.vue:44
-#: src/views/domain/DomainList.vue:27
-#, fuzzy
-msgid "Are you sure you want to delete ?"
-msgstr "您确定要删除?"
+#: src/components/StdDataDisplay/StdTable.vue:54
+#: src/views/domain/DomainList.vue:26
+msgid "Are you sure you want to delete?"
+msgstr "你確定你要刪除?"
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:15
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:27
msgid "Are you sure you want to remove this directive?"
msgstr "您確定要刪除這條指令?"
-#: src/views/domain/ngx_conf/LocationEditor.vue:9
-#, fuzzy
+#: src/views/domain/ngx_conf/LocationEditor.vue:19
msgid "Are you sure you want to remove this location?"
-msgstr "您確定要刪除這條指令?"
+msgstr "您確定要刪除此 Location 嗎?"
+
+#: src/views/preference/Preference.vue:7 src/views/preference/Preference.vue:8
+msgid "Auto"
+msgstr "自動"
#: src/views/nginx_log/NginxLog.vue:4
msgid "Auto Refresh"
-msgstr ""
+msgstr "自動刷新"
-#: src/views/domain/cert/IssueCert.vue:78
+#: src/views/domain/cert/IssueCert.vue:72
msgid "Auto-renewal disabled for %{name}"
msgstr "已關閉 %{name} 自動續簽"
-#: src/views/domain/cert/IssueCert.vue:72
+#: src/views/domain/cert/IssueCert.vue:66
msgid "Auto-renewal enabled for %{name}"
msgstr "已啟用 %{name} 自動續簽"
-#: src/views/domain/DomainEdit.vue:178 src/views/nginx_log/NginxLog.vue:172
+#: src/views/domain/DomainEdit.vue:187 src/views/nginx_log/NginxLog.vue:173
msgid "Back"
msgstr "返回"
#: src/views/other/Error.vue:12
-#, fuzzy
msgid "Back Home"
-msgstr "返回"
+msgstr "回到首頁"
#: src/views/domain/DomainAdd.vue:5
msgid "Base information"
msgstr "基本訊息"
-#: src/views/domain/DomainEdit.vue:22
+#: src/views/domain/DomainEdit.vue:21 src/views/domain/DomainEdit.vue:22
msgid "Basic Mode"
msgstr "基本模式"
+#: src/components/StdDataDisplay/StdBatchEdit.vue:5
+#: src/components/StdDataDisplay/StdTable.vue:12
+#: src/components/StdDataDisplay/StdTable.vue:13
+#: src/components/StdDataDisplay/StdTable.vue:18
+msgid "Batch Modify"
+msgstr "批量修改"
+
#: src/views/other/About.vue:21
msgid "Build with"
msgstr "構建基於"
-#: src/components/StdDataDisplay/StdCurd.vue:28
+#: src/components/StdDataDisplay/StdBatchEdit.vue:7
+#: src/components/StdDataDisplay/StdCurd.vue:27
+#: src/components/StdDataEntry/components/StdSelector.vue:11
#: src/components/StdDataEntry/compontents/StdSelector.vue:11
#: src/views/config/ConfigEdit.vue:49
msgid "Cancel"
@@ -116,9 +128,9 @@ msgstr "此憑證有效"
msgid "Certificate Status"
msgstr "憑證狀態"
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:29
-#: src/views/domain/ngx_conf/LocationEditor.vue:21
-#: src/views/domain/ngx_conf/LocationEditor.vue:35
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:41
+#: src/views/domain/ngx_conf/LocationEditor.vue:31
+#: src/views/domain/ngx_conf/LocationEditor.vue:47
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:175
msgid "Comments"
msgstr "註釋"
@@ -135,8 +147,8 @@ msgstr "配置"
msgid "Configure SSL"
msgstr "配置 SSL"
-#: src/views/domain/ngx_conf/LocationEditor.vue:27
-#: src/views/domain/ngx_conf/LocationEditor.vue:41
+#: src/views/domain/ngx_conf/LocationEditor.vue:37
+#: src/views/domain/ngx_conf/LocationEditor.vue:53
msgid "Content"
msgstr "內容"
@@ -158,9 +170,14 @@ msgstr "建立時間"
#: src/language/constants.ts:13
msgid "Creating client facilitates communication with the CA server"
-msgstr ""
+msgstr "創建客戶端方便與CA服務器通信"
-#: src/routes/index.ts:27
+#: src/views/preference/Preference.vue:13
+#: src/views/preference/Preference.vue:14
+msgid "Dark"
+msgstr "深色"
+
+#: src/routes/index.ts:28
msgid "Dashboard"
msgstr "儀表盤"
@@ -168,19 +185,18 @@ msgstr "儀表盤"
msgid "Database (Optional, default: database)"
msgstr "資料庫 (可選,預設: database)"
-#: src/components/StdDataDisplay/StdTable.vue:366
-#: src/views/domain/DomainList.vue:111
+#: src/components/StdDataDisplay/StdTable.vue:527
+#: src/views/domain/DomainList.vue:115
msgid "Delete"
-msgstr ""
+msgstr "刪除"
-#: src/components/StdDataDisplay/StdTable.vue:120
+#: src/components/StdDataDisplay/StdTable.vue:132
msgid "Delete ID: %{id}"
msgstr "刪除 ID: %{id}"
-#: src/views/domain/DomainList.vue:76
-#, fuzzy
+#: src/views/domain/DomainList.vue:81
msgid "Delete site: %{site_name}"
-msgstr "刪除 ID: %{id}"
+msgstr "刪除站點:%{site_name}"
#: src/views/other/About.vue:7 src/views/other/About.vue:8
msgid "Development Mode"
@@ -190,20 +206,23 @@ msgstr "開發模式"
msgid "Directive"
msgstr "指令"
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:1
#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:2
msgid "Directives"
msgstr "指令"
-#: src/views/domain/cert/IssueCert.vue:80
+#: src/views/domain/cert/IssueCert.vue:74
msgid "Disable auto-renewal failed for %{name}"
msgstr "關閉 %{name} 自動續簽失敗"
-#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainList.vue:17
-#: src/views/domain/DomainList.vue:29
+#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainEdit.vue:9
+#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:34
+#: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8
+#: src/views/domain/DomainList.vue:9
msgid "Disabled"
msgstr "禁用"
-#: src/views/domain/DomainEdit.vue:112 src/views/domain/DomainList.vue:64
+#: src/views/domain/DomainEdit.vue:118 src/views/domain/DomainList.vue:69
msgid "Disabled successfully"
msgstr "禁用成功"
@@ -215,15 +234,15 @@ msgstr "磁碟 IO"
msgid "Domain Config Created Successfully"
msgstr "域名配置文件創建成功"
-#: src/views/domain/DomainEdit.vue:5
+#: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5
msgid "Edit %{n}"
msgstr "編輯 %{n}"
-#: src/routes/index.ts:77 src/views/config/ConfigEdit.vue:2
+#: src/routes/index.ts:78 src/views/config/ConfigEdit.vue:2
msgid "Edit Configuration"
msgstr "編輯配置"
-#: src/routes/index.ts:59
+#: src/routes/index.ts:60
msgid "Edit Site"
msgstr "編輯站點"
@@ -231,7 +250,7 @@ msgstr "編輯站點"
msgid "Email (*)"
msgstr "郵箱 (*)"
-#: src/views/domain/cert/IssueCert.vue:74
+#: src/views/domain/cert/IssueCert.vue:68
msgid "Enable auto-renewal failed for %{name}"
msgstr "啟用 %{name} 自動續簽失敗"
@@ -243,14 +262,15 @@ msgstr "啟用失敗"
msgid "Enable TLS"
msgstr "啟用 TLS"
-#: src/views/domain/DomainEdit.vue:33 src/views/domain/DomainEdit.vue:7
-#: src/views/domain/DomainList.vue:12 src/views/domain/DomainList.vue:20
-#: src/views/domain/DomainList.vue:26
+#: src/views/domain/DomainEdit.vue:33 src/views/domain/DomainEdit.vue:6
+#: src/views/domain/DomainEdit.vue:7 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"
msgstr "啟用"
-#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:103
-#: src/views/domain/DomainList.vue:54
+#: src/views/domain/DomainAdd.vue:46 src/views/domain/DomainEdit.vue:109
+#: src/views/domain/DomainList.vue:59
msgid "Enabled successfully"
msgstr "啟用成功"
@@ -258,30 +278,32 @@ msgstr "啟用成功"
msgid "Encrypt website with Let's Encrypt"
msgstr "用 Let's Encrypt 對網站進行加密"
-#: src/routes/index.ts:103 src/views/domain/ngx_conf/LogEntry.vue:68
+#: src/routes/index.ts:104 src/views/domain/ngx_conf/LogEntry.vue:68
msgid "Error Logs"
-msgstr ""
+msgstr "錯誤日志"
#: src/views/domain/cert/CertInfo.vue:17
msgid "Expiration Date: %{date}"
msgstr "過期時間: %{date}"
#: src/components/StdDataDisplay/StdTable.vue:12
-#: src/components/StdDataDisplay/StdTable.vue:317
+#: src/components/StdDataDisplay/StdTable.vue:362
+#: src/components/StdDataDisplay/StdTable.vue:6
+#: src/components/StdDataDisplay/StdTable.vue:7
msgid "Export"
-msgstr ""
+msgstr "導出"
-#: src/views/domain/DomainEdit.vue:115 src/views/domain/DomainList.vue:68
+#: src/views/domain/DomainEdit.vue:121 src/views/domain/DomainList.vue:73
msgid "Failed to disable %{msg}"
msgstr "禁用失敗 %{msg}"
-#: src/views/domain/DomainEdit.vue:106 src/views/domain/DomainList.vue:58
+#: src/views/domain/DomainEdit.vue:112 src/views/domain/DomainList.vue:63
msgid "Failed to enable %{msg}"
msgstr "啟用失敗 %{msg}"
#: src/language/constants.ts:9
msgid "Failed to get certificate information"
-msgstr ""
+msgstr "獲取證書信息失敗"
#: src/views/other/Error.vue:3 src/views/other/Error.vue:4
msgid "File Not Found"
@@ -289,63 +311,69 @@ msgstr "未找到檔案"
#: src/views/nginx_log/NginxLog.vue:7
msgid "Filter"
-msgstr ""
+msgstr "篩選"
#: src/language/constants.ts:20 src/views/domain/DomainAdd.vue:7
msgid "Finished"
msgstr "完成"
+#: src/components/StdDataEntry/components/StdPassword.vue:42
#: src/components/StdDataEntry/compontents/StdPassword.vue:42
msgid "Generate"
-msgstr ""
+msgstr "生成"
#: src/language/constants.ts:11
msgid "Generating private key for registering account"
-msgstr ""
+msgstr "生成註冊賬號私鑰"
-#: src/views/domain/cert/IssueCert.vue:103
+#: src/views/domain/cert/IssueCert.vue:97
msgid "Getting the certificate, please wait..."
msgstr "正在獲取憑證,請稍等..."
-#: src/routes/index.ts:20
+#: src/routes/index.ts:21
msgid "Home"
msgstr "首頁"
-#: src/routes/index.ts:126 src/views/other/Install.vue:128
+#: src/routes/index.ts:135 src/views/other/Install.vue:128
msgid "Install"
msgstr "安裝"
#: src/views/other/Install.vue:68
-#, fuzzy
msgid "Install successfully"
-msgstr "啟用成功"
+msgstr "安裝成功"
#: src/views/domain/cert/CertInfo.vue:15
msgid "Intermediate Certification Authorities: %{issuer}"
msgstr "中級憑證頒發機構: %{issuer}"
#: src/language/constants.ts:21
-#, fuzzy
msgid "Issued certificate successfully"
-msgstr "啟用成功"
+msgstr "頒發證書成功"
#: src/views/user/User.vue:26
msgid "Leave blank for no change"
msgstr "留空表示不修改"
+#: src/views/preference/Preference.vue:10
+#: src/views/preference/Preference.vue:11
+msgid "Light"
+msgstr "淺色"
+
#: src/views/dashboard/DashBoard.vue:141
msgid "Load Averages:"
msgstr "系統負載:"
-#: src/views/domain/ngx_conf/LocationEditor.vue:5
+#: src/views/domain/ngx_conf/LocationEditor.vue:15
+#: src/views/domain/ngx_conf/LocationEditor.vue:8
+#: src/views/domain/ngx_conf/LocationEditor.vue:9
msgid "Location"
msgstr "Location"
-#: src/views/domain/ngx_conf/LocationEditor.vue:39
+#: src/views/domain/ngx_conf/LocationEditor.vue:40
msgid "Locations"
msgstr "Locations"
-#: src/routes/index.ts:132 src/views/other/Login.vue:103
+#: src/routes/index.ts:141 src/views/other/Login.vue:103
msgid "Login"
msgstr "登入"
@@ -357,24 +385,23 @@ msgstr "登入成功"
msgid "Logout successful"
msgstr "登出成功"
-#: src/views/domain/cert/IssueCert.vue:226
-#, fuzzy
+#: src/views/domain/cert/IssueCert.vue:209
msgid ""
"Make sure you have configured a reverse proxy for .well-known directory to "
"HTTPChallengePort (default: 9180) before getting the certificate."
msgstr ""
-"在獲取憑證前,請確保配置檔案中已將 .well-known 目錄反向代理到 "
+"在獲取證書前,請確保配置檔案中已將 .well-known 目錄反向代理到 "
"HTTPChallengePort (預設: 9180)"
-#: src/routes/index.ts:68
+#: src/routes/index.ts:69
msgid "Manage Configs"
msgstr "配置管理"
-#: src/routes/index.ts:43 src/views/domain/DomainList.vue:2
+#: src/routes/index.ts:44 src/views/domain/DomainList.vue:2
msgid "Manage Sites"
msgstr "網站管理"
-#: src/routes/index.ts:35 src/views/user/User.vue:2
+#: src/routes/index.ts:36 src/views/user/User.vue:2
msgid "Manage Users"
msgstr "使用者管理"
@@ -386,21 +413,21 @@ msgstr "記憶體"
msgid "Memory and Storage"
msgstr "記憶體和存儲"
-#: src/components/StdDataDisplay/StdCurd.vue:26
-#: src/components/StdDataDisplay/StdTable.vue:18
-#: src/components/StdDataDisplay/StdTable.vue:19
-#: src/components/StdDataDisplay/StdTable.vue:24
-#: src/components/StdDataDisplay/StdTable.vue:34
-#: src/components/StdDataDisplay/StdTable.vue:36
-#, fuzzy
+#: src/components/StdDataDisplay/StdCurd.vue:25
+#: src/components/StdDataDisplay/StdTable.vue:25
+#: src/components/StdDataDisplay/StdTable.vue:26
+#: src/components/StdDataDisplay/StdTable.vue:31
+#: src/components/StdDataDisplay/StdTable.vue:44
+#: src/components/StdDataDisplay/StdTable.vue:46
msgid "Modify"
-msgstr "修改配置"
+msgstr "修改"
#: src/views/domain/DomainAdd.vue:147
msgid "Modify Config"
msgstr "修改配置"
-#: src/views/config/Config.vue:12 src/views/domain/DomainList.vue:14
+#: src/views/config/Config.vue:12 src/views/domain/DomainEdit.vue:36
+#: src/views/domain/DomainList.vue:15
msgid "Name"
msgstr "名稱"
@@ -424,18 +451,18 @@ msgstr "上傳流量"
msgid "Next"
msgstr "下一步"
-#: src/routes/index.ts:93 src/views/nginx_log/NginxLog.vue:2
+#: src/routes/index.ts:94 src/views/nginx_log/NginxLog.vue:2
msgid "Nginx Log"
-msgstr ""
+msgstr "Nginx 日誌"
-#: src/components/StdDataDisplay/StdTable.vue:42
-#: src/views/domain/DomainList.vue:25
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:17
-#: src/views/domain/ngx_conf/LocationEditor.vue:11
+#: src/components/StdDataDisplay/StdTable.vue:52
+#: src/views/domain/DomainList.vue:24
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:29
+#: src/views/domain/ngx_conf/LocationEditor.vue:21
msgid "No"
msgstr "取消"
-#: src/routes/index.ts:138 src/routes/index.ts:140
+#: src/routes/index.ts:147 src/routes/index.ts:149
msgid "Not Found"
msgstr "找不到頁面"
@@ -443,21 +470,22 @@ msgstr "找不到頁面"
msgid "Not Valid Before: %{date}"
msgstr "此前無效: %{date}"
-#: src/views/domain/cert/IssueCert.vue:218
-#, fuzzy
+#: src/views/domain/cert/IssueCert.vue:201
msgid ""
"Note: The server_name in the current configuration must be the domain name "
"you need to get the certificate."
-msgstr "注意:當前配置中的 server_name 必須為需要申請憑證的域名。"
+msgstr "注意:當前配置中的 server_name 必須為需要申請證書的域名。"
#: src/language/constants.ts:16 src/views/domain/cert/IssueCert.vue:3
msgid "Obtaining certificate"
-msgstr ""
+msgstr "正在獲取證書,請稍等..."
-#: src/components/StdDataDisplay/StdCurd.vue:29
-#: src/components/StdDataDisplay/StdTable.vue:43
+#: src/components/StdDataDisplay/StdBatchEdit.vue:8
+#: src/components/StdDataDisplay/StdCurd.vue:28
+#: src/components/StdDataDisplay/StdTable.vue:53
+#: src/components/StdDataEntry/components/StdSelector.vue:12
#: src/components/StdDataEntry/compontents/StdSelector.vue:12
-#: src/views/domain/DomainList.vue:26
+#: src/views/domain/DomainList.vue:25
msgid "OK"
msgstr "確定"
@@ -477,8 +505,8 @@ msgstr "密碼"
msgid "Password (*)"
msgstr "密碼 (*)"
-#: src/views/domain/ngx_conf/LocationEditor.vue:24
-#: src/views/domain/ngx_conf/LocationEditor.vue:38
+#: src/views/domain/ngx_conf/LocationEditor.vue:34
+#: src/views/domain/ngx_conf/LocationEditor.vue:50
msgid "Path"
msgstr "路徑"
@@ -494,18 +522,21 @@ msgstr "請輸入您的密碼!"
msgid "Please input your username!"
msgstr "請輸入您的使用者名稱!"
+#: src/routes/index.ts:117 src/views/preference/Preference.vue:2
+msgid "Preference"
+msgstr "設定"
+
#: src/language/constants.ts:12
-#, fuzzy
msgid "Preparing lego configurations"
-msgstr "配置"
+msgstr "準備 Lego 配置"
#: src/language/constants.ts:7
msgid "Prohibit changing root password in demo"
-msgstr ""
+msgstr "禁止在demo中修改root密碼"
#: src/language/constants.ts:8
msgid "Prohibit deleting the default user"
-msgstr ""
+msgstr "禁止刪除默認用戶"
#: src/views/other/About.vue:19
msgid "Project Team"
@@ -521,17 +552,21 @@ msgstr "下載"
#: src/language/constants.ts:15
msgid "Registering user"
-msgstr ""
+msgstr "註冊用戶"
#: src/language/constants.ts:19
msgid "Reloading nginx"
-msgstr ""
+msgstr "重载 Nginx"
+#: src/components/StdDataDisplay/StdTable.vue:10
#: src/components/StdDataDisplay/StdTable.vue:15
+#: src/components/StdDataDisplay/StdTable.vue:9
msgid "Reset"
-msgstr ""
+msgstr "重設"
-#: src/views/config/ConfigEdit.vue:52 src/views/domain/DomainEdit.vue:181
+#: src/views/config/ConfigEdit.vue:52 src/views/domain/DomainEdit.vue:190
+#: src/views/preference/Preference.vue:22
+#: src/views/preference/Preference.vue:23
msgid "Save"
msgstr "儲存"
@@ -545,29 +580,35 @@ msgstr "儲存指令"
msgid "Save error %{msg}"
msgstr "儲存錯誤 %{msg}"
-#: src/components/StdDataDisplay/StdCurd.vue:102
-#, fuzzy
+#: src/components/StdDataDisplay/StdBatchEdit.vue:40
+msgid "Save successfully"
+msgstr "保存成功"
+
+#: src/components/StdDataDisplay/StdCurd.vue:108
msgid "Save Successfully"
-msgstr "儲存成功"
+msgstr "保存成功"
#: src/views/config/ConfigEdit.vue:34 src/views/domain/DomainAdd.vue:43
-#: src/views/domain/DomainEdit.vue:91
+#: src/views/domain/DomainEdit.vue:97
msgid "Saved successfully"
msgstr "儲存成功"
+#: src/components/StdDataEntry/components/StdSelector.vue:13
#: src/components/StdDataEntry/compontents/StdSelector.vue:13
msgid "Selector"
-msgstr ""
+msgstr "選擇器"
#: src/views/dashboard/DashBoard.vue:21 src/views/dashboard/DashBoard.vue:85
msgid "Send"
msgstr "上傳"
-#: src/components/StdDataDisplay/StdTable.vue:140
-#: src/components/StdDataDisplay/StdTable.vue:298
-#: src/views/config/ConfigEdit.vue:22 src/views/domain/DomainEdit.vue:56
-#: src/views/domain/DomainEdit.vue:68 src/views/domain/DomainEdit.vue:77
-#: src/views/domain/DomainEdit.vue:94 src/views/domain/DomainList.vue:78
+#: src/components/StdDataDisplay/StdBatchEdit.vue:43
+#: src/components/StdDataDisplay/StdTable.vue:168
+#: src/components/StdDataDisplay/StdTable.vue:343
+#: src/components/StdDataDisplay/StdTable.vue:463
+#: src/views/config/ConfigEdit.vue:22 src/views/domain/DomainEdit.vue:100
+#: src/views/domain/DomainEdit.vue:62 src/views/domain/DomainEdit.vue:74
+#: src/views/domain/DomainEdit.vue:83 src/views/domain/DomainList.vue:83
#: src/views/other/Install.vue:71
msgid "Server error"
msgstr "伺服器錯誤"
@@ -580,29 +621,24 @@ msgstr "伺服器資訊"
msgid "server_name not found in directives"
msgstr "未在指令集合中找到 server_name"
-#: src/views/domain/cert/IssueCert.vue:209 src/views/domain/DomainAdd.vue:112
+#: src/views/domain/cert/IssueCert.vue:195 src/views/domain/DomainAdd.vue:112
msgid "server_name parameter is required"
msgstr "必須為 server_name 指令指明參數"
-#: src/views/domain/cert/IssueCert.vue:212
-#: src/views/domain/cert/IssueCert.vue:35
-msgid "server_name parameters more than one"
-msgstr "server_name 指令包含多個參數"
-
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:6
#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:7
msgid "Single Directive"
msgstr "單行指令"
-#: src/routes/index.ts:107
-#, fuzzy
+#: src/routes/index.ts:108
msgid "Site Logs"
-msgstr "站點列表"
+msgstr "網站日誌"
-#: src/routes/index.ts:51
+#: src/routes/index.ts:52
msgid "Sites List"
msgstr "站點列表"
-#: src/views/domain/DomainList.vue:19
+#: src/views/domain/DomainList.vue:24
msgid "Status"
msgstr "狀態"
@@ -619,22 +655,20 @@ msgid "Swap"
msgstr "交換空間"
#: src/components/StdDataDisplay/StdCurd.vue:3
-#, fuzzy
msgid "Table"
-msgstr "啟用"
+msgstr "表格"
-#: src/routes/index.ts:85 src/views/pty/Terminal.vue:2
+#: src/routes/index.ts:86 src/views/pty/Terminal.vue:2
msgid "Terminal"
msgstr "終端"
-#: src/views/domain/cert/IssueCert.vue:222
-#, fuzzy
+#: src/views/domain/cert/IssueCert.vue:205
msgid ""
"The certificate for the domain will be checked every hour, and will be "
"renewed if it has been more than 1 month since it was last issued."
msgstr ""
-"系統將會每小時檢測一次該域名憑證,若距離上次簽發已超過1個月,則將自動續簽。"
-"
如果您之前沒有憑證,請先點選「從 Let's Encrypt 獲取憑證」。"
+"系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續簽。"
+"
如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。"
#: src/views/other/Install.vue:54
msgid "The filename cannot contain the following characters: %{c}"
@@ -642,13 +676,21 @@ msgstr "檔名不能包含以下字元: %{c}"
#: src/language/constants.ts:6
msgid "The username or password is incorrect"
-msgstr ""
+msgstr "用戶名或密碼不正確"
-#: src/views/config/Config.vue:17 src/views/domain/DomainList.vue:36
+#: src/views/preference/Preference.vue:5
+msgid "Theme"
+msgstr "外觀樣式"
+
+#: src/views/config/Config.vue:17 src/views/domain/DomainList.vue:41
#: src/views/user/User.vue:37
msgid "Updated at"
msgstr "修改時間"
+#: src/components/StdDataDisplay/StdTable.vue:461
+msgid "Updated successfully"
+msgstr "已成功更新"
+
#: src/views/dashboard/DashBoard.vue:137
msgid "Uptime:"
msgstr "執行時間:"
@@ -663,7 +705,7 @@ msgstr "使用者名稱 (*)"
#: src/language/constants.ts:14
msgid "Using HTTP01 challenge provider"
-msgstr ""
+msgstr "使用 HTTP01 挑戰提供者"
#: src/views/domain/cert/IssueCert.vue:26 src/views/domain/DomainAdd.vue:24
msgid "Warning"
@@ -676,14 +718,14 @@ msgstr "寫"
#: src/language/constants.ts:18
msgid "Writing certificate private key to disk"
-msgstr ""
+msgstr "將證書私鑰寫入磁盤"
#: src/language/constants.ts:17
msgid "Writing certificate to disk"
-msgstr ""
+msgstr "將證書寫入磁盤"
-#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:16
-#: src/views/domain/ngx_conf/LocationEditor.vue:10
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:28
+#: src/views/domain/ngx_conf/LocationEditor.vue:20
msgid "Yes"
msgstr "是的"
@@ -692,6 +734,13 @@ msgctxt "Project"
msgid "License"
msgstr "開源軟體授權條款"
+#, fuzzy
+#~ msgid "Are you sure you want to delete ?"
+#~ msgstr "您确定要删除?"
+
+#~ msgid "server_name parameters more than one"
+#~ msgstr "server_name 指令包含多個參數"
+
#~ msgid "404 Not Found"
#~ msgstr "404 未找到頁面"
diff --git a/frontend/src/layouts/BaseLayout.vue b/frontend/src/layouts/BaseLayout.vue
index 729f1b51..d5aaa51d 100644
--- a/frontend/src/layouts/BaseLayout.vue
+++ b/frontend/src/layouts/BaseLayout.vue
@@ -122,37 +122,36 @@ const lang = computed(() => {
diff --git a/frontend/version.json b/frontend/version.json
index 006b322e..7421b230 100644
--- a/frontend/version.json
+++ b/frontend/version.json
@@ -1 +1 @@
-{"version":"1.6.8","build_id":57,"total_build":127}
\ No newline at end of file
+{"version":"1.7.0","build_id":61,"total_build":131}
\ No newline at end of file