mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-10 18:05:48 +02:00
chore: update translations
This commit is contained in:
parent
a9aacce0ad
commit
85dbbcc54b
11 changed files with 365 additions and 246 deletions
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "nginx-ui-frontend-next",
|
||||
"private": true,
|
||||
"version": "1.7.5",
|
||||
"version": "1.7.6",
|
||||
"type": "commonjs",
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
|
|
|
@ -17,8 +17,8 @@ msgstr "About"
|
|||
msgid "Access Logs"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:78 src/views/config/config.ts:36
|
||||
#: src/views/domain/DomainList.vue:47 src/views/user/User.vue:43
|
||||
#: src/views/cert/Cert.vue:74 src/views/config/config.ts:36
|
||||
#: src/views/domain/DomainList.vue:48 src/views/user/User.vue:43
|
||||
msgid "Action"
|
||||
msgstr "Action"
|
||||
|
||||
|
@ -85,11 +85,11 @@ msgstr ""
|
|||
msgid "Auto"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:8
|
||||
#: src/views/cert/Cert.vue:9
|
||||
msgid "Auto cert is enabled, please do not modify this certification."
|
||||
msgstr ""
|
||||
|
||||
|
@ -97,6 +97,10 @@ msgstr ""
|
|||
msgid "Auto Refresh"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:27
|
||||
msgid "Auto-Cert Log"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/IssueCert.vue:71
|
||||
msgid "Auto-renewal disabled for %{name}"
|
||||
msgstr "Auto-renewal disabled for %{name}"
|
||||
|
@ -152,7 +156,7 @@ msgstr "Certificate has expired"
|
|||
msgid "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"
|
||||
msgstr "Certificate Status"
|
||||
|
||||
|
@ -176,10 +180,15 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:35
|
||||
#: 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"
|
||||
msgstr "Comments"
|
||||
|
||||
#: src/views/cert/Cert.vue:32
|
||||
#, fuzzy
|
||||
msgid "Config Name"
|
||||
msgstr "Configuration Name"
|
||||
|
||||
#: src/views/domain/ngx_conf/ConfigTemplate.vue:61
|
||||
#, fuzzy
|
||||
msgid "Config Templates"
|
||||
|
@ -258,7 +267,13 @@ msgstr "Dashboard"
|
|||
msgid "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:21 src/views/domain/DomainList.vue:28
|
||||
#: src/views/domain/DomainList.vue:32
|
||||
|
@ -269,7 +284,7 @@ msgstr ""
|
|||
msgid "Delete ID: %{id}"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainList.vue:81
|
||||
#: src/views/domain/DomainList.vue:82
|
||||
msgid "Delete site: %{site_name}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -304,15 +319,15 @@ msgstr "Directives"
|
|||
msgid "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/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:9
|
||||
msgid "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"
|
||||
msgstr "Disabled successfully"
|
||||
|
||||
|
@ -320,14 +335,14 @@ msgstr "Disabled successfully"
|
|||
msgid "Disk IO"
|
||||
msgstr "Disk IO"
|
||||
|
||||
#: src/views/cert/Cert.vue:32
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainAdd.vue:58
|
||||
msgid "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
|
||||
msgid "Download latest release error"
|
||||
msgstr ""
|
||||
|
@ -338,9 +353,15 @@ msgstr ""
|
|||
|
||||
#: 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/SiteDuplicate.vue:2
|
||||
msgid "Duplicate"
|
||||
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
|
||||
msgid "Edit %{n}"
|
||||
msgstr "Edit %{n}"
|
||||
|
@ -369,16 +390,16 @@ msgstr "Enable failed"
|
|||
msgid "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:7 src/views/domain/DomainList.vue:10
|
||||
#: src/views/domain/DomainList.vue:11 src/views/domain/DomainList.vue:12
|
||||
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31
|
||||
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:32
|
||||
msgid "Enabled"
|
||||
msgstr "Enabled"
|
||||
|
||||
#: 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"
|
||||
msgstr "Enabled successfully"
|
||||
|
||||
|
@ -410,11 +431,11 @@ msgstr "Expiration Date: %{date}"
|
|||
msgid "Export"
|
||||
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}"
|
||||
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}"
|
||||
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/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"
|
||||
msgstr "Name"
|
||||
|
||||
|
@ -736,6 +757,12 @@ msgstr ""
|
|||
msgid "Performing core upgrade"
|
||||
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
|
||||
msgid "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:343
|
||||
#: src/components/StdDataDisplay/StdTable.vue:463
|
||||
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainEdit.vue:87
|
||||
#: src/views/domain/DomainList.vue:83 src/views/other/Install.vue:71
|
||||
#: src/views/preference/Preference.vue:41
|
||||
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainList.vue:84
|
||||
#: src/views/other/Install.vue:71 src/views/preference/Preference.vue:41
|
||||
msgid "Server error"
|
||||
msgstr "Server error"
|
||||
|
||||
|
@ -917,27 +943,27 @@ msgstr "Sites List"
|
|||
msgid "Sites List"
|
||||
msgstr "Sites List"
|
||||
|
||||
#: src/views/cert/Cert.vue:65
|
||||
#: src/views/cert/Cert.vue:61
|
||||
#, fuzzy
|
||||
msgid "SSL Certificate Key Path"
|
||||
msgstr "Certificate Status"
|
||||
|
||||
#: src/views/cert/Cert.vue:58
|
||||
#: src/views/cert/Cert.vue:54
|
||||
#, fuzzy
|
||||
msgid "SSL Certificate Path"
|
||||
msgstr "Certificate Status"
|
||||
|
||||
#: src/views/cert/Cert.vue:19
|
||||
#: src/views/cert/Cert.vue:41
|
||||
#, fuzzy
|
||||
msgid "SSL Certification Content"
|
||||
msgstr "Certificate Status"
|
||||
|
||||
#: src/views/cert/Cert.vue:22
|
||||
#: src/views/cert/Cert.vue:44
|
||||
#, fuzzy
|
||||
msgid "SSL Certification Key Content"
|
||||
msgstr "Certificate Status"
|
||||
|
||||
#: src/views/domain/DomainList.vue:24
|
||||
#: src/views/domain/DomainList.vue:25
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
|
@ -1003,12 +1029,16 @@ msgstr ""
|
|||
msgid "Theme"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:15
|
||||
msgid "This auto-cert item is invalid, please remove it."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/config.ts:14
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:72 src/views/config/config.ts:29
|
||||
#: src/views/domain/DomainList.vue:41 src/views/user/User.vue:37
|
||||
#: src/views/cert/Cert.vue:68 src/views/config/config.ts:29
|
||||
#: src/views/domain/DomainList.vue:42 src/views/user/User.vue:37
|
||||
msgid "Updated at"
|
||||
msgstr "Updated at"
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@ msgstr ""
|
|||
msgid "Access Logs"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:78
|
||||
#: src/views/cert/Cert.vue:74
|
||||
#: src/views/config/config.ts:36
|
||||
#: src/views/domain/DomainList.vue:47
|
||||
#: src/views/domain/DomainList.vue:48
|
||||
#: src/views/user/User.vue:43
|
||||
msgid "Action"
|
||||
msgstr ""
|
||||
|
@ -83,12 +83,12 @@ msgstr ""
|
|||
msgid "Auto"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:41
|
||||
#: src/views/cert/Cert.vue:37
|
||||
#: src/views/domain/cert/ChangeCert.vue:35
|
||||
msgid "Auto Cert"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:8
|
||||
#: src/views/cert/Cert.vue:9
|
||||
msgid "Auto cert is enabled, please do not modify this certification."
|
||||
msgstr ""
|
||||
|
||||
|
@ -96,6 +96,10 @@ msgstr ""
|
|||
msgid "Auto Refresh"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:27
|
||||
msgid "Auto-Cert Log"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/cert/IssueCert.vue:71
|
||||
msgid "Auto-renewal disabled for %{name}"
|
||||
msgstr ""
|
||||
|
@ -153,7 +157,7 @@ msgstr ""
|
|||
msgid "Certificate is valid"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:12
|
||||
#: src/views/cert/Cert.vue:34
|
||||
#: src/views/domain/cert/Cert.vue:35
|
||||
msgid "Certificate Status"
|
||||
msgstr ""
|
||||
|
@ -179,10 +183,14 @@ msgstr ""
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:35
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:32
|
||||
msgid "Config Name"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/ngx_conf/ConfigTemplate.vue:61
|
||||
msgid "Config Templates"
|
||||
msgstr ""
|
||||
|
@ -263,7 +271,13 @@ msgstr ""
|
|||
msgid "Database (Optional, default: database)"
|
||||
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:20
|
||||
#: src/views/domain/DomainList.vue:21
|
||||
|
@ -276,7 +290,7 @@ msgstr ""
|
|||
msgid "Delete ID: %{id}"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainList.vue:81
|
||||
#: src/views/domain/DomainList.vue:82
|
||||
msgid "Delete site: %{site_name}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -312,12 +326,12 @@ msgstr ""
|
|||
msgid "Disable auto-renewal failed for %{name}"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:51
|
||||
#: 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/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:8
|
||||
#: src/views/domain/DomainList.vue:9
|
||||
|
@ -325,7 +339,7 @@ msgid "Disabled"
|
|||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainEdit.vue:146
|
||||
#: src/views/domain/DomainList.vue:69
|
||||
#: src/views/domain/DomainList.vue:70
|
||||
msgid "Disabled successfully"
|
||||
msgstr ""
|
||||
|
||||
|
@ -333,14 +347,14 @@ msgstr ""
|
|||
msgid "Disk IO"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:32
|
||||
msgid "Domain"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainAdd.vue:58
|
||||
msgid "Domain Config Created Successfully"
|
||||
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
|
||||
msgid "Download latest release error"
|
||||
msgstr ""
|
||||
|
@ -353,9 +367,14 @@ msgstr ""
|
|||
#: src/views/domain/DomainList.vue:15
|
||||
#: src/views/domain/DomainList.vue:16
|
||||
#: src/views/domain/DomainList.vue:23
|
||||
#: src/views/domain/SiteDuplicate.vue:2
|
||||
msgid "Duplicate"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/SiteDuplicate.vue:43
|
||||
msgid "Duplicated successfully"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainEdit.vue:4
|
||||
#: src/views/domain/DomainEdit.vue:5
|
||||
msgid "Edit %{n}"
|
||||
|
@ -386,7 +405,7 @@ msgstr ""
|
|||
msgid "Enable TLS"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:48
|
||||
#: 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
|
||||
|
@ -395,13 +414,13 @@ msgstr ""
|
|||
#: 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:32
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -437,12 +456,12 @@ msgid "Export"
|
|||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainEdit.vue:149
|
||||
#: src/views/domain/DomainList.vue:73
|
||||
#: src/views/domain/DomainList.vue:74
|
||||
msgid "Failed to disable %{msg}"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainEdit.vue:140
|
||||
#: src/views/domain/DomainList.vue:63
|
||||
#: src/views/domain/DomainList.vue:64
|
||||
msgid "Failed to enable %{msg}"
|
||||
msgstr ""
|
||||
|
||||
|
@ -636,7 +655,8 @@ msgstr ""
|
|||
#: src/views/config/config.ts:9
|
||||
#: 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"
|
||||
msgstr ""
|
||||
|
||||
|
@ -765,6 +785,10 @@ msgstr ""
|
|||
msgid "Performing core upgrade"
|
||||
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
|
||||
msgid "Please input your E-mail!"
|
||||
msgstr ""
|
||||
|
@ -924,8 +948,7 @@ msgstr ""
|
|||
#: src/components/StdDataDisplay/StdTable.vue:343
|
||||
#: src/components/StdDataDisplay/StdTable.vue:463
|
||||
#: src/views/config/ConfigEdit.vue:32
|
||||
#: src/views/domain/DomainEdit.vue:87
|
||||
#: src/views/domain/DomainList.vue:83
|
||||
#: src/views/domain/DomainList.vue:84
|
||||
#: src/views/other/Install.vue:71
|
||||
#: src/views/preference/Preference.vue:41
|
||||
msgid "Server error"
|
||||
|
@ -957,23 +980,23 @@ msgstr ""
|
|||
msgid "Sites List"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:65
|
||||
#: src/views/cert/Cert.vue:61
|
||||
msgid "SSL Certificate Key Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:58
|
||||
#: src/views/cert/Cert.vue:54
|
||||
msgid "SSL Certificate Path"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:19
|
||||
#: src/views/cert/Cert.vue:41
|
||||
msgid "SSL Certification Content"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:22
|
||||
#: src/views/cert/Cert.vue:44
|
||||
msgid "SSL Certification Key Content"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/domain/DomainList.vue:24
|
||||
#: src/views/domain/DomainList.vue:25
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1030,13 +1053,17 @@ msgstr ""
|
|||
msgid "Theme"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:15
|
||||
msgid "This auto-cert item is invalid, please remove it."
|
||||
msgstr ""
|
||||
|
||||
#: src/views/config/config.ts:14
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#: src/views/cert/Cert.vue:72
|
||||
#: src/views/cert/Cert.vue:68
|
||||
#: src/views/config/config.ts:29
|
||||
#: src/views/domain/DomainList.vue:41
|
||||
#: src/views/domain/DomainList.vue:42
|
||||
#: src/views/user/User.vue:37
|
||||
msgid "Updated at"
|
||||
msgstr ""
|
||||
|
|
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -20,8 +20,8 @@ msgstr "关于"
|
|||
msgid "Access Logs"
|
||||
msgstr "访问日志"
|
||||
|
||||
#: src/views/cert/Cert.vue:78 src/views/config/config.ts:36
|
||||
#: src/views/domain/DomainList.vue:47 src/views/user/User.vue:43
|
||||
#: src/views/cert/Cert.vue:74 src/views/config/config.ts:36
|
||||
#: src/views/domain/DomainList.vue:48 src/views/user/User.vue:43
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
||||
|
@ -86,11 +86,11 @@ msgstr "作者"
|
|||
msgid "Auto"
|
||||
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"
|
||||
msgstr "自动更新"
|
||||
|
||||
#: src/views/cert/Cert.vue:8
|
||||
#: src/views/cert/Cert.vue:9
|
||||
msgid "Auto cert is enabled, please do not modify this certification."
|
||||
msgstr "自动更新已启用,请勿修改此证书配置。"
|
||||
|
||||
|
@ -98,6 +98,10 @@ msgstr "自动更新已启用,请勿修改此证书配置。"
|
|||
msgid "Auto Refresh"
|
||||
msgstr "自动刷新"
|
||||
|
||||
#: src/views/cert/Cert.vue:27
|
||||
msgid "Auto-Cert Log"
|
||||
msgstr "证书自动续期日志"
|
||||
|
||||
#: src/views/domain/cert/IssueCert.vue:71
|
||||
msgid "Auto-renewal disabled for %{name}"
|
||||
msgstr "成功关闭 %{name} 自动续签"
|
||||
|
@ -151,7 +155,7 @@ msgstr "此证书已过期"
|
|||
msgid "Certificate is valid"
|
||||
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"
|
||||
msgstr "证书状态"
|
||||
|
||||
|
@ -173,10 +177,14 @@ msgstr "重新检查"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:35
|
||||
#: 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"
|
||||
msgstr "注释"
|
||||
|
||||
#: src/views/cert/Cert.vue:32
|
||||
msgid "Config Name"
|
||||
msgstr "配置文件名称"
|
||||
|
||||
#: src/views/domain/ngx_conf/ConfigTemplate.vue:61
|
||||
msgid "Config Templates"
|
||||
msgstr "配置"
|
||||
|
@ -254,7 +262,13 @@ msgstr "仪表盘"
|
|||
msgid "Database (Optional, default: 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:21 src/views/domain/DomainList.vue:28
|
||||
#: src/views/domain/DomainList.vue:32
|
||||
|
@ -265,7 +279,7 @@ msgstr "删除"
|
|||
msgid "Delete ID: %{id}"
|
||||
msgstr "删除 ID: %{id}"
|
||||
|
||||
#: src/views/domain/DomainList.vue:81
|
||||
#: src/views/domain/DomainList.vue:82
|
||||
msgid "Delete site: %{site_name}"
|
||||
msgstr "删除站点: %{site_name}"
|
||||
|
||||
|
@ -300,15 +314,15 @@ msgstr "指令"
|
|||
msgid "Disable auto-renewal failed for %{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/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:9
|
||||
msgid "Disabled"
|
||||
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"
|
||||
msgstr "禁用成功"
|
||||
|
||||
|
@ -316,14 +330,14 @@ msgstr "禁用成功"
|
|||
msgid "Disk IO"
|
||||
msgstr "磁盘 IO"
|
||||
|
||||
#: src/views/cert/Cert.vue:32
|
||||
msgid "Domain"
|
||||
msgstr "域名"
|
||||
|
||||
#: src/views/domain/DomainAdd.vue:58
|
||||
msgid "Domain Config Created Successfully"
|
||||
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
|
||||
msgid "Download latest release error"
|
||||
msgstr "下载最新版本错误"
|
||||
|
@ -334,9 +348,14 @@ msgstr "下载最新版本"
|
|||
|
||||
#: 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/SiteDuplicate.vue:2
|
||||
msgid "Duplicate"
|
||||
msgstr "复制"
|
||||
|
||||
#: src/views/domain/SiteDuplicate.vue:43
|
||||
msgid "Duplicated successfully"
|
||||
msgstr "复制成功"
|
||||
|
||||
#: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5
|
||||
msgid "Edit %{n}"
|
||||
msgstr "编辑 %{n}"
|
||||
|
@ -365,16 +384,16 @@ msgstr "启用失败"
|
|||
msgid "Enable 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:7 src/views/domain/DomainList.vue:10
|
||||
#: src/views/domain/DomainList.vue:11 src/views/domain/DomainList.vue:12
|
||||
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31
|
||||
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:32
|
||||
msgid "Enabled"
|
||||
msgstr "启用"
|
||||
|
||||
#: 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"
|
||||
msgstr "启用成功"
|
||||
|
||||
|
@ -406,11 +425,11 @@ msgstr "过期时间: %{date}"
|
|||
msgid "Export"
|
||||
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}"
|
||||
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}"
|
||||
msgstr "启用失败 %{msg}"
|
||||
|
||||
|
@ -598,7 +617,7 @@ msgstr "单行指令"
|
|||
|
||||
#: 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/DomainList.vue:15
|
||||
#: src/views/domain/DomainList.vue:16 src/views/domain/SiteDuplicate.vue:5
|
||||
msgid "Name"
|
||||
msgstr "名称"
|
||||
|
||||
|
@ -721,6 +740,12 @@ msgstr "执行核心升级错误"
|
|||
msgid "Performing core upgrade"
|
||||
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
|
||||
msgid "Please input your E-mail!"
|
||||
msgstr "请输入您的邮箱!"
|
||||
|
@ -865,9 +890,8 @@ msgstr "上传"
|
|||
#: src/components/StdDataDisplay/StdTable.vue:168
|
||||
#: src/components/StdDataDisplay/StdTable.vue:343
|
||||
#: src/components/StdDataDisplay/StdTable.vue:463
|
||||
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainEdit.vue:87
|
||||
#: src/views/domain/DomainList.vue:83 src/views/other/Install.vue:71
|
||||
#: src/views/preference/Preference.vue:41
|
||||
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainList.vue:84
|
||||
#: src/views/other/Install.vue:71 src/views/preference/Preference.vue:41
|
||||
msgid "Server error"
|
||||
msgstr "服务器错误"
|
||||
|
||||
|
@ -896,23 +920,23 @@ msgstr "站点列表"
|
|||
msgid "Sites List"
|
||||
msgstr "站点列表"
|
||||
|
||||
#: src/views/cert/Cert.vue:65
|
||||
#: src/views/cert/Cert.vue:61
|
||||
msgid "SSL Certificate Key Path"
|
||||
msgstr "SSL证书密钥路径"
|
||||
|
||||
#: src/views/cert/Cert.vue:58
|
||||
#: src/views/cert/Cert.vue:54
|
||||
msgid "SSL Certificate Path"
|
||||
msgstr "SSL证书路径"
|
||||
|
||||
#: src/views/cert/Cert.vue:19
|
||||
#: src/views/cert/Cert.vue:41
|
||||
msgid "SSL Certification Content"
|
||||
msgstr "SSL证书内容"
|
||||
|
||||
#: src/views/cert/Cert.vue:22
|
||||
#: src/views/cert/Cert.vue:44
|
||||
msgid "SSL Certification Key Content"
|
||||
msgstr "SSL证书密钥内容"
|
||||
|
||||
#: src/views/domain/DomainList.vue:24
|
||||
#: src/views/domain/DomainList.vue:25
|
||||
msgid "Status"
|
||||
msgstr "状态"
|
||||
|
||||
|
@ -973,12 +997,16 @@ msgstr "用户名或密码错误"
|
|||
msgid "Theme"
|
||||
msgstr "主题"
|
||||
|
||||
#: src/views/cert/Cert.vue:15
|
||||
msgid "This auto-cert item is invalid, please remove it."
|
||||
msgstr "这个证书自动续期项目是无效的,请删除。"
|
||||
|
||||
#: src/views/config/config.ts:14
|
||||
msgid "Type"
|
||||
msgstr "类型"
|
||||
|
||||
#: src/views/cert/Cert.vue:72 src/views/config/config.ts:29
|
||||
#: src/views/domain/DomainList.vue:41 src/views/user/User.vue:37
|
||||
#: src/views/cert/Cert.vue:68 src/views/config/config.ts:29
|
||||
#: src/views/domain/DomainList.vue:42 src/views/user/User.vue:37
|
||||
msgid "Updated at"
|
||||
msgstr "修改时间"
|
||||
|
||||
|
@ -1061,6 +1089,9 @@ msgctxt "Project"
|
|||
msgid "License"
|
||||
msgstr "开源许可"
|
||||
|
||||
#~ msgid "Domain"
|
||||
#~ msgstr "域名"
|
||||
|
||||
#~ msgid "Do you want to reload Nginx?"
|
||||
#~ msgstr "你需要重载 Nginx 吗?"
|
||||
|
||||
|
|
Binary file not shown.
|
@ -21,8 +21,8 @@ msgstr "關於"
|
|||
msgid "Access Logs"
|
||||
msgstr "訪問日誌"
|
||||
|
||||
#: src/views/cert/Cert.vue:78 src/views/config/config.ts:36
|
||||
#: src/views/domain/DomainList.vue:47 src/views/user/User.vue:43
|
||||
#: src/views/cert/Cert.vue:74 src/views/config/config.ts:36
|
||||
#: src/views/domain/DomainList.vue:48 src/views/user/User.vue:43
|
||||
msgid "Action"
|
||||
msgstr "操作"
|
||||
|
||||
|
@ -87,11 +87,11 @@ msgstr "作者"
|
|||
msgid "Auto"
|
||||
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"
|
||||
msgstr "自動更新"
|
||||
|
||||
#: src/views/cert/Cert.vue:8
|
||||
#: src/views/cert/Cert.vue:9
|
||||
msgid "Auto cert is enabled, please do not modify this certification."
|
||||
msgstr "自動證書已啟用,請不要修改此證書。"
|
||||
|
||||
|
@ -99,6 +99,10 @@ msgstr "自動證書已啟用,請不要修改此證書。"
|
|||
msgid "Auto Refresh"
|
||||
msgstr "自動刷新"
|
||||
|
||||
#: src/views/cert/Cert.vue:27
|
||||
msgid "Auto-Cert Log"
|
||||
msgstr "自動證書日誌"
|
||||
|
||||
#: src/views/domain/cert/IssueCert.vue:71
|
||||
msgid "Auto-renewal disabled for %{name}"
|
||||
msgstr "已關閉 %{name} 自動續簽"
|
||||
|
@ -152,7 +156,7 @@ msgstr "此憑證已過期"
|
|||
msgid "Certificate is valid"
|
||||
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"
|
||||
msgstr "憑證狀態"
|
||||
|
||||
|
@ -174,10 +178,14 @@ msgstr "再次檢查"
|
|||
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34
|
||||
#: src/views/domain/ngx_conf/LocationEditor.vue:35
|
||||
#: 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"
|
||||
msgstr "註釋"
|
||||
|
||||
#: src/views/cert/Cert.vue:32
|
||||
msgid "Config Name"
|
||||
msgstr "配置名稱"
|
||||
|
||||
#: src/views/domain/ngx_conf/ConfigTemplate.vue:61
|
||||
msgid "Config Templates"
|
||||
msgstr "配置模板"
|
||||
|
@ -255,7 +263,13 @@ msgstr "儀表盤"
|
|||
msgid "Database (Optional, default: 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:21 src/views/domain/DomainList.vue:28
|
||||
#: src/views/domain/DomainList.vue:32
|
||||
|
@ -266,7 +280,7 @@ msgstr "刪除"
|
|||
msgid "Delete ID: %{id}"
|
||||
msgstr "刪除 ID: %{id}"
|
||||
|
||||
#: src/views/domain/DomainList.vue:81
|
||||
#: src/views/domain/DomainList.vue:82
|
||||
msgid "Delete site: %{site_name}"
|
||||
msgstr "刪除站點:%{site_name}"
|
||||
|
||||
|
@ -301,15 +315,15 @@ msgstr "指令"
|
|||
msgid "Disable auto-renewal failed for %{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/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:9
|
||||
msgid "Disabled"
|
||||
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"
|
||||
msgstr "禁用成功"
|
||||
|
||||
|
@ -317,14 +331,14 @@ msgstr "禁用成功"
|
|||
msgid "Disk IO"
|
||||
msgstr "磁碟 IO"
|
||||
|
||||
#: src/views/cert/Cert.vue:32
|
||||
msgid "Domain"
|
||||
msgstr "網域"
|
||||
|
||||
#: src/views/domain/DomainAdd.vue:58
|
||||
msgid "Domain Config Created Successfully"
|
||||
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
|
||||
msgid "Download latest release error"
|
||||
msgstr "下載最新版本錯誤"
|
||||
|
@ -335,9 +349,14 @@ msgstr "正在下載最新版本"
|
|||
|
||||
#: 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/SiteDuplicate.vue:2
|
||||
msgid "Duplicate"
|
||||
msgstr "複製"
|
||||
|
||||
#: src/views/domain/SiteDuplicate.vue:43
|
||||
msgid "Duplicated successfully"
|
||||
msgstr "複製成功"
|
||||
|
||||
#: src/views/domain/DomainEdit.vue:4 src/views/domain/DomainEdit.vue:5
|
||||
msgid "Edit %{n}"
|
||||
msgstr "編輯 %{n}"
|
||||
|
@ -366,16 +385,16 @@ msgstr "啟用失敗"
|
|||
msgid "Enable 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:7 src/views/domain/DomainList.vue:10
|
||||
#: src/views/domain/DomainList.vue:11 src/views/domain/DomainList.vue:12
|
||||
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:31
|
||||
#: src/views/domain/DomainList.vue:19 src/views/domain/DomainList.vue:32
|
||||
msgid "Enabled"
|
||||
msgstr "啟用"
|
||||
|
||||
#: 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"
|
||||
msgstr "啟用成功"
|
||||
|
||||
|
@ -407,11 +426,11 @@ msgstr "過期時間: %{date}"
|
|||
msgid "Export"
|
||||
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}"
|
||||
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}"
|
||||
msgstr "啟用失敗 %{msg}"
|
||||
|
||||
|
@ -599,7 +618,7 @@ msgstr "多行指令"
|
|||
|
||||
#: 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/DomainList.vue:15
|
||||
#: src/views/domain/DomainList.vue:16 src/views/domain/SiteDuplicate.vue:5
|
||||
msgid "Name"
|
||||
msgstr "名稱"
|
||||
|
||||
|
@ -722,6 +741,12 @@ msgstr "執行核心升級錯誤"
|
|||
msgid "Performing core upgrade"
|
||||
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
|
||||
msgid "Please input your E-mail!"
|
||||
msgstr "請輸入您的郵箱!"
|
||||
|
@ -866,9 +891,8 @@ msgstr "上傳"
|
|||
#: src/components/StdDataDisplay/StdTable.vue:168
|
||||
#: src/components/StdDataDisplay/StdTable.vue:343
|
||||
#: src/components/StdDataDisplay/StdTable.vue:463
|
||||
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainEdit.vue:87
|
||||
#: src/views/domain/DomainList.vue:83 src/views/other/Install.vue:71
|
||||
#: src/views/preference/Preference.vue:41
|
||||
#: src/views/config/ConfigEdit.vue:32 src/views/domain/DomainList.vue:84
|
||||
#: src/views/other/Install.vue:71 src/views/preference/Preference.vue:41
|
||||
msgid "Server error"
|
||||
msgstr "伺服器錯誤"
|
||||
|
||||
|
@ -897,23 +921,23 @@ msgstr "網站日誌"
|
|||
msgid "Sites List"
|
||||
msgstr "站點列表"
|
||||
|
||||
#: src/views/cert/Cert.vue:65
|
||||
#: src/views/cert/Cert.vue:61
|
||||
msgid "SSL Certificate Key Path"
|
||||
msgstr "SSL 證書密鑰路徑"
|
||||
|
||||
#: src/views/cert/Cert.vue:58
|
||||
#: src/views/cert/Cert.vue:54
|
||||
msgid "SSL Certificate Path"
|
||||
msgstr "SSL證書路徑"
|
||||
|
||||
#: src/views/cert/Cert.vue:19
|
||||
#: src/views/cert/Cert.vue:41
|
||||
msgid "SSL Certification Content"
|
||||
msgstr "SSL認證內容"
|
||||
|
||||
#: src/views/cert/Cert.vue:22
|
||||
#: src/views/cert/Cert.vue:44
|
||||
msgid "SSL Certification Key Content"
|
||||
msgstr "SSL 證書密鑰內容"
|
||||
|
||||
#: src/views/domain/DomainList.vue:24
|
||||
#: src/views/domain/DomainList.vue:25
|
||||
msgid "Status"
|
||||
msgstr "狀態"
|
||||
|
||||
|
@ -975,12 +999,16 @@ msgstr "用戶名或密碼不正確"
|
|||
msgid "Theme"
|
||||
msgstr "外觀樣式"
|
||||
|
||||
#: src/views/cert/Cert.vue:15
|
||||
msgid "This auto-cert item is invalid, please remove it."
|
||||
msgstr "此自動證書項無效,請將其刪除。"
|
||||
|
||||
#: src/views/config/config.ts:14
|
||||
msgid "Type"
|
||||
msgstr "類型"
|
||||
|
||||
#: src/views/cert/Cert.vue:72 src/views/config/config.ts:29
|
||||
#: src/views/domain/DomainList.vue:41 src/views/user/User.vue:37
|
||||
#: src/views/cert/Cert.vue:68 src/views/config/config.ts:29
|
||||
#: src/views/domain/DomainList.vue:42 src/views/user/User.vue:37
|
||||
msgid "Updated at"
|
||||
msgstr "修改時間"
|
||||
|
||||
|
@ -1063,6 +1091,9 @@ msgctxt "Project"
|
|||
msgid "License"
|
||||
msgstr "開源軟體授權條款"
|
||||
|
||||
#~ msgid "Domain"
|
||||
#~ msgstr "網域"
|
||||
|
||||
#~ msgid "Do you want to reload Nginx?"
|
||||
#~ msgstr "你想重載 Nginx 嗎?"
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
{"version":"1.7.5","build_id":81,"total_build":151}
|
||||
{"version":"1.7.6","build_id":82,"total_build":152}
|
|
@ -1 +1 @@
|
|||
{"version":"1.7.5","build_id":81,"total_build":151}
|
||||
{"version":"1.7.6","build_id":82,"total_build":152}
|
|
@ -1,157 +1,157 @@
|
|||
package cert
|
||||
|
||||
import (
|
||||
"crypto"
|
||||
"crypto/ecdsa"
|
||||
"crypto/elliptic"
|
||||
"crypto/rand"
|
||||
"crypto/tls"
|
||||
"github.com/0xJacky/Nginx-UI/server/pkg/nginx"
|
||||
"github.com/0xJacky/Nginx-UI/server/settings"
|
||||
"github.com/go-acme/lego/v4/certcrypto"
|
||||
"github.com/go-acme/lego/v4/certificate"
|
||||
"github.com/go-acme/lego/v4/challenge/http01"
|
||||
"github.com/go-acme/lego/v4/lego"
|
||||
"github.com/go-acme/lego/v4/registration"
|
||||
"github.com/pkg/errors"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"crypto"
|
||||
"crypto/ecdsa"
|
||||
"crypto/elliptic"
|
||||
"crypto/rand"
|
||||
"crypto/tls"
|
||||
"github.com/0xJacky/Nginx-UI/server/pkg/nginx"
|
||||
"github.com/0xJacky/Nginx-UI/server/settings"
|
||||
"github.com/go-acme/lego/v4/certcrypto"
|
||||
"github.com/go-acme/lego/v4/certificate"
|
||||
"github.com/go-acme/lego/v4/challenge/http01"
|
||||
"github.com/go-acme/lego/v4/lego"
|
||||
"github.com/go-acme/lego/v4/registration"
|
||||
"github.com/pkg/errors"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// MyUser You'll need a user or account type that implements acme.User
|
||||
type MyUser struct {
|
||||
Email string
|
||||
Registration *registration.Resource
|
||||
key crypto.PrivateKey
|
||||
Email string
|
||||
Registration *registration.Resource
|
||||
key crypto.PrivateKey
|
||||
}
|
||||
|
||||
func (u *MyUser) GetEmail() string {
|
||||
return u.Email
|
||||
return u.Email
|
||||
}
|
||||
func (u *MyUser) GetRegistration() *registration.Resource {
|
||||
return u.Registration
|
||||
return u.Registration
|
||||
}
|
||||
func (u *MyUser) GetPrivateKey() crypto.PrivateKey {
|
||||
return u.key
|
||||
return u.key
|
||||
}
|
||||
|
||||
func IssueCert(domain []string, logChan chan string, errChan chan error) {
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
log.Println("Issue Cert recover", err)
|
||||
}
|
||||
}()
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
log.Println("Issue Cert recover", err)
|
||||
}
|
||||
}()
|
||||
|
||||
// Create a user. New accounts need an email and private key to start.
|
||||
logChan <- "Generating private key for registering account"
|
||||
privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "issue cert generate key error")
|
||||
return
|
||||
}
|
||||
// Create a user. New accounts need an email and private key to start.
|
||||
logChan <- "Generating private key for registering account"
|
||||
privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "issue cert generate key error")
|
||||
return
|
||||
}
|
||||
|
||||
logChan <- "Preparing lego configurations"
|
||||
myUser := MyUser{
|
||||
Email: settings.ServerSettings.Email,
|
||||
key: privateKey,
|
||||
}
|
||||
logChan <- "Preparing lego configurations"
|
||||
myUser := MyUser{
|
||||
Email: settings.ServerSettings.Email,
|
||||
key: privateKey,
|
||||
}
|
||||
|
||||
config := lego.NewConfig(&myUser)
|
||||
config := lego.NewConfig(&myUser)
|
||||
|
||||
if settings.ServerSettings.Demo {
|
||||
config.CADirURL = "https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
}
|
||||
if settings.ServerSettings.Demo {
|
||||
config.CADirURL = "https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
}
|
||||
|
||||
if settings.ServerSettings.CADir != "" {
|
||||
config.CADirURL = settings.ServerSettings.CADir
|
||||
if config.HTTPClient != nil {
|
||||
config.HTTPClient.Transport = &http.Transport{
|
||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
||||
}
|
||||
}
|
||||
}
|
||||
if settings.ServerSettings.CADir != "" {
|
||||
config.CADirURL = settings.ServerSettings.CADir
|
||||
if config.HTTPClient != nil {
|
||||
config.HTTPClient.Transport = &http.Transport{
|
||||
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
config.Certificate.KeyType = certcrypto.RSA2048
|
||||
config.Certificate.KeyType = certcrypto.RSA2048
|
||||
|
||||
logChan <- "Creating client facilitates communication with the CA server"
|
||||
// A client facilitates communication with the CA server.
|
||||
client, err := lego.NewClient(config)
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "issue cert new client error")
|
||||
return
|
||||
}
|
||||
logChan <- "Creating client facilitates communication with the CA server"
|
||||
// A client facilitates communication with the CA server.
|
||||
client, err := lego.NewClient(config)
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "issue cert new client error")
|
||||
return
|
||||
}
|
||||
|
||||
logChan <- "Using HTTP01 challenge provider"
|
||||
err = client.Challenge.SetHTTP01Provider(
|
||||
http01.NewProviderServer("",
|
||||
settings.ServerSettings.HTTPChallengePort,
|
||||
),
|
||||
)
|
||||
logChan <- "Using HTTP01 challenge provider"
|
||||
err = client.Challenge.SetHTTP01Provider(
|
||||
http01.NewProviderServer("",
|
||||
settings.ServerSettings.HTTPChallengePort,
|
||||
),
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to challenge")
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to challenge")
|
||||
return
|
||||
}
|
||||
|
||||
// New users will need to register
|
||||
logChan <- "Registering user"
|
||||
reg, err := client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true})
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to register")
|
||||
return
|
||||
}
|
||||
myUser.Registration = reg
|
||||
// New users will need to register
|
||||
logChan <- "Registering user"
|
||||
reg, err := client.Registration.Register(registration.RegisterOptions{TermsOfServiceAgreed: true})
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to register")
|
||||
return
|
||||
}
|
||||
myUser.Registration = reg
|
||||
|
||||
request := certificate.ObtainRequest{
|
||||
Domains: domain,
|
||||
Bundle: true,
|
||||
}
|
||||
request := certificate.ObtainRequest{
|
||||
Domains: domain,
|
||||
Bundle: true,
|
||||
}
|
||||
|
||||
logChan <- "Obtaining certificate"
|
||||
certificates, err := client.Certificate.Obtain(request)
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to obtain")
|
||||
return
|
||||
}
|
||||
name := strings.Join(domain, "_")
|
||||
saveDir := nginx.GetConfPath("ssl/" + name)
|
||||
if _, err = os.Stat(saveDir); os.IsNotExist(err) {
|
||||
err = os.MkdirAll(saveDir, 0755)
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to mkdir")
|
||||
return
|
||||
}
|
||||
}
|
||||
logChan <- "Obtaining certificate"
|
||||
certificates, err := client.Certificate.Obtain(request)
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to obtain")
|
||||
return
|
||||
}
|
||||
name := strings.Join(domain, "_")
|
||||
saveDir := nginx.GetConfPath("ssl/" + name)
|
||||
if _, err = os.Stat(saveDir); os.IsNotExist(err) {
|
||||
err = os.MkdirAll(saveDir, 0755)
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to mkdir")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Each certificate comes back with the cert bytes, the bytes of the client's
|
||||
// private key, and a certificate URL. SAVE THESE TO DISK.
|
||||
logChan <- "Writing certificate to disk"
|
||||
err = os.WriteFile(filepath.Join(saveDir, "fullchain.cer"),
|
||||
certificates.Certificate, 0644)
|
||||
// Each certificate comes back with the cert bytes, the bytes of the client's
|
||||
// private key, and a certificate URL. SAVE THESE TO DISK.
|
||||
logChan <- "Writing certificate to disk"
|
||||
err = os.WriteFile(filepath.Join(saveDir, "fullchain.cer"),
|
||||
certificates.Certificate, 0644)
|
||||
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "error issue cert write fullchain.cer")
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "error issue cert write fullchain.cer")
|
||||
return
|
||||
}
|
||||
|
||||
logChan <- "Writing certificate private key to disk"
|
||||
err = os.WriteFile(filepath.Join(saveDir, "private.key"),
|
||||
certificates.PrivateKey, 0644)
|
||||
logChan <- "Writing certificate private key to disk"
|
||||
err = os.WriteFile(filepath.Join(saveDir, "private.key"),
|
||||
certificates.PrivateKey, 0644)
|
||||
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to write key")
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
errChan <- errors.Wrap(err, "fail to write key")
|
||||
return
|
||||
}
|
||||
|
||||
close(errChan)
|
||||
logChan <- "Reloading nginx"
|
||||
close(errChan)
|
||||
logChan <- "Reloading nginx"
|
||||
|
||||
nginx.Reload()
|
||||
nginx.Reload()
|
||||
|
||||
logChan <- "Finished"
|
||||
logChan <- "Finished"
|
||||
|
||||
close(logChan)
|
||||
close(logChan)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue