chore: update translations

This commit is contained in:
0xJacky 2023-02-15 13:00:06 +08:00
parent a9aacce0ad
commit 85dbbcc54b
No known key found for this signature in database
GPG key ID: B6E4A6E4A561BAF0
11 changed files with 365 additions and 246 deletions

View file

@ -1,7 +1,7 @@
{ {
"name": "nginx-ui-frontend-next", "name": "nginx-ui-frontend-next",
"private": true, "private": true,
"version": "1.7.5", "version": "1.7.6",
"type": "commonjs", "type": "commonjs",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

View file

@ -17,8 +17,8 @@ msgstr "About"
msgid "Access Logs" msgid "Access Logs"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:78 src/views/config/config.ts:36 #: src/views/cert/Cert.vue:74 src/views/config/config.ts:36
#: src/views/domain/DomainList.vue:47 src/views/user/User.vue:43 #: src/views/domain/DomainList.vue:48 src/views/user/User.vue:43
msgid "Action" msgid "Action"
msgstr "Action" msgstr "Action"
@ -85,11 +85,11 @@ msgstr ""
msgid "Auto" msgid "Auto"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:41 src/views/domain/cert/ChangeCert.vue:35 #: src/views/cert/Cert.vue:37 src/views/domain/cert/ChangeCert.vue:35
msgid "Auto Cert" msgid "Auto Cert"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:8 #: src/views/cert/Cert.vue:9
msgid "Auto cert is enabled, please do not modify this certification." msgid "Auto cert is enabled, please do not modify this certification."
msgstr "" msgstr ""
@ -97,6 +97,10 @@ msgstr ""
msgid "Auto Refresh" msgid "Auto Refresh"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:27
msgid "Auto-Cert Log"
msgstr ""
#: src/views/domain/cert/IssueCert.vue:71 #: src/views/domain/cert/IssueCert.vue:71
msgid "Auto-renewal disabled for %{name}" msgid "Auto-renewal disabled for %{name}"
msgstr "Auto-renewal disabled for %{name}" msgstr "Auto-renewal disabled for %{name}"
@ -152,7 +156,7 @@ msgstr "Certificate has expired"
msgid "Certificate is valid" msgid "Certificate is valid"
msgstr "Certificate is valid" msgstr "Certificate is valid"
#: src/views/cert/Cert.vue:12 src/views/domain/cert/Cert.vue:35 #: src/views/cert/Cert.vue:34 src/views/domain/cert/Cert.vue:35
msgid "Certificate Status" msgid "Certificate Status"
msgstr "Certificate Status" msgstr "Certificate Status"
@ -176,10 +180,15 @@ msgstr ""
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
#: src/views/domain/ngx_conf/LocationEditor.vue:35 #: src/views/domain/ngx_conf/LocationEditor.vue:35
#: src/views/domain/ngx_conf/LocationEditor.vue:52 #: src/views/domain/ngx_conf/LocationEditor.vue:52
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:180 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:181
msgid "Comments" msgid "Comments"
msgstr "Comments" msgstr "Comments"
#: src/views/cert/Cert.vue:32
#, fuzzy
msgid "Config Name"
msgstr "Configuration Name"
#: src/views/domain/ngx_conf/ConfigTemplate.vue:61 #: src/views/domain/ngx_conf/ConfigTemplate.vue:61
#, fuzzy #, fuzzy
msgid "Config Templates" msgid "Config Templates"
@ -258,7 +267,13 @@ msgstr "Dashboard"
msgid "Database (Optional, default: database)" msgid "Database (Optional, default: database)"
msgstr "Database (Optional, default: database)" msgstr "Database (Optional, default: database)"
#: src/components/StdDataDisplay/StdTable.vue:528 #: src/components/StdDataDisplay/StdTable.vue:31
#: src/components/StdDataDisplay/StdTable.vue:32
#: src/components/StdDataDisplay/StdTable.vue:37
#: src/components/StdDataDisplay/StdTable.vue:50
#: src/components/StdDataDisplay/StdTable.vue:52
#: src/components/StdDataDisplay/StdTable.vue:53
#: src/components/StdDataDisplay/StdTable.vue:57
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:20 #: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:20
#: src/views/domain/DomainList.vue:21 src/views/domain/DomainList.vue:28 #: src/views/domain/DomainList.vue:21 src/views/domain/DomainList.vue:28
#: src/views/domain/DomainList.vue:32 #: src/views/domain/DomainList.vue:32
@ -269,7 +284,7 @@ msgstr ""
msgid "Delete ID: %{id}" msgid "Delete ID: %{id}"
msgstr "" msgstr ""
#: src/views/domain/DomainList.vue:81 #: src/views/domain/DomainList.vue:82
msgid "Delete site: %{site_name}" msgid "Delete site: %{site_name}"
msgstr "" msgstr ""
@ -304,15 +319,15 @@ msgstr "Directives"
msgid "Disable auto-renewal failed for %{name}" msgid "Disable auto-renewal failed for %{name}"
msgstr "Disable auto-renewal failed for %{name}" msgstr "Disable auto-renewal failed for %{name}"
#: src/views/cert/Cert.vue:51 src/views/domain/cert/ChangeCert.vue:45 #: src/views/cert/Cert.vue:47 src/views/domain/cert/ChangeCert.vue:45
#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainEdit.vue:9 #: 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:16 src/views/domain/DomainList.vue:35
#: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8 #: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8
#: src/views/domain/DomainList.vue:9 #: src/views/domain/DomainList.vue:9
msgid "Disabled" msgid "Disabled"
msgstr "Disabled" msgstr "Disabled"
#: src/views/domain/DomainEdit.vue:146 src/views/domain/DomainList.vue:69 #: src/views/domain/DomainEdit.vue:146 src/views/domain/DomainList.vue:70
msgid "Disabled successfully" msgid "Disabled successfully"
msgstr "Disabled successfully" msgstr "Disabled successfully"
@ -320,14 +335,14 @@ msgstr "Disabled successfully"
msgid "Disk IO" msgid "Disk IO"
msgstr "Disk IO" msgstr "Disk IO"
#: src/views/cert/Cert.vue:32
msgid "Domain"
msgstr ""
#: src/views/domain/DomainAdd.vue:58 #: src/views/domain/DomainAdd.vue:58
msgid "Domain Config Created Successfully" msgid "Domain Config Created Successfully"
msgstr "Domain Config Created Successfully" msgstr "Domain Config Created Successfully"
#: src/views/cert/Cert.vue:21
msgid "Domains list is empty, try to reopen auto-cert for %{config}"
msgstr ""
#: src/language/constants.ts:26 #: src/language/constants.ts:26
msgid "Download latest release error" msgid "Download latest release error"
msgstr "" msgstr ""
@ -338,9 +353,15 @@ msgstr ""
#: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
#: src/views/domain/SiteDuplicate.vue:2
msgid "Duplicate" msgid "Duplicate"
msgstr "" msgstr ""
#: src/views/domain/SiteDuplicate.vue:43
#, fuzzy
msgid "Duplicated successfully"
msgstr "Saved successfully"
#: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5 #: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5
msgid "Edit %{n}" msgid "Edit %{n}"
msgstr "Edit %{n}" msgstr "Edit %{n}"
@ -369,16 +390,16 @@ msgstr "Enable failed"
msgid "Enable TLS" msgid "Enable TLS"
msgstr "Enable TLS" msgstr "Enable TLS"
#: src/views/cert/Cert.vue:48 src/views/domain/cert/ChangeCert.vue:42 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:42
#: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainEdit.vue:6 #: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainEdit.vue:6
#: src/views/domain/DomainEdit.vue:7 src/views/domain/DomainList.vue:10 #: 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:11 src/views/domain/DomainList.vue:12
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31 #: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:32
msgid "Enabled" msgid "Enabled"
msgstr "Enabled" msgstr "Enabled"
#: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainEdit.vue:137 #: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainEdit.vue:137
#: src/views/domain/DomainList.vue:59 #: src/views/domain/DomainList.vue:60
msgid "Enabled successfully" msgid "Enabled successfully"
msgstr "Enabled successfully" msgstr "Enabled successfully"
@ -410,11 +431,11 @@ msgstr "Expiration Date: %{date}"
msgid "Export" msgid "Export"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:149 src/views/domain/DomainList.vue:73 #: src/views/domain/DomainEdit.vue:149 src/views/domain/DomainList.vue:74
msgid "Failed to disable %{msg}" msgid "Failed to disable %{msg}"
msgstr "Failed to disable %{msg}" msgstr "Failed to disable %{msg}"
#: src/views/domain/DomainEdit.vue:140 src/views/domain/DomainList.vue:63 #: src/views/domain/DomainEdit.vue:140 src/views/domain/DomainList.vue:64
msgid "Failed to enable %{msg}" msgid "Failed to enable %{msg}"
msgstr "Failed to enable %{msg}" msgstr "Failed to enable %{msg}"
@ -609,7 +630,7 @@ msgstr "Single Directive"
#: src/views/cert/Cert.vue:16 src/views/config/config.ts:9 #: src/views/cert/Cert.vue:16 src/views/config/config.ts:9
#: src/views/domain/cert/ChangeCert.vue:19 src/views/domain/DomainEdit.vue:46 #: src/views/domain/cert/ChangeCert.vue:19 src/views/domain/DomainEdit.vue:46
#: src/views/domain/DomainList.vue:15 #: src/views/domain/DomainList.vue:16 src/views/domain/SiteDuplicate.vue:5
msgid "Name" msgid "Name"
msgstr "Name" msgstr "Name"
@ -736,6 +757,12 @@ msgstr ""
msgid "Performing core upgrade" msgid "Performing core upgrade"
msgstr "" msgstr ""
#: src/views/domain/SiteDuplicate.vue:28
msgid ""
"Please input name, this will be used as the filename of the new "
"configuration!"
msgstr ""
#: src/views/other/Install.vue:36 #: src/views/other/Install.vue:36
msgid "Please input your E-mail!" msgid "Please input your E-mail!"
msgstr "Please input your E-mail!" msgstr "Please input your E-mail!"
@ -885,9 +912,8 @@ msgstr "Send"
#: src/components/StdDataDisplay/StdTable.vue:168 #: src/components/StdDataDisplay/StdTable.vue:168
#: src/components/StdDataDisplay/StdTable.vue:343 #: src/components/StdDataDisplay/StdTable.vue:343
#: src/components/StdDataDisplay/StdTable.vue:463 #: src/components/StdDataDisplay/StdTable.vue:463
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainEdit.vue:87 #: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainList.vue:84
#: src/views/domain/DomainList.vue:83 src/views/other/Install.vue:71 #: src/views/other/Install.vue:71 src/views/preference/Preference.vue:41
#: src/views/preference/Preference.vue:41
msgid "Server error" msgid "Server error"
msgstr "Server error" msgstr "Server error"
@ -917,27 +943,27 @@ msgstr "Sites List"
msgid "Sites List" msgid "Sites List"
msgstr "Sites List" msgstr "Sites List"
#: src/views/cert/Cert.vue:65 #: src/views/cert/Cert.vue:61
#, fuzzy #, fuzzy
msgid "SSL Certificate Key Path" msgid "SSL Certificate Key Path"
msgstr "Certificate Status" msgstr "Certificate Status"
#: src/views/cert/Cert.vue:58 #: src/views/cert/Cert.vue:54
#, fuzzy #, fuzzy
msgid "SSL Certificate Path" msgid "SSL Certificate Path"
msgstr "Certificate Status" msgstr "Certificate Status"
#: src/views/cert/Cert.vue:19 #: src/views/cert/Cert.vue:41
#, fuzzy #, fuzzy
msgid "SSL Certification Content" msgid "SSL Certification Content"
msgstr "Certificate Status" msgstr "Certificate Status"
#: src/views/cert/Cert.vue:22 #: src/views/cert/Cert.vue:44
#, fuzzy #, fuzzy
msgid "SSL Certification Key Content" msgid "SSL Certification Key Content"
msgstr "Certificate Status" msgstr "Certificate Status"
#: src/views/domain/DomainList.vue:24 #: src/views/domain/DomainList.vue:25
msgid "Status" msgid "Status"
msgstr "Status" msgstr "Status"
@ -1003,12 +1029,16 @@ msgstr ""
msgid "Theme" msgid "Theme"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:15
msgid "This auto-cert item is invalid, please remove it."
msgstr ""
#: src/views/config/config.ts:14 #: src/views/config/config.ts:14
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:72 src/views/config/config.ts:29 #: src/views/cert/Cert.vue:68 src/views/config/config.ts:29
#: src/views/domain/DomainList.vue:41 src/views/user/User.vue:37 #: src/views/domain/DomainList.vue:42 src/views/user/User.vue:37
msgid "Updated at" msgid "Updated at"
msgstr "Updated at" msgstr "Updated at"

View file

@ -11,9 +11,9 @@ msgstr ""
msgid "Access Logs" msgid "Access Logs"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:78 #: src/views/cert/Cert.vue:74
#: src/views/config/config.ts:36 #: src/views/config/config.ts:36
#: src/views/domain/DomainList.vue:47 #: src/views/domain/DomainList.vue:48
#: src/views/user/User.vue:43 #: src/views/user/User.vue:43
msgid "Action" msgid "Action"
msgstr "" msgstr ""
@ -83,12 +83,12 @@ msgstr ""
msgid "Auto" msgid "Auto"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:41 #: src/views/cert/Cert.vue:37
#: src/views/domain/cert/ChangeCert.vue:35 #: src/views/domain/cert/ChangeCert.vue:35
msgid "Auto Cert" msgid "Auto Cert"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:8 #: src/views/cert/Cert.vue:9
msgid "Auto cert is enabled, please do not modify this certification." msgid "Auto cert is enabled, please do not modify this certification."
msgstr "" msgstr ""
@ -96,6 +96,10 @@ msgstr ""
msgid "Auto Refresh" msgid "Auto Refresh"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:27
msgid "Auto-Cert Log"
msgstr ""
#: src/views/domain/cert/IssueCert.vue:71 #: src/views/domain/cert/IssueCert.vue:71
msgid "Auto-renewal disabled for %{name}" msgid "Auto-renewal disabled for %{name}"
msgstr "" msgstr ""
@ -153,7 +157,7 @@ msgstr ""
msgid "Certificate is valid" msgid "Certificate is valid"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:12 #: src/views/cert/Cert.vue:34
#: src/views/domain/cert/Cert.vue:35 #: src/views/domain/cert/Cert.vue:35
msgid "Certificate Status" msgid "Certificate Status"
msgstr "" msgstr ""
@ -179,10 +183,14 @@ msgstr ""
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
#: src/views/domain/ngx_conf/LocationEditor.vue:35 #: src/views/domain/ngx_conf/LocationEditor.vue:35
#: src/views/domain/ngx_conf/LocationEditor.vue:52 #: src/views/domain/ngx_conf/LocationEditor.vue:52
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:180 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:181
msgid "Comments" msgid "Comments"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:32
msgid "Config Name"
msgstr ""
#: src/views/domain/ngx_conf/ConfigTemplate.vue:61 #: src/views/domain/ngx_conf/ConfigTemplate.vue:61
msgid "Config Templates" msgid "Config Templates"
msgstr "" msgstr ""
@ -263,7 +271,13 @@ msgstr ""
msgid "Database (Optional, default: database)" msgid "Database (Optional, default: database)"
msgstr "" msgstr ""
#: src/components/StdDataDisplay/StdTable.vue:528 #: src/components/StdDataDisplay/StdTable.vue:31
#: src/components/StdDataDisplay/StdTable.vue:32
#: src/components/StdDataDisplay/StdTable.vue:37
#: src/components/StdDataDisplay/StdTable.vue:50
#: src/components/StdDataDisplay/StdTable.vue:52
#: src/components/StdDataDisplay/StdTable.vue:53
#: src/components/StdDataDisplay/StdTable.vue:57
#: src/views/domain/DomainList.vue:19 #: src/views/domain/DomainList.vue:19
#: src/views/domain/DomainList.vue:20 #: src/views/domain/DomainList.vue:20
#: src/views/domain/DomainList.vue:21 #: src/views/domain/DomainList.vue:21
@ -276,7 +290,7 @@ msgstr ""
msgid "Delete ID: %{id}" msgid "Delete ID: %{id}"
msgstr "" msgstr ""
#: src/views/domain/DomainList.vue:81 #: src/views/domain/DomainList.vue:82
msgid "Delete site: %{site_name}" msgid "Delete site: %{site_name}"
msgstr "" msgstr ""
@ -312,12 +326,12 @@ msgstr ""
msgid "Disable auto-renewal failed for %{name}" msgid "Disable auto-renewal failed for %{name}"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:51 #: src/views/cert/Cert.vue:47
#: src/views/domain/cert/ChangeCert.vue:45 #: src/views/domain/cert/ChangeCert.vue:45
#: src/views/domain/DomainEdit.vue:10 #: src/views/domain/DomainEdit.vue:10
#: src/views/domain/DomainEdit.vue:9 #: src/views/domain/DomainEdit.vue:9
#: src/views/domain/DomainList.vue:16 #: src/views/domain/DomainList.vue:16
#: src/views/domain/DomainList.vue:34 #: src/views/domain/DomainList.vue:35
#: src/views/domain/DomainList.vue:7 #: src/views/domain/DomainList.vue:7
#: src/views/domain/DomainList.vue:8 #: src/views/domain/DomainList.vue:8
#: src/views/domain/DomainList.vue:9 #: src/views/domain/DomainList.vue:9
@ -325,7 +339,7 @@ msgid "Disabled"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:146 #: src/views/domain/DomainEdit.vue:146
#: src/views/domain/DomainList.vue:69 #: src/views/domain/DomainList.vue:70
msgid "Disabled successfully" msgid "Disabled successfully"
msgstr "" msgstr ""
@ -333,14 +347,14 @@ msgstr ""
msgid "Disk IO" msgid "Disk IO"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:32
msgid "Domain"
msgstr ""
#: src/views/domain/DomainAdd.vue:58 #: src/views/domain/DomainAdd.vue:58
msgid "Domain Config Created Successfully" msgid "Domain Config Created Successfully"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:21
msgid "Domains list is empty, try to reopen auto-cert for %{config}"
msgstr ""
#: src/language/constants.ts:26 #: src/language/constants.ts:26
msgid "Download latest release error" msgid "Download latest release error"
msgstr "" msgstr ""
@ -353,9 +367,14 @@ msgstr ""
#: src/views/domain/DomainList.vue:15 #: src/views/domain/DomainList.vue:15
#: src/views/domain/DomainList.vue:16 #: src/views/domain/DomainList.vue:16
#: src/views/domain/DomainList.vue:23 #: src/views/domain/DomainList.vue:23
#: src/views/domain/SiteDuplicate.vue:2
msgid "Duplicate" msgid "Duplicate"
msgstr "" msgstr ""
#: src/views/domain/SiteDuplicate.vue:43
msgid "Duplicated successfully"
msgstr ""
#: src/views/domain/DomainEdit.vue:4 #: src/views/domain/DomainEdit.vue:4
#: src/views/domain/DomainEdit.vue:5 #: src/views/domain/DomainEdit.vue:5
msgid "Edit %{n}" msgid "Edit %{n}"
@ -386,7 +405,7 @@ msgstr ""
msgid "Enable TLS" msgid "Enable TLS"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:48 #: src/views/cert/Cert.vue:44
#: src/views/domain/cert/ChangeCert.vue:42 #: src/views/domain/cert/ChangeCert.vue:42
#: src/views/domain/DomainEdit.vue:43 #: src/views/domain/DomainEdit.vue:43
#: src/views/domain/DomainEdit.vue:6 #: src/views/domain/DomainEdit.vue:6
@ -395,13 +414,13 @@ msgstr ""
#: src/views/domain/DomainList.vue:11 #: src/views/domain/DomainList.vue:11
#: src/views/domain/DomainList.vue:12 #: src/views/domain/DomainList.vue:12
#: src/views/domain/DomainList.vue:19 #: src/views/domain/DomainList.vue:19
#: src/views/domain/DomainList.vue:31 #: src/views/domain/DomainList.vue:32
msgid "Enabled" msgid "Enabled"
msgstr "" msgstr ""
#: src/views/domain/DomainAdd.vue:47 #: src/views/domain/DomainAdd.vue:47
#: src/views/domain/DomainEdit.vue:137 #: src/views/domain/DomainEdit.vue:137
#: src/views/domain/DomainList.vue:59 #: src/views/domain/DomainList.vue:60
msgid "Enabled successfully" msgid "Enabled successfully"
msgstr "" msgstr ""
@ -437,12 +456,12 @@ msgid "Export"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:149 #: src/views/domain/DomainEdit.vue:149
#: src/views/domain/DomainList.vue:73 #: src/views/domain/DomainList.vue:74
msgid "Failed to disable %{msg}" msgid "Failed to disable %{msg}"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:140 #: src/views/domain/DomainEdit.vue:140
#: src/views/domain/DomainList.vue:63 #: src/views/domain/DomainList.vue:64
msgid "Failed to enable %{msg}" msgid "Failed to enable %{msg}"
msgstr "" msgstr ""
@ -636,7 +655,8 @@ msgstr ""
#: src/views/config/config.ts:9 #: src/views/config/config.ts:9
#: src/views/domain/cert/ChangeCert.vue:19 #: src/views/domain/cert/ChangeCert.vue:19
#: src/views/domain/DomainEdit.vue:46 #: src/views/domain/DomainEdit.vue:46
#: src/views/domain/DomainList.vue:15 #: src/views/domain/DomainList.vue:16
#: src/views/domain/SiteDuplicate.vue:5
msgid "Name" msgid "Name"
msgstr "" msgstr ""
@ -765,6 +785,10 @@ msgstr ""
msgid "Performing core upgrade" msgid "Performing core upgrade"
msgstr "" msgstr ""
#: src/views/domain/SiteDuplicate.vue:28
msgid "Please input name, this will be used as the filename of the new configuration!"
msgstr ""
#: src/views/other/Install.vue:36 #: src/views/other/Install.vue:36
msgid "Please input your E-mail!" msgid "Please input your E-mail!"
msgstr "" msgstr ""
@ -924,8 +948,7 @@ msgstr ""
#: src/components/StdDataDisplay/StdTable.vue:343 #: src/components/StdDataDisplay/StdTable.vue:343
#: src/components/StdDataDisplay/StdTable.vue:463 #: src/components/StdDataDisplay/StdTable.vue:463
#: src/views/config/ConfigEdit.vue:32 #: src/views/config/ConfigEdit.vue:32
#: src/views/domain/DomainEdit.vue:87 #: src/views/domain/DomainList.vue:84
#: src/views/domain/DomainList.vue:83
#: src/views/other/Install.vue:71 #: src/views/other/Install.vue:71
#: src/views/preference/Preference.vue:41 #: src/views/preference/Preference.vue:41
msgid "Server error" msgid "Server error"
@ -957,23 +980,23 @@ msgstr ""
msgid "Sites List" msgid "Sites List"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:65 #: src/views/cert/Cert.vue:61
msgid "SSL Certificate Key Path" msgid "SSL Certificate Key Path"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:58 #: src/views/cert/Cert.vue:54
msgid "SSL Certificate Path" msgid "SSL Certificate Path"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:19 #: src/views/cert/Cert.vue:41
msgid "SSL Certification Content" msgid "SSL Certification Content"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:22 #: src/views/cert/Cert.vue:44
msgid "SSL Certification Key Content" msgid "SSL Certification Key Content"
msgstr "" msgstr ""
#: src/views/domain/DomainList.vue:24 #: src/views/domain/DomainList.vue:25
msgid "Status" msgid "Status"
msgstr "" msgstr ""
@ -1030,13 +1053,17 @@ msgstr ""
msgid "Theme" msgid "Theme"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:15
msgid "This auto-cert item is invalid, please remove it."
msgstr ""
#: src/views/config/config.ts:14 #: src/views/config/config.ts:14
msgid "Type" msgid "Type"
msgstr "" msgstr ""
#: src/views/cert/Cert.vue:72 #: src/views/cert/Cert.vue:68
#: src/views/config/config.ts:29 #: src/views/config/config.ts:29
#: src/views/domain/DomainList.vue:41 #: src/views/domain/DomainList.vue:42
#: src/views/user/User.vue:37 #: src/views/user/User.vue:37
msgid "Updated at" msgid "Updated at"
msgstr "" msgstr ""

File diff suppressed because one or more lines are too long

Binary file not shown.

View file

@ -20,8 +20,8 @@ msgstr "关于"
msgid "Access Logs" msgid "Access Logs"
msgstr "访问日志" msgstr "访问日志"
#: src/views/cert/Cert.vue:78 src/views/config/config.ts:36 #: src/views/cert/Cert.vue:74 src/views/config/config.ts:36
#: src/views/domain/DomainList.vue:47 src/views/user/User.vue:43 #: src/views/domain/DomainList.vue:48 src/views/user/User.vue:43
msgid "Action" msgid "Action"
msgstr "操作" msgstr "操作"
@ -86,11 +86,11 @@ msgstr "作者"
msgid "Auto" msgid "Auto"
msgstr "自动" msgstr "自动"
#: src/views/cert/Cert.vue:41 src/views/domain/cert/ChangeCert.vue:35 #: src/views/cert/Cert.vue:37 src/views/domain/cert/ChangeCert.vue:35
msgid "Auto Cert" msgid "Auto Cert"
msgstr "自动更新" msgstr "自动更新"
#: src/views/cert/Cert.vue:8 #: src/views/cert/Cert.vue:9
msgid "Auto cert is enabled, please do not modify this certification." msgid "Auto cert is enabled, please do not modify this certification."
msgstr "自动更新已启用,请勿修改此证书配置。" msgstr "自动更新已启用,请勿修改此证书配置。"
@ -98,6 +98,10 @@ msgstr "自动更新已启用,请勿修改此证书配置。"
msgid "Auto Refresh" msgid "Auto Refresh"
msgstr "自动刷新" msgstr "自动刷新"
#: src/views/cert/Cert.vue:27
msgid "Auto-Cert Log"
msgstr "证书自动续期日志"
#: src/views/domain/cert/IssueCert.vue:71 #: src/views/domain/cert/IssueCert.vue:71
msgid "Auto-renewal disabled for %{name}" msgid "Auto-renewal disabled for %{name}"
msgstr "成功关闭 %{name} 自动续签" msgstr "成功关闭 %{name} 自动续签"
@ -151,7 +155,7 @@ msgstr "此证书已过期"
msgid "Certificate is valid" msgid "Certificate is valid"
msgstr "此证书有效" msgstr "此证书有效"
#: src/views/cert/Cert.vue:12 src/views/domain/cert/Cert.vue:35 #: src/views/cert/Cert.vue:34 src/views/domain/cert/Cert.vue:35
msgid "Certificate Status" msgid "Certificate Status"
msgstr "证书状态" msgstr "证书状态"
@ -173,10 +177,14 @@ msgstr "重新检查"
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
#: src/views/domain/ngx_conf/LocationEditor.vue:35 #: src/views/domain/ngx_conf/LocationEditor.vue:35
#: src/views/domain/ngx_conf/LocationEditor.vue:52 #: src/views/domain/ngx_conf/LocationEditor.vue:52
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:180 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:181
msgid "Comments" msgid "Comments"
msgstr "注释" msgstr "注释"
#: src/views/cert/Cert.vue:32
msgid "Config Name"
msgstr "配置文件名称"
#: src/views/domain/ngx_conf/ConfigTemplate.vue:61 #: src/views/domain/ngx_conf/ConfigTemplate.vue:61
msgid "Config Templates" msgid "Config Templates"
msgstr "配置" msgstr "配置"
@ -254,7 +262,13 @@ msgstr "仪表盘"
msgid "Database (Optional, default: database)" msgid "Database (Optional, default: database)"
msgstr "数据库 (可选,默认: database)" msgstr "数据库 (可选,默认: database)"
#: src/components/StdDataDisplay/StdTable.vue:528 #: src/components/StdDataDisplay/StdTable.vue:31
#: src/components/StdDataDisplay/StdTable.vue:32
#: src/components/StdDataDisplay/StdTable.vue:37
#: src/components/StdDataDisplay/StdTable.vue:50
#: src/components/StdDataDisplay/StdTable.vue:52
#: src/components/StdDataDisplay/StdTable.vue:53
#: src/components/StdDataDisplay/StdTable.vue:57
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:20 #: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:20
#: src/views/domain/DomainList.vue:21 src/views/domain/DomainList.vue:28 #: src/views/domain/DomainList.vue:21 src/views/domain/DomainList.vue:28
#: src/views/domain/DomainList.vue:32 #: src/views/domain/DomainList.vue:32
@ -265,7 +279,7 @@ msgstr "删除"
msgid "Delete ID: %{id}" msgid "Delete ID: %{id}"
msgstr "删除 ID: %{id}" msgstr "删除 ID: %{id}"
#: src/views/domain/DomainList.vue:81 #: src/views/domain/DomainList.vue:82
msgid "Delete site: %{site_name}" msgid "Delete site: %{site_name}"
msgstr "删除站点: %{site_name}" msgstr "删除站点: %{site_name}"
@ -300,15 +314,15 @@ msgstr "指令"
msgid "Disable auto-renewal failed for %{name}" msgid "Disable auto-renewal failed for %{name}"
msgstr "关闭 %{name} 自动续签失败" msgstr "关闭 %{name} 自动续签失败"
#: src/views/cert/Cert.vue:51 src/views/domain/cert/ChangeCert.vue:45 #: src/views/cert/Cert.vue:47 src/views/domain/cert/ChangeCert.vue:45
#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainEdit.vue:9 #: 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:16 src/views/domain/DomainList.vue:35
#: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8 #: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8
#: src/views/domain/DomainList.vue:9 #: src/views/domain/DomainList.vue:9
msgid "Disabled" msgid "Disabled"
msgstr "禁用" msgstr "禁用"
#: src/views/domain/DomainEdit.vue:146 src/views/domain/DomainList.vue:69 #: src/views/domain/DomainEdit.vue:146 src/views/domain/DomainList.vue:70
msgid "Disabled successfully" msgid "Disabled successfully"
msgstr "禁用成功" msgstr "禁用成功"
@ -316,14 +330,14 @@ msgstr "禁用成功"
msgid "Disk IO" msgid "Disk IO"
msgstr "磁盘 IO" msgstr "磁盘 IO"
#: src/views/cert/Cert.vue:32
msgid "Domain"
msgstr "域名"
#: src/views/domain/DomainAdd.vue:58 #: src/views/domain/DomainAdd.vue:58
msgid "Domain Config Created Successfully" msgid "Domain Config Created Successfully"
msgstr "域名配置文件创建成功" msgstr "域名配置文件创建成功"
#: src/views/cert/Cert.vue:21
msgid "Domains list is empty, try to reopen auto-cert for %{config}"
msgstr "域名列表为空,请尝试为%{config}重新打开证书自动续期。"
#: src/language/constants.ts:26 #: src/language/constants.ts:26
msgid "Download latest release error" msgid "Download latest release error"
msgstr "下载最新版本错误" msgstr "下载最新版本错误"
@ -334,9 +348,14 @@ msgstr "下载最新版本"
#: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
#: src/views/domain/SiteDuplicate.vue:2
msgid "Duplicate" msgid "Duplicate"
msgstr "复制" msgstr "复制"
#: src/views/domain/SiteDuplicate.vue:43
msgid "Duplicated successfully"
msgstr "复制成功"
#: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5 #: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5
msgid "Edit %{n}" msgid "Edit %{n}"
msgstr "编辑 %{n}" msgstr "编辑 %{n}"
@ -365,16 +384,16 @@ msgstr "启用失败"
msgid "Enable TLS" msgid "Enable TLS"
msgstr "启用 TLS" msgstr "启用 TLS"
#: src/views/cert/Cert.vue:48 src/views/domain/cert/ChangeCert.vue:42 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:42
#: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainEdit.vue:6 #: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainEdit.vue:6
#: src/views/domain/DomainEdit.vue:7 src/views/domain/DomainList.vue:10 #: 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:11 src/views/domain/DomainList.vue:12
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31 #: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:32
msgid "Enabled" msgid "Enabled"
msgstr "启用" msgstr "启用"
#: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainEdit.vue:137 #: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainEdit.vue:137
#: src/views/domain/DomainList.vue:59 #: src/views/domain/DomainList.vue:60
msgid "Enabled successfully" msgid "Enabled successfully"
msgstr "启用成功" msgstr "启用成功"
@ -406,11 +425,11 @@ msgstr "过期时间: %{date}"
msgid "Export" msgid "Export"
msgstr "导出" msgstr "导出"
#: src/views/domain/DomainEdit.vue:149 src/views/domain/DomainList.vue:73 #: src/views/domain/DomainEdit.vue:149 src/views/domain/DomainList.vue:74
msgid "Failed to disable %{msg}" msgid "Failed to disable %{msg}"
msgstr "禁用失败 %{msg}" msgstr "禁用失败 %{msg}"
#: src/views/domain/DomainEdit.vue:140 src/views/domain/DomainList.vue:63 #: src/views/domain/DomainEdit.vue:140 src/views/domain/DomainList.vue:64
msgid "Failed to enable %{msg}" msgid "Failed to enable %{msg}"
msgstr "启用失败 %{msg}" msgstr "启用失败 %{msg}"
@ -598,7 +617,7 @@ msgstr "单行指令"
#: src/views/cert/Cert.vue:16 src/views/config/config.ts:9 #: src/views/cert/Cert.vue:16 src/views/config/config.ts:9
#: src/views/domain/cert/ChangeCert.vue:19 src/views/domain/DomainEdit.vue:46 #: src/views/domain/cert/ChangeCert.vue:19 src/views/domain/DomainEdit.vue:46
#: src/views/domain/DomainList.vue:15 #: src/views/domain/DomainList.vue:16 src/views/domain/SiteDuplicate.vue:5
msgid "Name" msgid "Name"
msgstr "名称" msgstr "名称"
@ -721,6 +740,12 @@ msgstr "执行核心升级错误"
msgid "Performing core upgrade" msgid "Performing core upgrade"
msgstr "正在进行核心升级" msgstr "正在进行核心升级"
#: src/views/domain/SiteDuplicate.vue:28
msgid ""
"Please input name, this will be used as the filename of the new "
"configuration!"
msgstr "请输入名称,这将被用作新配置的文件名。"
#: src/views/other/Install.vue:36 #: src/views/other/Install.vue:36
msgid "Please input your E-mail!" msgid "Please input your E-mail!"
msgstr "请输入您的邮箱!" msgstr "请输入您的邮箱!"
@ -865,9 +890,8 @@ msgstr "上传"
#: src/components/StdDataDisplay/StdTable.vue:168 #: src/components/StdDataDisplay/StdTable.vue:168
#: src/components/StdDataDisplay/StdTable.vue:343 #: src/components/StdDataDisplay/StdTable.vue:343
#: src/components/StdDataDisplay/StdTable.vue:463 #: src/components/StdDataDisplay/StdTable.vue:463
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainEdit.vue:87 #: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainList.vue:84
#: src/views/domain/DomainList.vue:83 src/views/other/Install.vue:71 #: src/views/other/Install.vue:71 src/views/preference/Preference.vue:41
#: src/views/preference/Preference.vue:41
msgid "Server error" msgid "Server error"
msgstr "服务器错误" msgstr "服务器错误"
@ -896,23 +920,23 @@ msgstr "站点列表"
msgid "Sites List" msgid "Sites List"
msgstr "站点列表" msgstr "站点列表"
#: src/views/cert/Cert.vue:65 #: src/views/cert/Cert.vue:61
msgid "SSL Certificate Key Path" msgid "SSL Certificate Key Path"
msgstr "SSL证书密钥路径" msgstr "SSL证书密钥路径"
#: src/views/cert/Cert.vue:58 #: src/views/cert/Cert.vue:54
msgid "SSL Certificate Path" msgid "SSL Certificate Path"
msgstr "SSL证书路径" msgstr "SSL证书路径"
#: src/views/cert/Cert.vue:19 #: src/views/cert/Cert.vue:41
msgid "SSL Certification Content" msgid "SSL Certification Content"
msgstr "SSL证书内容" msgstr "SSL证书内容"
#: src/views/cert/Cert.vue:22 #: src/views/cert/Cert.vue:44
msgid "SSL Certification Key Content" msgid "SSL Certification Key Content"
msgstr "SSL证书密钥内容" msgstr "SSL证书密钥内容"
#: src/views/domain/DomainList.vue:24 #: src/views/domain/DomainList.vue:25
msgid "Status" msgid "Status"
msgstr "状态" msgstr "状态"
@ -973,12 +997,16 @@ msgstr "用户名或密码错误"
msgid "Theme" msgid "Theme"
msgstr "主题" msgstr "主题"
#: src/views/cert/Cert.vue:15
msgid "This auto-cert item is invalid, please remove it."
msgstr "这个证书自动续期项目是无效的,请删除。"
#: src/views/config/config.ts:14 #: src/views/config/config.ts:14
msgid "Type" msgid "Type"
msgstr "类型" msgstr "类型"
#: src/views/cert/Cert.vue:72 src/views/config/config.ts:29 #: src/views/cert/Cert.vue:68 src/views/config/config.ts:29
#: src/views/domain/DomainList.vue:41 src/views/user/User.vue:37 #: src/views/domain/DomainList.vue:42 src/views/user/User.vue:37
msgid "Updated at" msgid "Updated at"
msgstr "修改时间" msgstr "修改时间"
@ -1061,6 +1089,9 @@ msgctxt "Project"
msgid "License" msgid "License"
msgstr "开源许可" msgstr "开源许可"
#~ msgid "Domain"
#~ msgstr "域名"
#~ msgid "Do you want to reload Nginx?" #~ msgid "Do you want to reload Nginx?"
#~ msgstr "你需要重载 Nginx 吗?" #~ msgstr "你需要重载 Nginx 吗?"

Binary file not shown.

View file

@ -21,8 +21,8 @@ msgstr "關於"
msgid "Access Logs" msgid "Access Logs"
msgstr "訪問日誌" msgstr "訪問日誌"
#: src/views/cert/Cert.vue:78 src/views/config/config.ts:36 #: src/views/cert/Cert.vue:74 src/views/config/config.ts:36
#: src/views/domain/DomainList.vue:47 src/views/user/User.vue:43 #: src/views/domain/DomainList.vue:48 src/views/user/User.vue:43
msgid "Action" msgid "Action"
msgstr "操作" msgstr "操作"
@ -87,11 +87,11 @@ msgstr "作者"
msgid "Auto" msgid "Auto"
msgstr "自動" msgstr "自動"
#: src/views/cert/Cert.vue:41 src/views/domain/cert/ChangeCert.vue:35 #: src/views/cert/Cert.vue:37 src/views/domain/cert/ChangeCert.vue:35
msgid "Auto Cert" msgid "Auto Cert"
msgstr "自動更新" msgstr "自動更新"
#: src/views/cert/Cert.vue:8 #: src/views/cert/Cert.vue:9
msgid "Auto cert is enabled, please do not modify this certification." msgid "Auto cert is enabled, please do not modify this certification."
msgstr "自動證書已啟用,請不要修改此證書。" msgstr "自動證書已啟用,請不要修改此證書。"
@ -99,6 +99,10 @@ msgstr "自動證書已啟用,請不要修改此證書。"
msgid "Auto Refresh" msgid "Auto Refresh"
msgstr "自動刷新" msgstr "自動刷新"
#: src/views/cert/Cert.vue:27
msgid "Auto-Cert Log"
msgstr "自動證書日誌"
#: src/views/domain/cert/IssueCert.vue:71 #: src/views/domain/cert/IssueCert.vue:71
msgid "Auto-renewal disabled for %{name}" msgid "Auto-renewal disabled for %{name}"
msgstr "已關閉 %{name} 自動續簽" msgstr "已關閉 %{name} 自動續簽"
@ -152,7 +156,7 @@ msgstr "此憑證已過期"
msgid "Certificate is valid" msgid "Certificate is valid"
msgstr "此憑證有效" msgstr "此憑證有效"
#: src/views/cert/Cert.vue:12 src/views/domain/cert/Cert.vue:35 #: src/views/cert/Cert.vue:34 src/views/domain/cert/Cert.vue:35
msgid "Certificate Status" msgid "Certificate Status"
msgstr "憑證狀態" msgstr "憑證狀態"
@ -174,10 +178,14 @@ msgstr "再次檢查"
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
#: src/views/domain/ngx_conf/LocationEditor.vue:35 #: src/views/domain/ngx_conf/LocationEditor.vue:35
#: src/views/domain/ngx_conf/LocationEditor.vue:52 #: src/views/domain/ngx_conf/LocationEditor.vue:52
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:180 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:181
msgid "Comments" msgid "Comments"
msgstr "註釋" msgstr "註釋"
#: src/views/cert/Cert.vue:32
msgid "Config Name"
msgstr "配置名稱"
#: src/views/domain/ngx_conf/ConfigTemplate.vue:61 #: src/views/domain/ngx_conf/ConfigTemplate.vue:61
msgid "Config Templates" msgid "Config Templates"
msgstr "配置模板" msgstr "配置模板"
@ -255,7 +263,13 @@ msgstr "儀表盤"
msgid "Database (Optional, default: database)" msgid "Database (Optional, default: database)"
msgstr "資料庫 (可選,預設: database)" msgstr "資料庫 (可選,預設: database)"
#: src/components/StdDataDisplay/StdTable.vue:528 #: src/components/StdDataDisplay/StdTable.vue:31
#: src/components/StdDataDisplay/StdTable.vue:32
#: src/components/StdDataDisplay/StdTable.vue:37
#: src/components/StdDataDisplay/StdTable.vue:50
#: src/components/StdDataDisplay/StdTable.vue:52
#: src/components/StdDataDisplay/StdTable.vue:53
#: src/components/StdDataDisplay/StdTable.vue:57
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:20 #: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:20
#: src/views/domain/DomainList.vue:21 src/views/domain/DomainList.vue:28 #: src/views/domain/DomainList.vue:21 src/views/domain/DomainList.vue:28
#: src/views/domain/DomainList.vue:32 #: src/views/domain/DomainList.vue:32
@ -266,7 +280,7 @@ msgstr "刪除"
msgid "Delete ID: %{id}" msgid "Delete ID: %{id}"
msgstr "刪除 ID: %{id}" msgstr "刪除 ID: %{id}"
#: src/views/domain/DomainList.vue:81 #: src/views/domain/DomainList.vue:82
msgid "Delete site: %{site_name}" msgid "Delete site: %{site_name}"
msgstr "刪除站點:%{site_name}" msgstr "刪除站點:%{site_name}"
@ -301,15 +315,15 @@ msgstr "指令"
msgid "Disable auto-renewal failed for %{name}" msgid "Disable auto-renewal failed for %{name}"
msgstr "關閉 %{name} 自動續簽失敗" msgstr "關閉 %{name} 自動續簽失敗"
#: src/views/cert/Cert.vue:51 src/views/domain/cert/ChangeCert.vue:45 #: src/views/cert/Cert.vue:47 src/views/domain/cert/ChangeCert.vue:45
#: src/views/domain/DomainEdit.vue:10 src/views/domain/DomainEdit.vue:9 #: 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:16 src/views/domain/DomainList.vue:35
#: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8 #: src/views/domain/DomainList.vue:7 src/views/domain/DomainList.vue:8
#: src/views/domain/DomainList.vue:9 #: src/views/domain/DomainList.vue:9
msgid "Disabled" msgid "Disabled"
msgstr "禁用" msgstr "禁用"
#: src/views/domain/DomainEdit.vue:146 src/views/domain/DomainList.vue:69 #: src/views/domain/DomainEdit.vue:146 src/views/domain/DomainList.vue:70
msgid "Disabled successfully" msgid "Disabled successfully"
msgstr "禁用成功" msgstr "禁用成功"
@ -317,14 +331,14 @@ msgstr "禁用成功"
msgid "Disk IO" msgid "Disk IO"
msgstr "磁碟 IO" msgstr "磁碟 IO"
#: src/views/cert/Cert.vue:32
msgid "Domain"
msgstr "網域"
#: src/views/domain/DomainAdd.vue:58 #: src/views/domain/DomainAdd.vue:58
msgid "Domain Config Created Successfully" msgid "Domain Config Created Successfully"
msgstr "域名配置文件創建成功" msgstr "域名配置文件創建成功"
#: src/views/cert/Cert.vue:21
msgid "Domains list is empty, try to reopen auto-cert for %{config}"
msgstr "域列表為空,請嘗試重新打開 %{config} 的自動證書"
#: src/language/constants.ts:26 #: src/language/constants.ts:26
msgid "Download latest release error" msgid "Download latest release error"
msgstr "下載最新版本錯誤" msgstr "下載最新版本錯誤"
@ -335,9 +349,14 @@ msgstr "正在下載最新版本"
#: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15 #: src/views/domain/DomainList.vue:14 src/views/domain/DomainList.vue:15
#: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23 #: src/views/domain/DomainList.vue:16 src/views/domain/DomainList.vue:23
#: src/views/domain/SiteDuplicate.vue:2
msgid "Duplicate" msgid "Duplicate"
msgstr "複製" msgstr "複製"
#: src/views/domain/SiteDuplicate.vue:43
msgid "Duplicated successfully"
msgstr "複製成功"
#: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5 #: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5
msgid "Edit %{n}" msgid "Edit %{n}"
msgstr "編輯 %{n}" msgstr "編輯 %{n}"
@ -366,16 +385,16 @@ msgstr "啟用失敗"
msgid "Enable TLS" msgid "Enable TLS"
msgstr "啟用 TLS" msgstr "啟用 TLS"
#: src/views/cert/Cert.vue:48 src/views/domain/cert/ChangeCert.vue:42 #: src/views/cert/Cert.vue:44 src/views/domain/cert/ChangeCert.vue:42
#: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainEdit.vue:6 #: src/views/domain/DomainEdit.vue:43 src/views/domain/DomainEdit.vue:6
#: src/views/domain/DomainEdit.vue:7 src/views/domain/DomainList.vue:10 #: 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:11 src/views/domain/DomainList.vue:12
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31 #: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:32
msgid "Enabled" msgid "Enabled"
msgstr "啟用" msgstr "啟用"
#: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainEdit.vue:137 #: src/views/domain/DomainAdd.vue:47 src/views/domain/DomainEdit.vue:137
#: src/views/domain/DomainList.vue:59 #: src/views/domain/DomainList.vue:60
msgid "Enabled successfully" msgid "Enabled successfully"
msgstr "啟用成功" msgstr "啟用成功"
@ -407,11 +426,11 @@ msgstr "過期時間: %{date}"
msgid "Export" msgid "Export"
msgstr "導出" msgstr "導出"
#: src/views/domain/DomainEdit.vue:149 src/views/domain/DomainList.vue:73 #: src/views/domain/DomainEdit.vue:149 src/views/domain/DomainList.vue:74
msgid "Failed to disable %{msg}" msgid "Failed to disable %{msg}"
msgstr "禁用失敗 %{msg}" msgstr "禁用失敗 %{msg}"
#: src/views/domain/DomainEdit.vue:140 src/views/domain/DomainList.vue:63 #: src/views/domain/DomainEdit.vue:140 src/views/domain/DomainList.vue:64
msgid "Failed to enable %{msg}" msgid "Failed to enable %{msg}"
msgstr "啟用失敗 %{msg}" msgstr "啟用失敗 %{msg}"
@ -599,7 +618,7 @@ msgstr "多行指令"
#: src/views/cert/Cert.vue:16 src/views/config/config.ts:9 #: src/views/cert/Cert.vue:16 src/views/config/config.ts:9
#: src/views/domain/cert/ChangeCert.vue:19 src/views/domain/DomainEdit.vue:46 #: src/views/domain/cert/ChangeCert.vue:19 src/views/domain/DomainEdit.vue:46
#: src/views/domain/DomainList.vue:15 #: src/views/domain/DomainList.vue:16 src/views/domain/SiteDuplicate.vue:5
msgid "Name" msgid "Name"
msgstr "名稱" msgstr "名稱"
@ -722,6 +741,12 @@ msgstr "執行核心升級錯誤"
msgid "Performing core upgrade" msgid "Performing core upgrade"
msgstr "正在執行核心升級" msgstr "正在執行核心升級"
#: src/views/domain/SiteDuplicate.vue:28
msgid ""
"Please input name, this will be used as the filename of the new "
"configuration!"
msgstr "請輸入名稱,這將作為新配置的文件名!"
#: src/views/other/Install.vue:36 #: src/views/other/Install.vue:36
msgid "Please input your E-mail!" msgid "Please input your E-mail!"
msgstr "請輸入您的郵箱!" msgstr "請輸入您的郵箱!"
@ -866,9 +891,8 @@ msgstr "上傳"
#: src/components/StdDataDisplay/StdTable.vue:168 #: src/components/StdDataDisplay/StdTable.vue:168
#: src/components/StdDataDisplay/StdTable.vue:343 #: src/components/StdDataDisplay/StdTable.vue:343
#: src/components/StdDataDisplay/StdTable.vue:463 #: src/components/StdDataDisplay/StdTable.vue:463
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainEdit.vue:87 #: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainList.vue:84
#: src/views/domain/DomainList.vue:83 src/views/other/Install.vue:71 #: src/views/other/Install.vue:71 src/views/preference/Preference.vue:41
#: src/views/preference/Preference.vue:41
msgid "Server error" msgid "Server error"
msgstr "伺服器錯誤" msgstr "伺服器錯誤"
@ -897,23 +921,23 @@ msgstr "網站日誌"
msgid "Sites List" msgid "Sites List"
msgstr "站點列表" msgstr "站點列表"
#: src/views/cert/Cert.vue:65 #: src/views/cert/Cert.vue:61
msgid "SSL Certificate Key Path" msgid "SSL Certificate Key Path"
msgstr "SSL 證書密鑰路徑" msgstr "SSL 證書密鑰路徑"
#: src/views/cert/Cert.vue:58 #: src/views/cert/Cert.vue:54
msgid "SSL Certificate Path" msgid "SSL Certificate Path"
msgstr "SSL證書路徑" msgstr "SSL證書路徑"
#: src/views/cert/Cert.vue:19 #: src/views/cert/Cert.vue:41
msgid "SSL Certification Content" msgid "SSL Certification Content"
msgstr "SSL認證內容" msgstr "SSL認證內容"
#: src/views/cert/Cert.vue:22 #: src/views/cert/Cert.vue:44
msgid "SSL Certification Key Content" msgid "SSL Certification Key Content"
msgstr "SSL 證書密鑰內容" msgstr "SSL 證書密鑰內容"
#: src/views/domain/DomainList.vue:24 #: src/views/domain/DomainList.vue:25
msgid "Status" msgid "Status"
msgstr "狀態" msgstr "狀態"
@ -975,12 +999,16 @@ msgstr "用戶名或密碼不正確"
msgid "Theme" msgid "Theme"
msgstr "外觀樣式" msgstr "外觀樣式"
#: src/views/cert/Cert.vue:15
msgid "This auto-cert item is invalid, please remove it."
msgstr "此自動證書項無效,請將其刪除。"
#: src/views/config/config.ts:14 #: src/views/config/config.ts:14
msgid "Type" msgid "Type"
msgstr "類型" msgstr "類型"
#: src/views/cert/Cert.vue:72 src/views/config/config.ts:29 #: src/views/cert/Cert.vue:68 src/views/config/config.ts:29
#: src/views/domain/DomainList.vue:41 src/views/user/User.vue:37 #: src/views/domain/DomainList.vue:42 src/views/user/User.vue:37
msgid "Updated at" msgid "Updated at"
msgstr "修改時間" msgstr "修改時間"
@ -1063,6 +1091,9 @@ msgctxt "Project"
msgid "License" msgid "License"
msgstr "開源軟體授權條款" msgstr "開源軟體授權條款"
#~ msgid "Domain"
#~ msgstr "網域"
#~ msgid "Do you want to reload Nginx?" #~ msgid "Do you want to reload Nginx?"
#~ msgstr "你想重載 Nginx 嗎?" #~ msgstr "你想重載 Nginx 嗎?"

View file

@ -1 +1 @@
{"version":"1.7.5","build_id":81,"total_build":151} {"version":"1.7.6","build_id":82,"total_build":152}

View file

@ -1 +1 @@
{"version":"1.7.5","build_id":81,"total_build":151} {"version":"1.7.6","build_id":82,"total_build":152}

View file

@ -1,157 +1,157 @@
package cert package cert
import ( import (
"crypto" "crypto"
"crypto/ecdsa" "crypto/ecdsa"
"crypto/elliptic" "crypto/elliptic"
"crypto/rand" "crypto/rand"
"crypto/tls" "crypto/tls"
"github.com/0xJacky/Nginx-UI/server/pkg/nginx" "github.com/0xJacky/Nginx-UI/server/pkg/nginx"
"github.com/0xJacky/Nginx-UI/server/settings" "github.com/0xJacky/Nginx-UI/server/settings"
"github.com/go-acme/lego/v4/certcrypto" "github.com/go-acme/lego/v4/certcrypto"
"github.com/go-acme/lego/v4/certificate" "github.com/go-acme/lego/v4/certificate"
"github.com/go-acme/lego/v4/challenge/http01" "github.com/go-acme/lego/v4/challenge/http01"
"github.com/go-acme/lego/v4/lego" "github.com/go-acme/lego/v4/lego"
"github.com/go-acme/lego/v4/registration" "github.com/go-acme/lego/v4/registration"
"github.com/pkg/errors" "github.com/pkg/errors"
"log" "log"
"net/http" "net/http"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
) )
// MyUser You'll need a user or account type that implements acme.User // MyUser You'll need a user or account type that implements acme.User
type MyUser struct { type MyUser struct {
Email string Email string
Registration *registration.Resource Registration *registration.Resource
key crypto.PrivateKey key crypto.PrivateKey
} }
func (u *MyUser) GetEmail() string { func (u *MyUser) GetEmail() string {
return u.Email return u.Email
} }
func (u *MyUser) GetRegistration() *registration.Resource { func (u *MyUser) GetRegistration() *registration.Resource {
return u.Registration return u.Registration
} }
func (u *MyUser) GetPrivateKey() crypto.PrivateKey { func (u *MyUser) GetPrivateKey() crypto.PrivateKey {
return u.key return u.key
} }
func IssueCert(domain []string, logChan chan string, errChan chan error) { func IssueCert(domain []string, logChan chan string, errChan chan error) {
defer func() { defer func() {
if err := recover(); err != nil { if err := recover(); err != nil {
log.Println("Issue Cert recover", err) log.Println("Issue Cert recover", err)
} }
}() }()
// Create a user. New accounts need an email and private key to start. // Create a user. New accounts need an email and private key to start.
logChan <- "Generating private key for registering account" logChan <- "Generating private key for registering account"
privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader) privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
if err != nil { if err != nil {
errChan <- errors.Wrap(err, "issue cert generate key error") errChan <- errors.Wrap(err, "issue cert generate key error")
return return
} }
logChan <- "Preparing lego configurations" logChan <- "Preparing lego configurations"
myUser := MyUser{ myUser := MyUser{
Email: settings.ServerSettings.Email, Email: settings.ServerSettings.Email,
key: privateKey, key: privateKey,
} }
config := lego.NewConfig(&myUser) config := lego.NewConfig(&myUser)
if settings.ServerSettings.Demo { if settings.ServerSettings.Demo {
config.CADirURL = "https://acme-staging-v02.api.letsencrypt.org/directory" config.CADirURL = "https://acme-staging-v02.api.letsencrypt.org/directory"
} }
if settings.ServerSettings.CADir != "" { if settings.ServerSettings.CADir != "" {
config.CADirURL = settings.ServerSettings.CADir config.CADirURL = settings.ServerSettings.CADir
if config.HTTPClient != nil { if config.HTTPClient != nil {
config.HTTPClient.Transport = &http.Transport{ config.HTTPClient.Transport = &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
} }
} }
} }
config.Certificate.KeyType = certcrypto.RSA2048 config.Certificate.KeyType = certcrypto.RSA2048
logChan <- "Creating client facilitates communication with the CA server" logChan <- "Creating client facilitates communication with the CA server"
// A client facilitates communication with the CA server. // A client facilitates communication with the CA server.
client, err := lego.NewClient(config) client, err := lego.NewClient(config)
if err != nil { if err != nil {
errChan <- errors.Wrap(err, "issue cert new client error") errChan <- errors.Wrap(err, "issue cert new client error")
return return
} }
logChan <- "Using HTTP01 challenge provider" logChan <- "Using HTTP01 challenge provider"
err = client.Challenge.SetHTTP01Provider( err = client.Challenge.SetHTTP01Provider(
http01.NewProviderServer("", http01.NewProviderServer("",
settings.ServerSettings.HTTPChallengePort, settings.ServerSettings.HTTPChallengePort,
), ),
) )
if err != nil { if err != nil {
errChan <- errors.Wrap(err, "fail to challenge") errChan <- errors.Wrap(err, "fail to challenge")
return return
} }
// New users will need to register // New users will need to register
logChan <- "Registering user" logChan <- "Registering user"
reg, err := client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true}) reg, err := client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true})
if err != nil { if err != nil {
errChan <- errors.Wrap(err, "fail to register") errChan <- errors.Wrap(err, "fail to register")
return return
} }
myUser.Registration = reg myUser.Registration = reg
request := certificate.ObtainRequest{ request := certificate.ObtainRequest{
Domains: domain, Domains: domain,
Bundle: true, Bundle: true,
} }
logChan <- "Obtaining certificate" logChan <- "Obtaining certificate"
certificates, err := client.Certificate.Obtain(request) certificates, err := client.Certificate.Obtain(request)
if err != nil { if err != nil {
errChan <- errors.Wrap(err, "fail to obtain") errChan <- errors.Wrap(err, "fail to obtain")
return return
} }
name := strings.Join(domain, "_") name := strings.Join(domain, "_")
saveDir := nginx.GetConfPath("ssl/" + name) saveDir := nginx.GetConfPath("ssl/" + name)
if _, err = os.Stat(saveDir); os.IsNotExist(err) { if _, err = os.Stat(saveDir); os.IsNotExist(err) {
err = os.MkdirAll(saveDir, 0755) err = os.MkdirAll(saveDir, 0755)
if err != nil { if err != nil {
errChan <- errors.Wrap(err, "fail to mkdir") errChan <- errors.Wrap(err, "fail to mkdir")
return return
} }
} }
// Each certificate comes back with the cert bytes, the bytes of the client's // Each certificate comes back with the cert bytes, the bytes of the client's
// private key, and a certificate URL. SAVE THESE TO DISK. // private key, and a certificate URL. SAVE THESE TO DISK.
logChan <- "Writing certificate to disk" logChan <- "Writing certificate to disk"
err = os.WriteFile(filepath.Join(saveDir, "fullchain.cer"), err = os.WriteFile(filepath.Join(saveDir, "fullchain.cer"),
certificates.Certificate, 0644) certificates.Certificate, 0644)
if err != nil { if err != nil {
errChan <- errors.Wrap(err, "error issue cert write fullchain.cer") errChan <- errors.Wrap(err, "error issue cert write fullchain.cer")
return return
} }
logChan <- "Writing certificate private key to disk" logChan <- "Writing certificate private key to disk"
err = os.WriteFile(filepath.Join(saveDir, "private.key"), err = os.WriteFile(filepath.Join(saveDir, "private.key"),
certificates.PrivateKey, 0644) certificates.PrivateKey, 0644)
if err != nil { if err != nil {
errChan <- errors.Wrap(err, "fail to write key") errChan <- errors.Wrap(err, "fail to write key")
return return
} }
close(errChan) close(errChan)
logChan <- "Reloading nginx" logChan <- "Reloading nginx"
nginx.Reload() nginx.Reload()
logChan <- "Finished" logChan <- "Finished"
close(logChan) close(logChan)
} }