diff --git a/frontend/src/locale/en/LC_MESSAGES/app.po b/frontend/src/locale/en/LC_MESSAGES/app.po
index 31b0674f..e2f92ccc 100644
--- a/frontend/src/locale/en/LC_MESSAGES/app.po
+++ b/frontend/src/locale/en/LC_MESSAGES/app.po
@@ -23,34 +23,55 @@ msgstr ""
msgid "Action"
msgstr ""
-#: src/router/index.js:47 src/views/domain/DomainAdd.vue:27
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:89
+msgid "Add Directive Below"
+msgstr ""
+
+#: src/views/domain/ngx_conf/LocationEditor.vue:70
+#: src/views/domain/ngx_conf/LocationEditor.vue:120
+msgid "Add Location"
+msgstr ""
+
+#: src/router/index.js:47 src/views/domain/DomainAdd.vue:32
msgid "Add Site"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:67
+#: src/views/domain/DomainEdit.vue:57
+msgid "Advance Mode"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:68
msgid "Are you sure you want to destroy?"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:43
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:46
+msgid "Are you sure you want to remove this directive?"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:44
msgid "Are you sure you want to restore?"
msgstr ""
-#: src/views/domain/DomainAdd.vue:89 src/views/domain/DomainEdit.vue:163
+#: src/views/domain/cert/IssueCert.vue:82
msgid "Auto-renewal disabled for %{name}"
msgstr ""
-#: src/views/domain/DomainAdd.vue:83 src/views/domain/DomainEdit.vue:157
+#: src/views/domain/cert/IssueCert.vue:76
msgid "Auto-renewal enabled for %{name}"
msgstr ""
-#: src/views/domain/DomainEdit.vue:38
+#: src/views/domain/DomainEdit.vue:41
msgid "Back"
msgstr ""
-#: src/views/domain/DomainAdd.vue:37
+#: src/views/domain/DomainAdd.vue:42
msgid "Base information"
msgstr ""
+#: src/views/domain/DomainEdit.vue:60
+msgid "Basic Mode"
+msgstr ""
+
#: src/views/other/About.vue:11
msgid "Build with"
msgstr ""
@@ -59,27 +80,26 @@ msgstr ""
msgid "Cancel"
msgstr ""
-#: src/views/domain/columns.js:44
-msgid "Certificate Auto-renewal"
-msgstr ""
-
-#: src/views/domain/CertInfo.vue:12 src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:12 src/views/domain/cert/CertInfo.vue:2
msgid "Certificate has expired"
msgstr ""
-#: src/views/domain/CertInfo.vue:16 src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:16 src/views/domain/cert/CertInfo.vue:2
msgid "Certificate is valid"
msgstr ""
-#: src/views/domain/columns.js:61
-msgid "Certificate Path (ssl_certificate)"
-msgstr ""
-
-#: src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:2
msgid "Certificate Status"
msgstr ""
-#: src/views/domain/columns.js:4
+#: src/views/domain/ngx_conf/LocationEditor.vue:33
+#: src/views/domain/ngx_conf/LocationEditor.vue:77
+#: src/views/domain/ngx_conf/NgxConfigEditor.vue:52
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:67
+msgid "Comments"
+msgstr ""
+
+#: src/views/domain/DomainAdd.vue:56
msgid "Configuration Name"
msgstr ""
@@ -87,10 +107,15 @@ msgstr ""
msgid "Configurations"
msgstr ""
-#: src/views/domain/DomainAdd.vue:40
+#: src/views/domain/DomainAdd.vue:45
msgid "Configure SSL"
msgstr ""
+#: src/views/domain/ngx_conf/LocationEditor.vue:54
+#: src/views/domain/ngx_conf/LocationEditor.vue:100
+msgid "Content"
+msgstr ""
+
#: src/views/dashboard/DashBoard.vue:211
msgid "CPU Status"
msgstr ""
@@ -99,7 +124,7 @@ msgstr ""
msgid "CPU:"
msgstr ""
-#: src/views/domain/DomainAdd.vue:31 src/views/domain/DomainAdd.vue:5
+#: src/views/domain/DomainAdd.vue:50 src/views/domain/DomainAdd.vue:5
msgid "Create Another"
msgstr ""
@@ -115,7 +140,11 @@ msgstr ""
msgid "Database (Optional, default: database)"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:73
+#: src/components/StdDataDisplay/StdTable.vue:142
+msgid "Delete ID: %{id}"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:74
msgid "Destroy"
msgstr ""
@@ -127,16 +156,24 @@ msgstr ""
msgid "Development Mode"
msgstr ""
-#: src/views/domain/DomainAdd.vue:91 src/views/domain/DomainEdit.vue:165
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:57
+msgid "Directive"
+msgstr ""
+
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:20
+msgid "Directives"
+msgstr ""
+
+#: src/views/domain/cert/IssueCert.vue:84
msgid "Disable auto-renewal failed for %{name}"
msgstr ""
-#: src/views/domain/DomainEdit.vue:63 src/views/domain/DomainList.vue:7
-#: src/views/domain/DomainList.vue:2 src/views/domain/DomainList.vue:17
+#: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainList.vue:17
+#: src/views/domain/DomainList.vue:32
msgid "Disabled"
msgstr ""
-#: src/views/domain/DomainEdit.vue:179 src/views/domain/DomainList.vue:55
+#: src/views/domain/DomainEdit.vue:106 src/views/domain/DomainList.vue:55
msgid "Disabled successfully"
msgstr ""
@@ -144,19 +181,15 @@ msgstr ""
msgid "Disk IO"
msgstr ""
-#: src/views/domain/DomainEdit.vue:124
-msgid "Do you want to change the template to support the TLS?"
-msgstr ""
-
-#: src/views/domain/DomainAdd.vue:112
+#: src/views/domain/DomainAdd.vue:135
msgid "Domain Config Created Successfully"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:37
+#: src/components/StdDataDisplay/StdTable.vue:38
msgid "Edit"
msgstr ""
-#: src/views/domain/DomainEdit.vue:47
+#: src/views/domain/DomainEdit.vue:27
msgid "Edit %{n}"
msgstr ""
@@ -164,10 +197,6 @@ msgstr ""
msgid "Edit Configuration"
msgstr ""
-#: src/views/domain/DomainEdit.vue:134
-msgid "Edit Configuration File"
-msgstr ""
-
#: src/router/index.js:51
msgid "Edit Site"
msgstr ""
@@ -176,38 +205,41 @@ msgstr ""
msgid "Email (*)"
msgstr ""
-#: src/views/domain/DomainAdd.vue:85 src/views/domain/DomainEdit.vue:159
+#: src/views/domain/cert/IssueCert.vue:78
msgid "Enable auto-renewal failed for %{name}"
msgstr ""
-#: src/views/domain/DomainAdd.vue:40
+#: src/views/domain/DomainAdd.vue:39
msgid "Enable failed"
msgstr ""
-#: src/views/domain/columns.js:35
+#: src/views/domain/DomainAdd.vue:94
msgid "Enable TLS"
msgstr ""
-#: src/views/domain/DomainEdit.vue:54 src/views/domain/DomainEdit.vue:71
-#: src/views/domain/DomainList.vue:8 src/views/domain/DomainList.vue:3
-#: src/views/domain/DomainList.vue:16
+#: src/views/domain/DomainEdit.vue:34 src/views/domain/DomainEdit.vue:75
+#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:36
msgid "Enabled"
msgstr ""
-#: src/views/domain/DomainAdd.vue:37 src/views/domain/DomainEdit.vue:171
+#: src/views/domain/DomainAdd.vue:36 src/views/domain/DomainEdit.vue:98
#: src/views/domain/DomainList.vue:46
msgid "Enabled successfully"
msgstr ""
-#: src/views/domain/CertInfo.vue:5
+#: src/views/domain/cert/IssueCert.vue:36
+msgid "Encrypt website with Let's Encrypt"
+msgstr ""
+
+#: src/views/domain/cert/CertInfo.vue:5
msgid "Expiration Date: %{date}"
msgstr ""
-#: src/views/domain/DomainEdit.vue:182 src/views/domain/DomainList.vue:59
+#: src/views/domain/DomainEdit.vue:109 src/views/domain/DomainList.vue:59
msgid "Failed to disable %{msg}"
msgstr ""
-#: src/views/domain/DomainEdit.vue:174 src/views/domain/DomainList.vue:50
+#: src/views/domain/DomainEdit.vue:101 src/views/domain/DomainList.vue:50
msgid "Failed to enable %{msg}"
msgstr ""
@@ -215,16 +247,11 @@ msgstr ""
msgid "File Not Found"
msgstr ""
-#: src/views/domain/DomainAdd.vue:43
+#: src/views/domain/DomainAdd.vue:48
msgid "Finished"
msgstr ""
-#: src/views/domain/DomainAdd.vue:13 src/views/domain/DomainAdd.vue:2
-#: src/views/domain/DomainEdit.vue:22 src/views/domain/DomainEdit.vue:3
-msgid "Getting Certificate from Let's Encrypt"
-msgstr ""
-
-#: src/views/domain/methods.js:34
+#: src/views/domain/methods.js:6
msgid "Getting the certificate, please wait..."
msgstr ""
@@ -232,23 +259,11 @@ msgstr ""
msgid "Home"
msgstr ""
-#: src/views/domain/columns.js:28
-msgid "HTTP Listen Port"
-msgstr ""
-
-#: src/views/domain/columns.js:54
-msgid "HTTPS Listen Port"
-msgstr ""
-
-#: src/views/domain/columns.js:22
-msgid "Index (index)"
-msgstr ""
-
#: src/router/index.js:95 src/views/other/Install.vue:51
msgid "Install"
msgstr ""
-#: src/views/domain/CertInfo.vue:3
+#: src/views/domain/cert/CertInfo.vue:3
msgid "Intermediate Certification Authorities: %{issuer}"
msgstr ""
@@ -269,6 +284,14 @@ msgstr ""
msgid "Load Averages:"
msgstr ""
+#: src/views/domain/ngx_conf/LocationEditor.vue:26
+msgid "Location"
+msgstr ""
+
+#: src/views/domain/ngx_conf/LocationEditor.vue:16
+msgid "Locations"
+msgstr ""
+
#: src/router/index.js:101 src/views/other/Login.vue:25
msgid "Login"
msgstr ""
@@ -281,17 +304,18 @@ msgstr ""
msgid "Logout successful"
msgstr ""
-#: src/views/domain/DomainEdit.vue:25 src/views/domain/DomainEdit.vue:6
+#: src/views/domain/cert/IssueCert.vue:19
msgid ""
-"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\n"
+" directory to HTTPChallengePort (default: 9180) before getting "
+"the certificate."
msgstr ""
#: src/router/index.js:60
msgid "Manage Configs"
msgstr ""
-#: src/router/index.js:35 src/views/domain/DomainList.vue:21
+#: src/router/index.js:35 src/views/domain/DomainList.vue:12
msgid "Manage Sites"
msgstr ""
@@ -307,7 +331,7 @@ msgstr ""
msgid "Memory and Storage"
msgstr ""
-#: src/views/domain/DomainAdd.vue:28 src/views/domain/DomainAdd.vue:2
+#: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainAdd.vue:2
msgid "Modify Config"
msgstr ""
@@ -331,11 +355,15 @@ msgstr ""
msgid "Network Total Send"
msgstr ""
-#: src/views/domain/DomainAdd.vue:38
+#: src/views/domain/DomainAdd.vue:40
msgid "Next"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:61
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:48
+msgid "No"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:62
msgid "No, I'm rethink"
msgstr ""
@@ -343,14 +371,15 @@ msgstr ""
msgid "Not Found"
msgstr ""
-#: src/views/domain/CertInfo.vue:7
+#: src/views/domain/cert/CertInfo.vue:7
msgid "Not Valid Before: %{date}"
msgstr ""
-#: src/views/domain/methods.js:33
+#: src/views/domain/cert/IssueCert.vue:15
msgid ""
"Note: The server_name in the current configuration must be the domain name "
-"you need to get the certificate."
+"you need to get the\n"
+" certificate."
msgstr ""
#: src/router/index.js:137
@@ -361,6 +390,10 @@ msgstr ""
msgid "OS:"
msgstr ""
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:63
+msgid "Params"
+msgstr ""
+
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
msgid "Password"
msgstr ""
@@ -369,6 +402,11 @@ msgstr ""
msgid "Password (*)"
msgstr ""
+#: src/views/domain/ngx_conf/LocationEditor.vue:42
+#: src/views/domain/ngx_conf/LocationEditor.vue:88
+msgid "Path"
+msgstr ""
+
#: src/views/other/Install.vue:50
msgid "Please input your E-mail!"
msgstr ""
@@ -381,10 +419,6 @@ msgstr ""
msgid "Please input your username!"
msgstr ""
-#: src/views/domain/columns.js:67
-msgid "Private Key Path (ssl_certificate_key)"
-msgstr ""
-
#: src/views/other/About.vue:8
msgid "Project Team"
msgstr ""
@@ -397,25 +431,25 @@ msgstr ""
msgid "Receive"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:49
+#: src/components/StdDataDisplay/StdTable.vue:50
msgid "Restore"
msgstr ""
-#: src/views/domain/columns.js:16
-msgid "Root Directory (root)"
-msgstr ""
-
-#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:41
+#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:44
msgid "Save"
msgstr ""
-#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:44
-#: src/views/domain/DomainAdd.vue:55 src/views/domain/DomainEdit.vue:141
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:101
+msgid "Save Directive"
+msgstr ""
+
+#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:43
+#: src/views/domain/DomainEdit.vue:90
msgid "Save error %{msg}"
msgstr ""
-#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:34
-#: src/views/domain/DomainAdd.vue:52 src/views/domain/DomainEdit.vue:136
+#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:33
+#: src/views/domain/DomainEdit.vue:85
msgid "Saved successfully"
msgstr ""
@@ -423,7 +457,9 @@ msgstr ""
msgid "Send"
msgstr ""
-#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:75
+#: src/components/StdDataDisplay/StdTable.vue:145
+#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:52
+#: src/views/domain/DomainEdit.vue:63 src/views/domain/DomainEdit.vue:71
#: src/views/other/Login.vue:35
msgid "Server error"
msgstr ""
@@ -432,18 +468,29 @@ msgstr ""
msgid "Server Info"
msgstr ""
-#: src/views/domain/columns.js:10
-msgid "Server Names (server_name)"
+#: src/views/domain/cert/IssueCert.vue:33
+msgid "server_name not found in directives"
+msgstr ""
+
+#: src/views/domain/DomainAdd.vue:20 src/views/domain/DomainAdd.vue:11
+#: src/views/domain/DomainAdd.vue:1 src/views/domain/cert/IssueCert.vue:6
+#: src/views/domain/cert/IssueCert.vue:1
+msgid "server_name parameter is required"
+msgstr ""
+
+#: src/views/domain/cert/IssueCert.vue:9 src/views/domain/cert/IssueCert.vue:4
+#: src/views/domain/cert/IssueCert.vue:39
+msgid "server_name parameters more than one"
+msgstr ""
+
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:30
+msgid "Single Directive"
msgstr ""
#: src/router/index.js:43
msgid "Sites List"
msgstr ""
-#: src/views/domain/DomainAdd.vue:20 src/views/domain/DomainAdd.vue:9
-msgid "Skip"
-msgstr ""
-
#: src/views/domain/DomainList.vue:11
msgid "Status"
msgstr ""
@@ -452,7 +499,7 @@ msgstr ""
msgid "Storage"
msgstr ""
-#: src/views/domain/CertInfo.vue:4
+#: src/views/domain/cert/CertInfo.vue:4
msgid "Subject Name: %{name}"
msgstr ""
@@ -464,38 +511,21 @@ msgstr ""
msgid "System message"
msgstr ""
-#: src/router/index.js:77
+#: src/router/index.js:77 src/views/pty/Terminal.vue:12
msgid "Terminal"
msgstr ""
-#: src/views/domain/columns.js:50
+#: src/views/domain/cert/IssueCert.vue:17
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.
If "
-"you do not have a certificate before, please click \"Getting Certificate "
-"from Let's Encrypt\" first."
+"The certificate for the domain will be checked every hour,\n"
+" and will be renewed if it has been more than 1 month since it "
+"was last issued."
msgstr ""
#: src/views/other/Install.vue:120
msgid "The filename cannot contain the following characters: %{c}"
msgstr ""
-#: src/views/domain/DomainEdit.vue:17
-msgid ""
-"The following values will only take effect if you have the corresponding "
-"fields in your configuration file. The configuration filename cannot be "
-"changed after it has been created."
-msgstr ""
-
-#: src/views/domain/DomainAdd.vue:15 src/views/domain/DomainAdd.vue:4
-#: src/views/domain/DomainEdit.vue:24 src/views/domain/DomainEdit.vue:5
-msgid "This feature is not available in demo."
-msgstr ""
-
-#: src/views/domain/DomainEdit.vue:125
-msgid "This operation will lose the custom configuration."
-msgstr ""
-
#: src/views/config/Config.vue:11 src/views/domain/DomainList.vue:22
#: src/views/user/User.vue:29
msgid "Updated at"
@@ -513,10 +543,18 @@ msgstr ""
msgid "Username (*)"
msgstr ""
+#: src/views/domain/DomainAdd.vue:75 src/views/domain/cert/IssueCert.vue:49
+msgid "Warning"
+msgstr ""
+
#: src/views/dashboard/DashBoard.vue:58 src/views/dashboard/DashBoard.vue:298
msgid "Writes"
msgstr ""
-#: src/components/StdDataDisplay/StdTable.vue:55
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:47
+msgid "Yes"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:56
msgid "Yes, I'm sure"
msgstr ""
diff --git a/frontend/src/locale/zh_CN/LC_MESSAGES/app.mo b/frontend/src/locale/zh_CN/LC_MESSAGES/app.mo
index 74cab53b..4ce03376 100644
Binary files a/frontend/src/locale/zh_CN/LC_MESSAGES/app.mo and b/frontend/src/locale/zh_CN/LC_MESSAGES/app.mo differ
diff --git a/frontend/src/locale/zh_CN/LC_MESSAGES/app.po b/frontend/src/locale/zh_CN/LC_MESSAGES/app.po
index a4a5eea5..09d4a8bd 100644
--- a/frontend/src/locale/zh_CN/LC_MESSAGES/app.po
+++ b/frontend/src/locale/zh_CN/LC_MESSAGES/app.po
@@ -10,7 +10,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: easygettext\n"
-"X-Generator: Poedit 3.0.1\n"
+"X-Generator: Poedit 3.1\n"
#: src/router/index.js:107
msgid "404 Not Found"
@@ -25,34 +25,55 @@ msgstr "关于"
msgid "Action"
msgstr "操作"
-#: src/router/index.js:47 src/views/domain/DomainAdd.vue:27
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:89
+msgid "Add Directive Below"
+msgstr "在下面添加指令"
+
+#: src/views/domain/ngx_conf/LocationEditor.vue:70
+#: src/views/domain/ngx_conf/LocationEditor.vue:120
+msgid "Add Location"
+msgstr "添加 Location"
+
+#: src/router/index.js:47 src/views/domain/DomainAdd.vue:32
msgid "Add Site"
msgstr "添加站点"
-#: src/components/StdDataDisplay/StdTable.vue:67
+#: src/views/domain/DomainEdit.vue:57
+msgid "Advance Mode"
+msgstr "高级模式"
+
+#: src/components/StdDataDisplay/StdTable.vue:68
msgid "Are you sure you want to destroy?"
msgstr "你确定要删除?"
-#: src/components/StdDataDisplay/StdTable.vue:43
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:46
+msgid "Are you sure you want to remove this directive?"
+msgstr "你确定要删除这条指令?"
+
+#: src/components/StdDataDisplay/StdTable.vue:44
msgid "Are you sure you want to restore?"
msgstr "你确定要反删除?"
-#: src/views/domain/DomainAdd.vue:89 src/views/domain/DomainEdit.vue:163
+#: src/views/domain/cert/IssueCert.vue:82
msgid "Auto-renewal disabled for %{name}"
msgstr "成功关闭 %{name} 自动续签"
-#: src/views/domain/DomainAdd.vue:83 src/views/domain/DomainEdit.vue:157
+#: src/views/domain/cert/IssueCert.vue:76
msgid "Auto-renewal enabled for %{name}"
msgstr "成功启用 %{name} 自动续签"
-#: src/views/domain/DomainEdit.vue:38
+#: src/views/domain/DomainEdit.vue:41
msgid "Back"
msgstr "返回"
-#: src/views/domain/DomainAdd.vue:37
+#: src/views/domain/DomainAdd.vue:42
msgid "Base information"
msgstr "基本信息"
+#: src/views/domain/DomainEdit.vue:60
+msgid "Basic Mode"
+msgstr "基本模式"
+
#: src/views/other/About.vue:11
msgid "Build with"
msgstr "构建基于"
@@ -61,27 +82,26 @@ msgstr "构建基于"
msgid "Cancel"
msgstr "取消"
-#: src/views/domain/columns.js:44
-msgid "Certificate Auto-renewal"
-msgstr "证书自动续签"
-
-#: src/views/domain/CertInfo.vue:12 src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:12 src/views/domain/cert/CertInfo.vue:2
msgid "Certificate has expired"
msgstr "此证书已过期"
-#: src/views/domain/CertInfo.vue:16 src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:16 src/views/domain/cert/CertInfo.vue:2
msgid "Certificate is valid"
msgstr "此证书有效"
-#: src/views/domain/columns.js:61
-msgid "Certificate Path (ssl_certificate)"
-msgstr "TLS 证书路径 (ssl_certificate)"
-
-#: src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:2
msgid "Certificate Status"
msgstr "证书状态"
-#: src/views/domain/columns.js:4
+#: src/views/domain/ngx_conf/LocationEditor.vue:33
+#: src/views/domain/ngx_conf/LocationEditor.vue:77
+#: src/views/domain/ngx_conf/NgxConfigEditor.vue:52
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:67
+msgid "Comments"
+msgstr "注释"
+
+#: src/views/domain/DomainAdd.vue:56
msgid "Configuration Name"
msgstr "配置名称"
@@ -89,10 +109,15 @@ msgstr "配置名称"
msgid "Configurations"
msgstr "配置"
-#: src/views/domain/DomainAdd.vue:40
+#: src/views/domain/DomainAdd.vue:45
msgid "Configure SSL"
msgstr "配置 SSL"
+#: src/views/domain/ngx_conf/LocationEditor.vue:54
+#: src/views/domain/ngx_conf/LocationEditor.vue:100
+msgid "Content"
+msgstr "内容"
+
#: src/views/dashboard/DashBoard.vue:211
msgid "CPU Status"
msgstr "CPU 状态"
@@ -101,7 +126,7 @@ msgstr "CPU 状态"
msgid "CPU:"
msgstr ""
-#: src/views/domain/DomainAdd.vue:31 src/views/domain/DomainAdd.vue:5
+#: src/views/domain/DomainAdd.vue:50 src/views/domain/DomainAdd.vue:5
msgid "Create Another"
msgstr "再创建一个"
@@ -117,7 +142,11 @@ msgstr "仪表盘"
msgid "Database (Optional, default: database)"
msgstr "数据库 (可选,默认: database)"
-#: src/components/StdDataDisplay/StdTable.vue:73
+#: src/components/StdDataDisplay/StdTable.vue:142
+msgid "Delete ID: %{id}"
+msgstr "删除 ID: %{id}"
+
+#: src/components/StdDataDisplay/StdTable.vue:74
msgid "Destroy"
msgstr "删除"
@@ -129,16 +158,24 @@ msgstr "检测到版本更新,页面将会刷新。"
msgid "Development Mode"
msgstr "开发模式"
-#: src/views/domain/DomainAdd.vue:91 src/views/domain/DomainEdit.vue:165
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:57
+msgid "Directive"
+msgstr "指令"
+
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:20
+msgid "Directives"
+msgstr "指令"
+
+#: src/views/domain/cert/IssueCert.vue:84
msgid "Disable auto-renewal failed for %{name}"
msgstr "关闭 %{name} 自动续签失败"
-#: src/views/domain/DomainEdit.vue:63 src/views/domain/DomainList.vue:7
-#: src/views/domain/DomainList.vue:2 src/views/domain/DomainList.vue:17
+#: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainList.vue:17
+#: src/views/domain/DomainList.vue:32
msgid "Disabled"
msgstr "禁用"
-#: src/views/domain/DomainEdit.vue:179 src/views/domain/DomainList.vue:55
+#: src/views/domain/DomainEdit.vue:106 src/views/domain/DomainList.vue:55
msgid "Disabled successfully"
msgstr "禁用成功"
@@ -146,19 +183,15 @@ msgstr "禁用成功"
msgid "Disk IO"
msgstr "磁盘 IO"
-#: src/views/domain/DomainEdit.vue:124
-msgid "Do you want to change the template to support the TLS?"
-msgstr "你想要改变模板以支持 TLS 吗?"
-
-#: src/views/domain/DomainAdd.vue:112
+#: src/views/domain/DomainAdd.vue:135
msgid "Domain Config Created Successfully"
msgstr "域名配置文件创建成功"
-#: src/components/StdDataDisplay/StdTable.vue:37
+#: src/components/StdDataDisplay/StdTable.vue:38
msgid "Edit"
msgstr "编辑"
-#: src/views/domain/DomainEdit.vue:47
+#: src/views/domain/DomainEdit.vue:27
msgid "Edit %{n}"
msgstr "编辑 %{n}"
@@ -166,10 +199,6 @@ msgstr "编辑 %{n}"
msgid "Edit Configuration"
msgstr "编辑配置"
-#: src/views/domain/DomainEdit.vue:134
-msgid "Edit Configuration File"
-msgstr "编辑配置文件"
-
#: src/router/index.js:51
msgid "Edit Site"
msgstr "编辑站点"
@@ -178,38 +207,41 @@ msgstr "编辑站点"
msgid "Email (*)"
msgstr "邮箱 (*)"
-#: src/views/domain/DomainAdd.vue:85 src/views/domain/DomainEdit.vue:159
+#: src/views/domain/cert/IssueCert.vue:78
msgid "Enable auto-renewal failed for %{name}"
msgstr "启用 %{name} 自动续签失败"
-#: src/views/domain/DomainAdd.vue:40
+#: src/views/domain/DomainAdd.vue:39
msgid "Enable failed"
msgstr "启用失败"
-#: src/views/domain/columns.js:35
+#: src/views/domain/DomainAdd.vue:94
msgid "Enable TLS"
msgstr "启用 TLS"
-#: src/views/domain/DomainEdit.vue:54 src/views/domain/DomainEdit.vue:71
-#: src/views/domain/DomainList.vue:8 src/views/domain/DomainList.vue:3
-#: src/views/domain/DomainList.vue:16
+#: src/views/domain/DomainEdit.vue:34 src/views/domain/DomainEdit.vue:75
+#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:36
msgid "Enabled"
msgstr "启用"
-#: src/views/domain/DomainAdd.vue:37 src/views/domain/DomainEdit.vue:171
+#: src/views/domain/DomainAdd.vue:36 src/views/domain/DomainEdit.vue:98
#: src/views/domain/DomainList.vue:46
msgid "Enabled successfully"
msgstr "启用成功"
-#: src/views/domain/CertInfo.vue:5
+#: src/views/domain/cert/IssueCert.vue:36
+msgid "Encrypt website with Let's Encrypt"
+msgstr "用 Let's Encrypt 对网站进行加密"
+
+#: src/views/domain/cert/CertInfo.vue:5
msgid "Expiration Date: %{date}"
msgstr "过期时间: %{date}"
-#: src/views/domain/DomainEdit.vue:182 src/views/domain/DomainList.vue:59
+#: src/views/domain/DomainEdit.vue:109 src/views/domain/DomainList.vue:59
msgid "Failed to disable %{msg}"
msgstr "禁用失败 %{msg}"
-#: src/views/domain/DomainEdit.vue:174 src/views/domain/DomainList.vue:50
+#: src/views/domain/DomainEdit.vue:101 src/views/domain/DomainList.vue:50
msgid "Failed to enable %{msg}"
msgstr "启用失败 %{msg}"
@@ -217,16 +249,11 @@ msgstr "启用失败 %{msg}"
msgid "File Not Found"
msgstr "未找到文件"
-#: src/views/domain/DomainAdd.vue:43
+#: src/views/domain/DomainAdd.vue:48
msgid "Finished"
msgstr "完成"
-#: src/views/domain/DomainAdd.vue:13 src/views/domain/DomainAdd.vue:2
-#: src/views/domain/DomainEdit.vue:22 src/views/domain/DomainEdit.vue:3
-msgid "Getting Certificate from Let's Encrypt"
-msgstr "从 Let's Encrypt 获取证书"
-
-#: src/views/domain/methods.js:34
+#: src/views/domain/methods.js:6
msgid "Getting the certificate, please wait..."
msgstr "正在获取证书,请稍等..."
@@ -234,23 +261,11 @@ msgstr "正在获取证书,请稍等..."
msgid "Home"
msgstr "首页"
-#: src/views/domain/columns.js:28
-msgid "HTTP Listen Port"
-msgstr "HTTP 监听端口"
-
-#: src/views/domain/columns.js:54
-msgid "HTTPS Listen Port"
-msgstr "HTTPS 监听端口"
-
-#: src/views/domain/columns.js:22
-msgid "Index (index)"
-msgstr "网站首页 (index)"
-
#: src/router/index.js:95 src/views/other/Install.vue:51
msgid "Install"
msgstr "安装"
-#: src/views/domain/CertInfo.vue:3
+#: src/views/domain/cert/CertInfo.vue:3
msgid "Intermediate Certification Authorities: %{issuer}"
msgstr "中级证书颁发机构: %{issuer}"
@@ -271,6 +286,14 @@ msgstr "开源许可"
msgid "Load Averages:"
msgstr "系统负载:"
+#: src/views/domain/ngx_conf/LocationEditor.vue:26
+msgid "Location"
+msgstr "Location"
+
+#: src/views/domain/ngx_conf/LocationEditor.vue:16
+msgid "Locations"
+msgstr "Locations"
+
#: src/router/index.js:101 src/views/other/Login.vue:25
msgid "Login"
msgstr "登录"
@@ -283,10 +306,11 @@ msgstr "登录成功"
msgid "Logout successful"
msgstr "登出成功"
-#: src/views/domain/DomainEdit.vue:25 src/views/domain/DomainEdit.vue:6
+#: src/views/domain/cert/IssueCert.vue:19
msgid ""
-"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\n"
+" directory to HTTPChallengePort (default: 9180) before getting "
+"the certificate."
msgstr ""
"在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 "
"HTTPChallengePort (默认: 9180)"
@@ -295,7 +319,7 @@ msgstr ""
msgid "Manage Configs"
msgstr "配置管理"
-#: src/router/index.js:35 src/views/domain/DomainList.vue:21
+#: src/router/index.js:35 src/views/domain/DomainList.vue:12
msgid "Manage Sites"
msgstr "网站管理"
@@ -311,7 +335,7 @@ msgstr "内存"
msgid "Memory and Storage"
msgstr "内存与存储"
-#: src/views/domain/DomainAdd.vue:28 src/views/domain/DomainAdd.vue:2
+#: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainAdd.vue:2
msgid "Modify Config"
msgstr "修改配置文件"
@@ -335,11 +359,15 @@ msgstr "下载流量"
msgid "Network Total Send"
msgstr "上传流量"
-#: src/views/domain/DomainAdd.vue:38
+#: src/views/domain/DomainAdd.vue:40
msgid "Next"
msgstr "下一步"
-#: src/components/StdDataDisplay/StdTable.vue:61
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:48
+msgid "No"
+msgstr "取消"
+
+#: src/components/StdDataDisplay/StdTable.vue:62
msgid "No, I'm rethink"
msgstr "再想想"
@@ -347,14 +375,15 @@ msgstr "再想想"
msgid "Not Found"
msgstr "找不到页面"
-#: src/views/domain/CertInfo.vue:7
+#: src/views/domain/cert/CertInfo.vue:7
msgid "Not Valid Before: %{date}"
msgstr "此前无效: %{date}"
-#: src/views/domain/methods.js:33
+#: src/views/domain/cert/IssueCert.vue:15
msgid ""
"Note: The server_name in the current configuration must be the domain name "
-"you need to get the certificate."
+"you need to get the\n"
+" certificate."
msgstr "注意:当前配置中的 server_name 必须为需要申请证书的域名。"
#: src/router/index.js:137
@@ -365,6 +394,10 @@ msgstr "确定"
msgid "OS:"
msgstr ""
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:63
+msgid "Params"
+msgstr "参数"
+
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
msgid "Password"
msgstr "密码"
@@ -373,6 +406,11 @@ msgstr "密码"
msgid "Password (*)"
msgstr "密码 (*)"
+#: src/views/domain/ngx_conf/LocationEditor.vue:42
+#: src/views/domain/ngx_conf/LocationEditor.vue:88
+msgid "Path"
+msgstr "路径"
+
#: src/views/other/Install.vue:50
msgid "Please input your E-mail!"
msgstr "请输入您的邮箱!"
@@ -385,10 +423,6 @@ msgstr "请输入您的密码!"
msgid "Please input your username!"
msgstr "请输入您的用户名!"
-#: src/views/domain/columns.js:67
-msgid "Private Key Path (ssl_certificate_key)"
-msgstr "私钥路径 (ssl_certificate_key)"
-
#: src/views/other/About.vue:8
msgid "Project Team"
msgstr "项目团队"
@@ -401,25 +435,25 @@ msgstr "读"
msgid "Receive"
msgstr "下载"
-#: src/components/StdDataDisplay/StdTable.vue:49
+#: src/components/StdDataDisplay/StdTable.vue:50
msgid "Restore"
msgstr "反删除"
-#: src/views/domain/columns.js:16
-msgid "Root Directory (root)"
-msgstr "网站根目录 (root)"
-
-#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:41
+#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:44
msgid "Save"
msgstr "保存"
-#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:44
-#: src/views/domain/DomainAdd.vue:55 src/views/domain/DomainEdit.vue:141
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:101
+msgid "Save Directive"
+msgstr "保存指令"
+
+#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:43
+#: src/views/domain/DomainEdit.vue:90
msgid "Save error %{msg}"
msgstr "保存错误 %{msg}"
-#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:34
-#: src/views/domain/DomainAdd.vue:52 src/views/domain/DomainEdit.vue:136
+#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:33
+#: src/views/domain/DomainEdit.vue:85
msgid "Saved successfully"
msgstr "保存成功"
@@ -427,7 +461,9 @@ msgstr "保存成功"
msgid "Send"
msgstr "上传"
-#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:75
+#: src/components/StdDataDisplay/StdTable.vue:145
+#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:52
+#: src/views/domain/DomainEdit.vue:63 src/views/domain/DomainEdit.vue:71
#: src/views/other/Login.vue:35
msgid "Server error"
msgstr "服务器错误"
@@ -436,18 +472,29 @@ msgstr "服务器错误"
msgid "Server Info"
msgstr "服务器信息"
-#: src/views/domain/columns.js:10
-msgid "Server Names (server_name)"
-msgstr "网站域名 (server_name)"
+#: src/views/domain/cert/IssueCert.vue:33
+msgid "server_name not found in directives"
+msgstr "未在指令集合中找到 server_name"
+
+#: src/views/domain/DomainAdd.vue:20 src/views/domain/DomainAdd.vue:11
+#: src/views/domain/DomainAdd.vue:1 src/views/domain/cert/IssueCert.vue:6
+#: src/views/domain/cert/IssueCert.vue:1
+msgid "server_name parameter is required"
+msgstr "必须为 server_name 指令指明参数"
+
+#: src/views/domain/cert/IssueCert.vue:9 src/views/domain/cert/IssueCert.vue:4
+#: src/views/domain/cert/IssueCert.vue:39
+msgid "server_name parameters more than one"
+msgstr "server_name 指令包含多个参数"
+
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:30
+msgid "Single Directive"
+msgstr "单行指令"
#: src/router/index.js:43
msgid "Sites List"
msgstr "站点列表"
-#: src/views/domain/DomainAdd.vue:20 src/views/domain/DomainAdd.vue:9
-msgid "Skip"
-msgstr "跳过"
-
#: src/views/domain/DomainList.vue:11
msgid "Status"
msgstr "状态"
@@ -456,7 +503,7 @@ msgstr "状态"
msgid "Storage"
msgstr "存储"
-#: src/views/domain/CertInfo.vue:4
+#: src/views/domain/cert/CertInfo.vue:4
msgid "Subject Name: %{name}"
msgstr "主体名称: %{name}"
@@ -468,42 +515,22 @@ msgstr ""
msgid "System message"
msgstr "系统消息"
-#: src/router/index.js:77
+#: src/router/index.js:77 src/views/pty/Terminal.vue:12
msgid "Terminal"
msgstr "终端"
-#: src/views/domain/columns.js:50
+#: src/views/domain/cert/IssueCert.vue:17
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.
If "
-"you do not have a certificate before, please click \"Getting Certificate "
-"from Let's Encrypt\" first."
+"The certificate for the domain will be checked every hour,\n"
+" and will be renewed if it has been more than 1 month since it "
+"was last issued."
msgstr ""
"系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。"
-"
如果您之前没有证书,请先点击 \"从 Let's Encrypt 获取证书\"。"
#: src/views/other/Install.vue:120
msgid "The filename cannot contain the following characters: %{c}"
msgstr "文件名不能包含以下字符: %{c}"
-#: src/views/domain/DomainEdit.vue:17
-msgid ""
-"The following values will only take effect if you have the corresponding "
-"fields in your configuration file. The configuration filename cannot be "
-"changed after it has been created."
-msgstr ""
-"只有在您的配置文件中有相应字段时,下列的配置才能生效。配置文件名称创建后不"
-"可修改。"
-
-#: src/views/domain/DomainAdd.vue:15 src/views/domain/DomainAdd.vue:4
-#: src/views/domain/DomainEdit.vue:24 src/views/domain/DomainEdit.vue:5
-msgid "This feature is not available in demo."
-msgstr "该功能在 Demo 中不可用。"
-
-#: src/views/domain/DomainEdit.vue:125
-msgid "This operation will lose the custom configuration."
-msgstr "该操作将会丢失自定义配置。"
-
#: src/views/config/Config.vue:11 src/views/domain/DomainList.vue:22
#: src/views/user/User.vue:29
msgid "Updated at"
@@ -521,14 +548,81 @@ msgstr "用户名"
msgid "Username (*)"
msgstr "用户名 (*)"
+#: src/views/domain/DomainAdd.vue:75 src/views/domain/cert/IssueCert.vue:49
+msgid "Warning"
+msgstr "警告"
+
#: src/views/dashboard/DashBoard.vue:58 src/views/dashboard/DashBoard.vue:298
msgid "Writes"
msgstr "写"
-#: src/components/StdDataDisplay/StdTable.vue:55
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:47
+msgid "Yes"
+msgstr "是的"
+
+#: src/components/StdDataDisplay/StdTable.vue:56
msgid "Yes, I'm sure"
msgstr "是的"
+#~ msgid "Certificate Auto-renewal"
+#~ msgstr "证书自动续签"
+
+#~ msgid "Certificate Path (ssl_certificate)"
+#~ msgstr "TLS 证书路径 (ssl_certificate)"
+
+#~ msgid "HTTP Listen Port"
+#~ msgstr "HTTP 监听端口"
+
+#~ msgid "HTTPS Listen Port"
+#~ msgstr "HTTPS 监听端口"
+
+#~ msgid "Index (index)"
+#~ msgstr "网站首页 (index)"
+
+#~ msgid "Private Key Path (ssl_certificate_key)"
+#~ msgstr "私钥路径 (ssl_certificate_key)"
+
+#~ msgid "Root Directory (root)"
+#~ msgstr "网站根目录 (root)"
+
+#~ msgid "Server Names (server_name)"
+#~ msgstr "网站域名 (server_name)"
+
+#~ 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.
If "
+#~ "you do not have a certificate before, please click \"Getting Certificate "
+#~ "from Let's Encrypt\" first."
+#~ msgstr ""
+#~ "系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续"
+#~ "签。
如果您之前没有证书,请先点击 \"从 Let's Encrypt 获取证书\"。"
+
+#~ msgid "Do you want to change the template to support the TLS?"
+#~ msgstr "你想要改变模板以支持 TLS 吗?"
+
+#~ msgid "Edit Configuration File"
+#~ msgstr "编辑配置文件"
+
+#~ msgid "Getting Certificate from Let's Encrypt"
+#~ msgstr "从 Let's Encrypt 获取证书"
+
+#~ msgid "Skip"
+#~ msgstr "跳过"
+
+#~ msgid ""
+#~ "The following values will only take effect if you have the corresponding "
+#~ "fields in your configuration file. The configuration filename cannot be "
+#~ "changed after it has been created."
+#~ msgstr ""
+#~ "只有在您的配置文件中有相应字段时,下列的配置才能生效。配置文件名称创建后不"
+#~ "可修改。"
+
+#~ msgid "This feature is not available in demo."
+#~ msgstr "该功能在 Demo 中不可用。"
+
+#~ msgid "This operation will lose the custom configuration."
+#~ msgstr "该操作将会丢失自定义配置。"
+
#~ msgid ""
#~ "Add site here first, then you can configure TLS on the domain edit page."
#~ msgstr "在这里添加站点,完成后可进入编辑页面配置 TLS。"
diff --git a/frontend/src/locale/zh_TW/LC_MESSAGES/app.po b/frontend/src/locale/zh_TW/LC_MESSAGES/app.po
index c935f252..176898a8 100644
--- a/frontend/src/locale/zh_TW/LC_MESSAGES/app.po
+++ b/frontend/src/locale/zh_TW/LC_MESSAGES/app.po
@@ -26,34 +26,57 @@ msgstr "關於"
msgid "Action"
msgstr "操作"
-#: src/router/index.js:47 src/views/domain/DomainAdd.vue:27
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:89
+msgid "Add Directive Below"
+msgstr ""
+
+#: src/views/domain/ngx_conf/LocationEditor.vue:70
+#: src/views/domain/ngx_conf/LocationEditor.vue:120
+#, fuzzy
+msgid "Add Location"
+msgstr "操作"
+
+#: src/router/index.js:47 src/views/domain/DomainAdd.vue:32
msgid "Add Site"
msgstr "新增站點"
-#: src/components/StdDataDisplay/StdTable.vue:67
+#: src/views/domain/DomainEdit.vue:57
+msgid "Advance Mode"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:68
msgid "Are you sure you want to destroy?"
msgstr "你确定要删除?"
-#: src/components/StdDataDisplay/StdTable.vue:43
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:46
+#, fuzzy
+msgid "Are you sure you want to remove this directive?"
+msgstr "你确定要反删除?"
+
+#: src/components/StdDataDisplay/StdTable.vue:44
msgid "Are you sure you want to restore?"
msgstr "你确定要反删除?"
-#: src/views/domain/DomainAdd.vue:89 src/views/domain/DomainEdit.vue:163
+#: src/views/domain/cert/IssueCert.vue:82
msgid "Auto-renewal disabled for %{name}"
msgstr "成功關閉 %{name} 自動續簽"
-#: src/views/domain/DomainAdd.vue:83 src/views/domain/DomainEdit.vue:157
+#: src/views/domain/cert/IssueCert.vue:76
msgid "Auto-renewal enabled for %{name}"
msgstr "成功啟用 %{name} 自動續簽"
-#: src/views/domain/DomainEdit.vue:38
+#: src/views/domain/DomainEdit.vue:41
msgid "Back"
msgstr "返回"
-#: src/views/domain/DomainAdd.vue:37
+#: src/views/domain/DomainAdd.vue:42
msgid "Base information"
msgstr "基本訊息"
+#: src/views/domain/DomainEdit.vue:60
+msgid "Basic Mode"
+msgstr ""
+
#: src/views/other/About.vue:11
msgid "Build with"
msgstr "構建基於"
@@ -62,27 +85,26 @@ msgstr "構建基於"
msgid "Cancel"
msgstr "取消"
-#: src/views/domain/columns.js:44
-msgid "Certificate Auto-renewal"
-msgstr "證書自動續簽"
-
-#: src/views/domain/CertInfo.vue:12 src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:12 src/views/domain/cert/CertInfo.vue:2
msgid "Certificate has expired"
msgstr "此證書已過期"
-#: src/views/domain/CertInfo.vue:16 src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:16 src/views/domain/cert/CertInfo.vue:2
msgid "Certificate is valid"
msgstr "此證書有效"
-#: src/views/domain/columns.js:61
-msgid "Certificate Path (ssl_certificate)"
-msgstr "TLS 證書路徑 (ssl_certificate)"
-
-#: src/views/domain/CertInfo.vue:2
+#: src/views/domain/cert/CertInfo.vue:2
msgid "Certificate Status"
msgstr "證書狀態"
-#: src/views/domain/columns.js:4
+#: src/views/domain/ngx_conf/LocationEditor.vue:33
+#: src/views/domain/ngx_conf/LocationEditor.vue:77
+#: src/views/domain/ngx_conf/NgxConfigEditor.vue:52
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:67
+msgid "Comments"
+msgstr ""
+
+#: src/views/domain/DomainAdd.vue:56
msgid "Configuration Name"
msgstr "配置名稱"
@@ -90,10 +112,15 @@ msgstr "配置名稱"
msgid "Configurations"
msgstr "配置"
-#: src/views/domain/DomainAdd.vue:40
+#: src/views/domain/DomainAdd.vue:45
msgid "Configure SSL"
msgstr "配置 SSL"
+#: src/views/domain/ngx_conf/LocationEditor.vue:54
+#: src/views/domain/ngx_conf/LocationEditor.vue:100
+msgid "Content"
+msgstr ""
+
#: src/views/dashboard/DashBoard.vue:211
msgid "CPU Status"
msgstr "中央處理器狀態"
@@ -102,7 +129,7 @@ msgstr "中央處理器狀態"
msgid "CPU:"
msgstr "中央處理器:"
-#: src/views/domain/DomainAdd.vue:31 src/views/domain/DomainAdd.vue:5
+#: src/views/domain/DomainAdd.vue:50 src/views/domain/DomainAdd.vue:5
msgid "Create Another"
msgstr "再創建一個"
@@ -118,7 +145,11 @@ msgstr "儀表盤"
msgid "Database (Optional, default: database)"
msgstr "資料庫 (可選,預設: database)"
-#: src/components/StdDataDisplay/StdTable.vue:73
+#: src/components/StdDataDisplay/StdTable.vue:142
+msgid "Delete ID: %{id}"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:74
msgid "Destroy"
msgstr "删除"
@@ -130,16 +161,24 @@ msgstr "檢測到版本更新,頁面將會重新整理。"
msgid "Development Mode"
msgstr "開發模式"
-#: src/views/domain/DomainAdd.vue:91 src/views/domain/DomainEdit.vue:165
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:57
+msgid "Directive"
+msgstr ""
+
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:20
+msgid "Directives"
+msgstr ""
+
+#: src/views/domain/cert/IssueCert.vue:84
msgid "Disable auto-renewal failed for %{name}"
msgstr "關閉 %{name} 自動續簽失敗"
-#: src/views/domain/DomainEdit.vue:63 src/views/domain/DomainList.vue:7
-#: src/views/domain/DomainList.vue:2 src/views/domain/DomainList.vue:17
+#: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainList.vue:17
+#: src/views/domain/DomainList.vue:32
msgid "Disabled"
msgstr "禁用"
-#: src/views/domain/DomainEdit.vue:179 src/views/domain/DomainList.vue:55
+#: src/views/domain/DomainEdit.vue:106 src/views/domain/DomainList.vue:55
msgid "Disabled successfully"
msgstr "禁用成功"
@@ -147,19 +186,15 @@ msgstr "禁用成功"
msgid "Disk IO"
msgstr "磁碟 IO"
-#: src/views/domain/DomainEdit.vue:124
-msgid "Do you want to change the template to support the TLS?"
-msgstr "你想要改變模板以支援 TLS 嗎?"
-
-#: src/views/domain/DomainAdd.vue:112
+#: src/views/domain/DomainAdd.vue:135
msgid "Domain Config Created Successfully"
msgstr "域名配置文件創建成功"
-#: src/components/StdDataDisplay/StdTable.vue:37
+#: src/components/StdDataDisplay/StdTable.vue:38
msgid "Edit"
msgstr "编辑"
-#: src/views/domain/DomainEdit.vue:47
+#: src/views/domain/DomainEdit.vue:27
msgid "Edit %{n}"
msgstr "編輯 %{n}"
@@ -167,10 +202,6 @@ msgstr "編輯 %{n}"
msgid "Edit Configuration"
msgstr "編輯配置"
-#: src/views/domain/DomainEdit.vue:134
-msgid "Edit Configuration File"
-msgstr "編輯配置檔案"
-
#: src/router/index.js:51
msgid "Edit Site"
msgstr "編輯站點"
@@ -179,38 +210,41 @@ msgstr "編輯站點"
msgid "Email (*)"
msgstr "郵箱 (*)"
-#: src/views/domain/DomainAdd.vue:85 src/views/domain/DomainEdit.vue:159
+#: src/views/domain/cert/IssueCert.vue:78
msgid "Enable auto-renewal failed for %{name}"
msgstr "啟用 %{name} 自動續簽失敗"
-#: src/views/domain/DomainAdd.vue:40
+#: src/views/domain/DomainAdd.vue:39
msgid "Enable failed"
msgstr "啟用失敗"
-#: src/views/domain/columns.js:35
+#: src/views/domain/DomainAdd.vue:94
msgid "Enable TLS"
msgstr "啟用 TLS"
-#: src/views/domain/DomainEdit.vue:54 src/views/domain/DomainEdit.vue:71
-#: src/views/domain/DomainList.vue:8 src/views/domain/DomainList.vue:3
-#: src/views/domain/DomainList.vue:16
+#: src/views/domain/DomainEdit.vue:34 src/views/domain/DomainEdit.vue:75
+#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:36
msgid "Enabled"
msgstr "啟用"
-#: src/views/domain/DomainAdd.vue:37 src/views/domain/DomainEdit.vue:171
+#: src/views/domain/DomainAdd.vue:36 src/views/domain/DomainEdit.vue:98
#: src/views/domain/DomainList.vue:46
msgid "Enabled successfully"
msgstr "啟用成功"
-#: src/views/domain/CertInfo.vue:5
+#: src/views/domain/cert/IssueCert.vue:36
+msgid "Encrypt website with Let's Encrypt"
+msgstr ""
+
+#: src/views/domain/cert/CertInfo.vue:5
msgid "Expiration Date: %{date}"
msgstr "過期時間: %{date}"
-#: src/views/domain/DomainEdit.vue:182 src/views/domain/DomainList.vue:59
+#: src/views/domain/DomainEdit.vue:109 src/views/domain/DomainList.vue:59
msgid "Failed to disable %{msg}"
msgstr "禁用失敗 %{msg}"
-#: src/views/domain/DomainEdit.vue:174 src/views/domain/DomainList.vue:50
+#: src/views/domain/DomainEdit.vue:101 src/views/domain/DomainList.vue:50
msgid "Failed to enable %{msg}"
msgstr "啟用失敗 %{msg}"
@@ -218,16 +252,11 @@ msgstr "啟用失敗 %{msg}"
msgid "File Not Found"
msgstr "未找到檔案"
-#: src/views/domain/DomainAdd.vue:43
+#: src/views/domain/DomainAdd.vue:48
msgid "Finished"
msgstr "完成"
-#: src/views/domain/DomainAdd.vue:13 src/views/domain/DomainAdd.vue:2
-#: src/views/domain/DomainEdit.vue:22 src/views/domain/DomainEdit.vue:3
-msgid "Getting Certificate from Let's Encrypt"
-msgstr "從 Let's Encrypt 獲取證書"
-
-#: src/views/domain/methods.js:34
+#: src/views/domain/methods.js:6
msgid "Getting the certificate, please wait..."
msgstr "正在獲取證書,請稍等..."
@@ -235,23 +264,11 @@ msgstr "正在獲取證書,請稍等..."
msgid "Home"
msgstr "首頁"
-#: src/views/domain/columns.js:28
-msgid "HTTP Listen Port"
-msgstr "HTTP 監聽埠"
-
-#: src/views/domain/columns.js:54
-msgid "HTTPS Listen Port"
-msgstr "HTTPS 監聽埠"
-
-#: src/views/domain/columns.js:22
-msgid "Index (index)"
-msgstr "網站首頁 (index)"
-
#: src/router/index.js:95 src/views/other/Install.vue:51
msgid "Install"
msgstr "安裝"
-#: src/views/domain/CertInfo.vue:3
+#: src/views/domain/cert/CertInfo.vue:3
msgid "Intermediate Certification Authorities: %{issuer}"
msgstr "中級證書頒發機構: %{issuer}"
@@ -272,6 +289,16 @@ msgstr "開源許可"
msgid "Load Averages:"
msgstr "系統負載:"
+#: src/views/domain/ngx_conf/LocationEditor.vue:26
+#, fuzzy
+msgid "Location"
+msgstr "操作"
+
+#: src/views/domain/ngx_conf/LocationEditor.vue:16
+#, fuzzy
+msgid "Locations"
+msgstr "操作"
+
#: src/router/index.js:101 src/views/other/Login.vue:25
msgid "Login"
msgstr "登入"
@@ -284,10 +311,12 @@ msgstr "登入成功"
msgid "Logout successful"
msgstr "登出成功"
-#: src/views/domain/DomainEdit.vue:25 src/views/domain/DomainEdit.vue:6
+#: src/views/domain/cert/IssueCert.vue:19
+#, fuzzy
msgid ""
-"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\n"
+" directory to HTTPChallengePort (default: 9180) before getting "
+"the certificate."
msgstr ""
"在獲取證書前,請確保配置檔案中已將 .well-known 目錄反向代理到 "
"HTTPChallengePort (預設: 9180)"
@@ -296,7 +325,7 @@ msgstr ""
msgid "Manage Configs"
msgstr "配置管理"
-#: src/router/index.js:35 src/views/domain/DomainList.vue:21
+#: src/router/index.js:35 src/views/domain/DomainList.vue:12
msgid "Manage Sites"
msgstr "網站管理"
@@ -312,7 +341,7 @@ msgstr "記憶體"
msgid "Memory and Storage"
msgstr "記憶體和存儲"
-#: src/views/domain/DomainAdd.vue:28 src/views/domain/DomainAdd.vue:2
+#: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainAdd.vue:2
msgid "Modify Config"
msgstr "修改配置"
@@ -336,11 +365,15 @@ msgstr "下載流量"
msgid "Network Total Send"
msgstr "上傳流量"
-#: src/views/domain/DomainAdd.vue:38
+#: src/views/domain/DomainAdd.vue:40
msgid "Next"
msgstr "下一步"
-#: src/components/StdDataDisplay/StdTable.vue:61
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:48
+msgid "No"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:62
msgid "No, I'm rethink"
msgstr "再想想"
@@ -348,14 +381,16 @@ msgstr "再想想"
msgid "Not Found"
msgstr "找不到頁面"
-#: src/views/domain/CertInfo.vue:7
+#: src/views/domain/cert/CertInfo.vue:7
msgid "Not Valid Before: %{date}"
msgstr "此前無效: %{date}"
-#: src/views/domain/methods.js:33
+#: src/views/domain/cert/IssueCert.vue:15
+#, fuzzy
msgid ""
"Note: The server_name in the current configuration must be the domain name "
-"you need to get the certificate."
+"you need to get the\n"
+" certificate."
msgstr "注意:當前配置中的 server_name 必須為需要申請證書的域名。"
#: src/router/index.js:137
@@ -366,6 +401,10 @@ msgstr "確定"
msgid "OS:"
msgstr "作業系統:"
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:63
+msgid "Params"
+msgstr ""
+
#: src/views/other/Login.vue:56 src/views/user/User.vue:13
msgid "Password"
msgstr "密碼"
@@ -374,6 +413,11 @@ msgstr "密碼"
msgid "Password (*)"
msgstr "密碼 (*)"
+#: src/views/domain/ngx_conf/LocationEditor.vue:42
+#: src/views/domain/ngx_conf/LocationEditor.vue:88
+msgid "Path"
+msgstr ""
+
#: src/views/other/Install.vue:50
msgid "Please input your E-mail!"
msgstr "請輸入您的郵箱!"
@@ -386,10 +430,6 @@ msgstr "請輸入您的密碼!"
msgid "Please input your username!"
msgstr "請輸入您的使用者名稱!"
-#: src/views/domain/columns.js:67
-msgid "Private Key Path (ssl_certificate_key)"
-msgstr "私鑰路徑 (ssl_certificate_key)"
-
#: src/views/other/About.vue:8
msgid "Project Team"
msgstr "專案團隊"
@@ -402,25 +442,25 @@ msgstr "讀"
msgid "Receive"
msgstr "下載"
-#: src/components/StdDataDisplay/StdTable.vue:49
+#: src/components/StdDataDisplay/StdTable.vue:50
msgid "Restore"
msgstr "反删除"
-#: src/views/domain/columns.js:16
-msgid "Root Directory (root)"
-msgstr "網站根目錄 (root)"
-
-#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:41
+#: src/views/config/ConfigEdit.vue:6 src/views/domain/DomainEdit.vue:44
msgid "Save"
msgstr "儲存"
-#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:44
-#: src/views/domain/DomainAdd.vue:55 src/views/domain/DomainEdit.vue:141
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:101
+msgid "Save Directive"
+msgstr ""
+
+#: src/views/config/ConfigEdit.vue:47 src/views/domain/DomainAdd.vue:43
+#: src/views/domain/DomainEdit.vue:90
msgid "Save error %{msg}"
msgstr "儲存錯誤 %{msg}"
-#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:34
-#: src/views/domain/DomainAdd.vue:52 src/views/domain/DomainEdit.vue:136
+#: src/views/config/ConfigEdit.vue:44 src/views/domain/DomainAdd.vue:33
+#: src/views/domain/DomainEdit.vue:85
msgid "Saved successfully"
msgstr "儲存成功"
@@ -428,7 +468,9 @@ msgstr "儲存成功"
msgid "Send"
msgstr "上傳"
-#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:75
+#: src/components/StdDataDisplay/StdTable.vue:145
+#: src/views/config/ConfigEdit.vue:35 src/views/domain/DomainEdit.vue:52
+#: src/views/domain/DomainEdit.vue:63 src/views/domain/DomainEdit.vue:71
#: src/views/other/Login.vue:35
msgid "Server error"
msgstr "伺服器錯誤"
@@ -437,18 +479,29 @@ msgstr "伺服器錯誤"
msgid "Server Info"
msgstr "伺服器資訊"
-#: src/views/domain/columns.js:10
-msgid "Server Names (server_name)"
-msgstr "網站域名 (server_name)"
+#: src/views/domain/cert/IssueCert.vue:33
+msgid "server_name not found in directives"
+msgstr ""
+
+#: src/views/domain/DomainAdd.vue:20 src/views/domain/DomainAdd.vue:11
+#: src/views/domain/DomainAdd.vue:1 src/views/domain/cert/IssueCert.vue:6
+#: src/views/domain/cert/IssueCert.vue:1
+msgid "server_name parameter is required"
+msgstr ""
+
+#: src/views/domain/cert/IssueCert.vue:9 src/views/domain/cert/IssueCert.vue:4
+#: src/views/domain/cert/IssueCert.vue:39
+msgid "server_name parameters more than one"
+msgstr ""
+
+#: src/views/domain/ngx_conf/directive/DirectiveAdd.vue:30
+msgid "Single Directive"
+msgstr ""
#: src/router/index.js:43
msgid "Sites List"
msgstr "站點列表"
-#: src/views/domain/DomainAdd.vue:20 src/views/domain/DomainAdd.vue:9
-msgid "Skip"
-msgstr "跳過"
-
#: src/views/domain/DomainList.vue:11
msgid "Status"
msgstr "狀態"
@@ -457,7 +510,7 @@ msgstr "狀態"
msgid "Storage"
msgstr "儲存"
-#: src/views/domain/CertInfo.vue:4
+#: src/views/domain/cert/CertInfo.vue:4
msgid "Subject Name: %{name}"
msgstr "主體名稱: %{name}"
@@ -469,16 +522,16 @@ msgstr "交換空間"
msgid "System message"
msgstr "系統訊息"
-#: src/router/index.js:77
+#: src/router/index.js:77 src/views/pty/Terminal.vue:12
msgid "Terminal"
msgstr "终端"
-#: src/views/domain/columns.js:50
+#: src/views/domain/cert/IssueCert.vue:17
+#, fuzzy
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.
If "
-"you do not have a certificate before, please click \"Getting Certificate "
-"from Let's Encrypt\" first."
+"The certificate for the domain will be checked every hour,\n"
+" and will be renewed if it has been more than 1 month since it "
+"was last issued."
msgstr ""
"系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續簽。"
"
如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。"
@@ -487,24 +540,6 @@ msgstr ""
msgid "The filename cannot contain the following characters: %{c}"
msgstr "檔名不能包含以下字元: %{c}"
-#: src/views/domain/DomainEdit.vue:17
-msgid ""
-"The following values will only take effect if you have the corresponding "
-"fields in your configuration file. The configuration filename cannot be "
-"changed after it has been created."
-msgstr ""
-"只有在您的配置檔案中有相應欄位時,下列的配置才能生效。配置檔名稱建立後不可"
-"修改。"
-
-#: src/views/domain/DomainAdd.vue:15 src/views/domain/DomainAdd.vue:4
-#: src/views/domain/DomainEdit.vue:24 src/views/domain/DomainEdit.vue:5
-msgid "This feature is not available in demo."
-msgstr "此功能在演示中不可用。"
-
-#: src/views/domain/DomainEdit.vue:125
-msgid "This operation will lose the custom configuration."
-msgstr "該操作將會丟失自定義配置。"
-
#: src/views/config/Config.vue:11 src/views/domain/DomainList.vue:22
#: src/views/user/User.vue:29
msgid "Updated at"
@@ -522,14 +557,81 @@ msgstr "使用者名稱"
msgid "Username (*)"
msgstr "使用者名稱 (*)"
+#: src/views/domain/DomainAdd.vue:75 src/views/domain/cert/IssueCert.vue:49
+msgid "Warning"
+msgstr ""
+
#: src/views/dashboard/DashBoard.vue:58 src/views/dashboard/DashBoard.vue:298
msgid "Writes"
msgstr "寫"
-#: src/components/StdDataDisplay/StdTable.vue:55
+#: src/views/domain/ngx_conf/directive/DirectiveEditor.vue:47
+msgid "Yes"
+msgstr ""
+
+#: src/components/StdDataDisplay/StdTable.vue:56
msgid "Yes, I'm sure"
msgstr "是的"
+#~ msgid "Certificate Auto-renewal"
+#~ msgstr "證書自動續簽"
+
+#~ msgid "Certificate Path (ssl_certificate)"
+#~ msgstr "TLS 證書路徑 (ssl_certificate)"
+
+#~ msgid "HTTP Listen Port"
+#~ msgstr "HTTP 監聽埠"
+
+#~ msgid "HTTPS Listen Port"
+#~ msgstr "HTTPS 監聽埠"
+
+#~ msgid "Index (index)"
+#~ msgstr "網站首頁 (index)"
+
+#~ msgid "Private Key Path (ssl_certificate_key)"
+#~ msgstr "私鑰路徑 (ssl_certificate_key)"
+
+#~ msgid "Root Directory (root)"
+#~ msgstr "網站根目錄 (root)"
+
+#~ msgid "Server Names (server_name)"
+#~ msgstr "網站域名 (server_name)"
+
+#~ 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.
If "
+#~ "you do not have a certificate before, please click \"Getting Certificate "
+#~ "from Let's Encrypt\" first."
+#~ msgstr ""
+#~ "系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續"
+#~ "簽。
如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。"
+
+#~ msgid "Do you want to change the template to support the TLS?"
+#~ msgstr "你想要改變模板以支援 TLS 嗎?"
+
+#~ msgid "Edit Configuration File"
+#~ msgstr "編輯配置檔案"
+
+#~ msgid "Getting Certificate from Let's Encrypt"
+#~ msgstr "從 Let's Encrypt 獲取證書"
+
+#~ msgid "Skip"
+#~ msgstr "跳過"
+
+#~ msgid ""
+#~ "The following values will only take effect if you have the corresponding "
+#~ "fields in your configuration file. The configuration filename cannot be "
+#~ "changed after it has been created."
+#~ msgstr ""
+#~ "只有在您的配置檔案中有相應欄位時,下列的配置才能生效。配置檔名稱建立後不可"
+#~ "修改。"
+
+#~ msgid "This feature is not available in demo."
+#~ msgstr "此功能在演示中不可用。"
+
+#~ msgid "This operation will lose the custom configuration."
+#~ msgstr "該操作將會丟失自定義配置。"
+
#~ msgid ""
#~ "Add site here first, then you can configure TLS on the domain edit page."
#~ msgstr "在這裡新增站點,完成後可進入編輯頁面配置 TLS。"
diff --git a/frontend/src/translations.json b/frontend/src/translations.json
index 89953f52..5249b31c 100644
--- a/frontend/src/translations.json
+++ b/frontend/src/translations.json
@@ -1 +1 @@
-{"en":{},"zh_CN":{"404 Not Found":"404 未找到页面","About":"关于","Action":"操作","Add Site":"添加站点","Are you sure you want to destroy?":"你确定要删除?","Are you sure you want to restore?":"你确定要反删除?","Auto-renewal disabled for %{name}":"成功关闭 %{name} 自动续签","Auto-renewal enabled for %{name}":"成功启用 %{name} 自动续签","Back":"返回","Base information":"基本信息","Build with":"构建基于","Cancel":"取消","Certificate Auto-renewal":"证书自动续签","Certificate has expired":"此证书已过期","Certificate is valid":"此证书有效","Certificate Path (ssl_certificate)":"TLS 证书路径 (ssl_certificate)","Certificate Status":"证书状态","Configuration Name":"配置名称","Configurations":"配置","Configure SSL":"配置 SSL","CPU Status":"CPU 状态","Create Another":"再创建一个","Created at":"创建时间","Dashboard":"仪表盘","Database (Optional, default: database)":"数据库 (可选,默认: database)","Destroy":"删除","Detected version update, this page will refresh.":"检测到版本更新,页面将会刷新。","Development Mode":"开发模式","Disable auto-renewal failed for %{name}":"关闭 %{name} 自动续签失败","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁盘 IO","Do you want to change the template to support the TLS?":"你想要改变模板以支持 TLS 吗?","Domain Config Created Successfully":"域名配置文件创建成功","Edit":"编辑","Edit %{n}":"编辑 %{n}","Edit Configuration":"编辑配置","Edit Configuration File":"编辑配置文件","Edit Site":"编辑站点","Email (*)":"邮箱 (*)","Enable auto-renewal failed for %{name}":"启用 %{name} 自动续签失败","Enable failed":"启用失败","Enable TLS":"启用 TLS","Enabled":"启用","Enabled successfully":"启用成功","Expiration Date: %{date}":"过期时间: %{date}","Failed to disable %{msg}":"禁用失败 %{msg}","Failed to enable %{msg}":"启用失败 %{msg}","File Not Found":"未找到文件","Finished":"完成","Getting Certificate from Let's Encrypt":"从 Let's Encrypt 获取证书","Getting the certificate, please wait...":"正在获取证书,请稍等...","Home":"首页","HTTP Listen Port":"HTTP 监听端口","HTTPS Listen Port":"HTTPS 监听端口","Index (index)":"网站首页 (index)","Install":"安装","Intermediate Certification Authorities: %{issuer}":"中级证书颁发机构: %{issuer}","Invalid E-mail!":"无效的邮箱!","Leave blank for no change":"留空表示不修改","License":{"Project":"开源许可"},"Load Averages:":"系统负载:","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 Config":"修改配置文件","Name":"名称","Network":"网络","Network Statistics":"流量统计","Network Total Receive":"下载流量","Network Total Send":"上传流量","Next":"下一步","No, I'm rethink":"再想想","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 必须为需要申请证书的域名。","OK":"确定","Password":"密码","Password (*)":"密码 (*)","Please input your E-mail!":"请输入您的邮箱!","Please input your password!":"请输入您的密码!","Please input your username!":"请输入您的用户名!","Private Key Path (ssl_certificate_key)":"私钥路径 (ssl_certificate_key)","Project Team":"项目团队","Reads":"读","Receive":"下载","Restore":"反删除","Root Directory (root)":"网站根目录 (root)","Save":"保存","Save error %{msg}":"保存错误 %{msg}","Saved successfully":"保存成功","Send":"上传","Server error":"服务器错误","Server Info":"服务器信息","Server Names (server_name)":"网站域名 (server_name)","Sites List":"站点列表","Skip":"跳过","Status":"状态","Storage":"存储","Subject Name: %{name}":"主体名称: %{name}","System message":"系统消息","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.
If you do not have a certificate before, please click \"Getting Certificate from Let's Encrypt\" first.":"系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。
如果您之前没有证书,请先点击 \"从 Let's Encrypt 获取证书\"。","The filename cannot contain the following characters: %{c}":"文件名不能包含以下字符: %{c}","The following values will only take effect if you have the corresponding fields in your configuration file. The configuration filename cannot be changed after it has been created.":"只有在您的配置文件中有相应字段时,下列的配置才能生效。配置文件名称创建后不可修改。","This feature is not available in demo.":"该功能在 Demo 中不可用。","This operation will lose the custom configuration.":"该操作将会丢失自定义配置。","Updated at":"修改时间","Uptime:":"运行时间:","Username":"用户名","Username (*)":"用户名 (*)","Writes":"写","Yes, I'm sure":"是的"},"zh_TW":{"404 Not Found":"404 未找到頁面","About":"關於","Action":"操作","Add Site":"新增站點","Are you sure you want to destroy?":"你确定要删除?","Are you sure you want to restore?":"你确定要反删除?","Auto-renewal disabled for %{name}":"成功關閉 %{name} 自動續簽","Auto-renewal enabled for %{name}":"成功啟用 %{name} 自動續簽","Back":"返回","Base information":"基本訊息","Build with":"構建基於","Cancel":"取消","Certificate Auto-renewal":"證書自動續簽","Certificate has expired":"此證書已過期","Certificate is valid":"此證書有效","Certificate Path (ssl_certificate)":"TLS 證書路徑 (ssl_certificate)","Certificate Status":"證書狀態","Configuration Name":"配置名稱","Configurations":"配置","Configure SSL":"配置 SSL","CPU Status":"中央處理器狀態","CPU:":"中央處理器:","Create Another":"再創建一個","Created at":"建立時間","Dashboard":"儀表盤","Database (Optional, default: database)":"資料庫 (可選,預設: database)","Destroy":"删除","Detected version update, this page will refresh.":"檢測到版本更新,頁面將會重新整理。","Development Mode":"開發模式","Disable auto-renewal failed for %{name}":"關閉 %{name} 自動續簽失敗","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁碟 IO","Do you want to change the template to support the TLS?":"你想要改變模板以支援 TLS 嗎?","Domain Config Created Successfully":"域名配置文件創建成功","Edit":"编辑","Edit %{n}":"編輯 %{n}","Edit Configuration":"編輯配置","Edit Configuration File":"編輯配置檔案","Edit Site":"編輯站點","Email (*)":"郵箱 (*)","Enable auto-renewal failed for %{name}":"啟用 %{name} 自動續簽失敗","Enable failed":"啟用失敗","Enable TLS":"啟用 TLS","Enabled":"啟用","Enabled successfully":"啟用成功","Expiration Date: %{date}":"過期時間: %{date}","Failed to disable %{msg}":"禁用失敗 %{msg}","Failed to enable %{msg}":"啟用失敗 %{msg}","File Not Found":"未找到檔案","Finished":"完成","Getting Certificate from Let's Encrypt":"從 Let's Encrypt 獲取證書","Getting the certificate, please wait...":"正在獲取證書,請稍等...","Home":"首頁","HTTP Listen Port":"HTTP 監聽埠","HTTPS Listen Port":"HTTPS 監聽埠","Index (index)":"網站首頁 (index)","Install":"安裝","Intermediate Certification Authorities: %{issuer}":"中級證書頒發機構: %{issuer}","Invalid E-mail!":"無效的郵箱!","Leave blank for no change":"留空表示不修改","License":{"Project":"開源許可"},"Load Averages:":"系統負載:","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 Config":"修改配置","Name":"名稱","Network":"網路","Network Statistics":"網路統計","Network Total Receive":"下載流量","Network Total Send":"上傳流量","Next":"下一步","No, I'm rethink":"再想想","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 必須為需要申請證書的域名。","OK":"確定","OS:":"作業系統:","Password":"密碼","Password (*)":"密碼 (*)","Please input your E-mail!":"請輸入您的郵箱!","Please input your password!":"請輸入您的密碼!","Please input your username!":"請輸入您的使用者名稱!","Private Key Path (ssl_certificate_key)":"私鑰路徑 (ssl_certificate_key)","Project Team":"專案團隊","Reads":"讀","Receive":"下載","Restore":"反删除","Root Directory (root)":"網站根目錄 (root)","Save":"儲存","Save error %{msg}":"儲存錯誤 %{msg}","Saved successfully":"儲存成功","Send":"上傳","Server error":"伺服器錯誤","Server Info":"伺服器資訊","Server Names (server_name)":"網站域名 (server_name)","Sites List":"站點列表","Skip":"跳過","Status":"狀態","Storage":"儲存","Subject Name: %{name}":"主體名稱: %{name}","Swap":"交換空間","System message":"系統訊息","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.
If you do not have a certificate before, please click \"Getting Certificate from Let's Encrypt\" first.":"系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續簽。
如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。","The filename cannot contain the following characters: %{c}":"檔名不能包含以下字元: %{c}","The following values will only take effect if you have the corresponding fields in your configuration file. The configuration filename cannot be changed after it has been created.":"只有在您的配置檔案中有相應欄位時,下列的配置才能生效。配置檔名稱建立後不可修改。","This feature is not available in demo.":"此功能在演示中不可用。","This operation will lose the custom configuration.":"該操作將會丟失自定義配置。","Updated at":"修改時間","Uptime:":"執行時間:","Username":"使用者名稱","Username (*)":"使用者名稱 (*)","Writes":"寫","Yes, I'm sure":"是的"}}
\ No newline at end of file
+{"en":{},"zh_CN":{"404 Not Found":"404 未找到页面","About":"关于","Action":"操作","Add Directive Below":"在下面添加指令","Add Location":"添加 Location","Add Site":"添加站点","Advance Mode":"高级模式","Are you sure you want to destroy?":"你确定要删除?","Are you sure you want to remove this directive?":"你确定要删除这条指令?","Are you sure you want to restore?":"你确定要反删除?","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}","Destroy":"删除","Detected version update, this page will refresh.":"检测到版本更新,页面将会刷新。","Development Mode":"开发模式","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"关闭 %{name} 自动续签失败","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁盘 IO","Domain Config Created Successfully":"域名配置文件创建成功","Edit":"编辑","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}","Invalid E-mail!":"无效的邮箱!","Leave blank for no change":"留空表示不修改","License":{"Project":"开源许可"},"Load Averages:":"系统负载:","Location":"Location","Locations":"Locations","Login":"登录","Login successful":"登录成功","Logout successful":"登出成功","Make sure you have configured a reverse proxy for .well-known\n directory to HTTPChallengePort (default: 9180) before getting the certificate.":"在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 HTTPChallengePort (默认: 9180)","Manage Configs":"配置管理","Manage Sites":"网站管理","Manage Users":"用户管理","Memory":"内存","Memory and Storage":"内存与存储","Modify Config":"修改配置文件","Name":"名称","Network":"网络","Network Statistics":"流量统计","Network Total Receive":"下载流量","Network Total Send":"上传流量","Next":"下一步","No":"取消","No, I'm rethink":"再想想","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\n certificate.":"注意:当前配置中的 server_name 必须为需要申请证书的域名。","OK":"确定","Params":"参数","Password":"密码","Password (*)":"密码 (*)","Path":"路径","Please input your E-mail!":"请输入您的邮箱!","Please input your password!":"请输入您的密码!","Please input your username!":"请输入您的用户名!","Project Team":"项目团队","Reads":"读","Receive":"下载","Restore":"反删除","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}","System message":"系统消息","Terminal":"终端","The certificate for the domain will be checked every hour,\n 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}","Updated at":"修改时间","Uptime:":"运行时间:","Username":"用户名","Username (*)":"用户名 (*)","Warning":"警告","Writes":"写","Yes":"是的","Yes, I'm sure":"是的"},"zh_TW":{"404 Not Found":"404 未找到頁面","About":"關於","Action":"操作","Add Site":"新增站點","Are you sure you want to destroy?":"你确定要删除?","Are you sure you want to restore?":"你确定要反删除?","Auto-renewal disabled for %{name}":"成功關閉 %{name} 自動續簽","Auto-renewal enabled for %{name}":"成功啟用 %{name} 自動續簽","Back":"返回","Base information":"基本訊息","Build with":"構建基於","Cancel":"取消","Certificate has expired":"此證書已過期","Certificate is valid":"此證書有效","Certificate Status":"證書狀態","Configuration Name":"配置名稱","Configurations":"配置","Configure SSL":"配置 SSL","CPU Status":"中央處理器狀態","CPU:":"中央處理器:","Create Another":"再創建一個","Created at":"建立時間","Dashboard":"儀表盤","Database (Optional, default: database)":"資料庫 (可選,預設: database)","Destroy":"删除","Detected version update, this page will refresh.":"檢測到版本更新,頁面將會重新整理。","Development Mode":"開發模式","Disable auto-renewal failed for %{name}":"關閉 %{name} 自動續簽失敗","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁碟 IO","Domain Config Created Successfully":"域名配置文件創建成功","Edit":"编辑","Edit %{n}":"編輯 %{n}","Edit Configuration":"編輯配置","Edit Site":"編輯站點","Email (*)":"郵箱 (*)","Enable auto-renewal failed for %{name}":"啟用 %{name} 自動續簽失敗","Enable failed":"啟用失敗","Enable TLS":"啟用 TLS","Enabled":"啟用","Enabled successfully":"啟用成功","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}","Invalid E-mail!":"無效的郵箱!","Leave blank for no change":"留空表示不修改","License":{"Project":"開源許可"},"Load Averages:":"系統負載:","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, I'm rethink":"再想想","Not Found":"找不到頁面","Not Valid Before: %{date}":"此前無效: %{date}","OK":"確定","OS:":"作業系統:","Password":"密碼","Password (*)":"密碼 (*)","Please input your E-mail!":"請輸入您的郵箱!","Please input your password!":"請輸入您的密碼!","Please input your username!":"請輸入您的使用者名稱!","Project Team":"專案團隊","Reads":"讀","Receive":"下載","Restore":"反删除","Save":"儲存","Save error %{msg}":"儲存錯誤 %{msg}","Saved successfully":"儲存成功","Send":"上傳","Server error":"伺服器錯誤","Server Info":"伺服器資訊","Sites List":"站點列表","Status":"狀態","Storage":"儲存","Subject Name: %{name}":"主體名稱: %{name}","Swap":"交換空間","System message":"系統訊息","Terminal":"终端","The filename cannot contain the following characters: %{c}":"檔名不能包含以下字元: %{c}","Updated at":"修改時間","Uptime:":"執行時間:","Username":"使用者名稱","Username (*)":"使用者名稱 (*)","Writes":"寫","Yes, I'm sure":"是的"}}
\ No newline at end of file
diff --git a/frontend/src/views/domain/DomainList.vue b/frontend/src/views/domain/DomainList.vue
index 947656cf..483a6547 100644
--- a/frontend/src/views/domain/DomainList.vue
+++ b/frontend/src/views/domain/DomainList.vue
@@ -26,12 +26,12 @@