enhance: show the info of changed certificates #386

This commit is contained in:
Jacky 2024-07-24 17:27:50 +08:00
parent e1a5521f4a
commit 2d6fa63964
No known key found for this signature in database
GPG key ID: 215C21B10DF38B4D
16 changed files with 1760 additions and 1644 deletions

View file

@ -1 +1 @@
es fr_FR ko_KR ru_RU vi_VN zh_CN zh_TW en zh_CN zh_TW fr_FR es ru_RU vi_VN ko_KR

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,6 +2,10 @@ msgid ""
msgstr "" msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
#: src/views/user/userColumns.tsx:31
msgid "2FA"
msgstr ""
#: src/views/preference/components/TOTP.vue:88 #: src/views/preference/components/TOTP.vue:88
msgid "2FA Settings" msgid "2FA Settings"
msgstr "" msgstr ""
@ -22,24 +26,24 @@ msgid "ACME User"
msgstr "" msgstr ""
#: src/views/certificate/ACMEUser.vue:59 #: src/views/certificate/ACMEUser.vue:59
#: src/views/certificate/Certificate.vue:113 #: src/views/certificate/CertificateList/certColumns.tsx:89
#: src/views/certificate/DNSCredential.vue:33 #: src/views/certificate/DNSCredential.vue:33
#: src/views/config/config.ts:34 #: src/views/config/config.ts:34
#: src/views/domain/DomainList.vue:47 #: src/views/domain/DomainList.vue:47
#: src/views/environment/envColumns.tsx:131 #: src/views/environment/envColumns.tsx:131
#: src/views/notification/Notification.vue:37 #: src/views/notification/Notification.vue:37
#: src/views/preference/AuthSettings.vue:27 #: src/views/preference/AuthSettings.vue:26
#: src/views/stream/StreamList.vue:47 #: src/views/stream/StreamList.vue:47
#: src/views/user/User.vue:43 #: src/views/user/userColumns.tsx:59
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:181 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:181
#: src/components/StdDesign/StdDataDisplay/StdCurd.vue:202 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:202
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:117 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:117
#: src/views/domain/ngx_conf/NgxServer.vue:167 #: src/views/domain/ngx_conf/NgxServer.vue:162
#: src/views/domain/ngx_conf/NgxUpstream.vue:152 #: src/views/domain/ngx_conf/NgxUpstream.vue:152
#: src/views/preference/BasicSettings.vue:74 #: src/views/preference/BasicSettings.vue:73
#: src/views/stream/StreamList.vue:121 #: src/views/stream/StreamList.vue:121
msgid "Add" msgid "Add"
msgstr "" msgstr ""
@ -48,8 +52,8 @@ msgstr ""
msgid "Add Directive Below" msgid "Add Directive Below"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/LocationEditor.vue:112 #: src/views/domain/ngx_conf/LocationEditor.vue:111
#: src/views/domain/ngx_conf/LocationEditor.vue:139 #: src/views/domain/ngx_conf/LocationEditor.vue:138
msgid "Add Location" msgid "Add Location"
msgstr "" msgstr ""
@ -70,12 +74,12 @@ msgstr ""
msgid "Additional" msgid "Additional"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:197 #: src/views/domain/DomainEdit.vue:194
#: src/views/stream/StreamEdit.vue:189 #: src/views/stream/StreamEdit.vue:189
msgid "Advance Mode" msgid "Advance Mode"
msgstr "" msgstr ""
#: src/views/preference/OpenAISettings.vue:45 #: src/views/preference/OpenAISettings.vue:44
msgid "API Base Url" msgid "API Base Url"
msgstr "" msgstr ""
@ -83,11 +87,11 @@ msgstr ""
msgid "API Document" msgid "API Document"
msgstr "" msgstr ""
#: src/views/preference/OpenAISettings.vue:57 #: src/views/preference/OpenAISettings.vue:56
msgid "API Proxy" msgid "API Proxy"
msgstr "" msgstr ""
#: src/views/preference/OpenAISettings.vue:69 #: src/views/preference/OpenAISettings.vue:68
msgid "API Token" msgid "API Token"
msgstr "" msgstr ""
@ -95,7 +99,7 @@ msgstr ""
msgid "Arch" msgid "Arch"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:97 #: src/views/preference/AuthSettings.vue:96
msgid "Are you sure to delete this banned IP immediately?" msgid "Are you sure to delete this banned IP immediately?"
msgstr "" msgstr ""
@ -129,11 +133,11 @@ msgstr ""
msgid "Are you sure you want to remove this directive?" msgid "Are you sure you want to remove this directive?"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:100 #: src/views/preference/BasicSettings.vue:99
msgid "Are you sure you want to remove this item?" msgid "Are you sure you want to remove this item?"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/LocationEditor.vue:69 #: src/views/domain/ngx_conf/LocationEditor.vue:68
msgid "Are you sure you want to remove this location?" msgid "Are you sure you want to remove this location?"
msgstr "" msgstr ""
@ -145,7 +149,7 @@ msgstr ""
msgid "Assistant" msgid "Assistant"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:18 #: src/views/preference/AuthSettings.vue:17
msgid "Attempts" msgid "Attempts"
msgstr "" msgstr ""
@ -158,10 +162,6 @@ msgstr ""
msgid "Author" msgid "Author"
msgstr "" msgstr ""
#: src/views/domain/cert/ChangeCert.vue:33
msgid "Auto Cert"
msgstr ""
#: src/views/nginx_log/NginxLog.vue:147 #: src/views/nginx_log/NginxLog.vue:147
msgid "Auto Refresh" msgid "Auto Refresh"
msgstr "" msgstr ""
@ -174,10 +174,10 @@ msgstr ""
msgid "Auto-renewal enabled for %{name}" msgid "Auto-renewal enabled for %{name}"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:242 #: src/views/certificate/CertificateEditor.vue:245
#: src/views/config/Config.vue:73 #: src/views/config/Config.vue:71
#: src/views/config/ConfigEdit.vue:87 #: src/views/config/ConfigEdit.vue:87
#: src/views/domain/DomainEdit.vue:254 #: src/views/domain/DomainEdit.vue:251
#: src/views/nginx_log/NginxLog.vue:168 #: src/views/nginx_log/NginxLog.vue:168
#: src/views/stream/StreamEdit.vue:245 #: src/views/stream/StreamEdit.vue:245
msgid "Back" msgid "Back"
@ -191,15 +191,15 @@ msgstr ""
msgid "Back to list" msgid "Back to list"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:71 #: src/views/preference/AuthSettings.vue:70
msgid "Ban Threshold Minutes" msgid "Ban Threshold Minutes"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:85 #: src/views/preference/AuthSettings.vue:84
msgid "Banned IPs" msgid "Banned IPs"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:21 #: src/views/preference/AuthSettings.vue:20
msgid "Banned Until" msgid "Banned Until"
msgstr "" msgstr ""
@ -214,7 +214,7 @@ msgstr ""
msgid "Basic" msgid "Basic"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:200 #: src/views/domain/DomainEdit.vue:197
#: src/views/stream/StreamEdit.vue:192 #: src/views/stream/StreamEdit.vue:192
msgid "Basic Mode" msgid "Basic Mode"
msgstr "" msgstr ""
@ -236,7 +236,7 @@ msgstr ""
msgid "CA Dir" msgid "CA Dir"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:48 #: src/views/preference/BasicSettings.vue:47
msgid "CADir" msgid "CADir"
msgstr "" msgstr ""
@ -248,32 +248,26 @@ msgstr ""
#: src/views/domain/components/Deploy.vue:21 #: src/views/domain/components/Deploy.vue:21
#: src/views/domain/components/RightSettings.vue:51 #: src/views/domain/components/RightSettings.vue:51
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:50 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:50
#: src/views/domain/ngx_conf/NgxServer.vue:84 #: src/views/domain/ngx_conf/NgxServer.vue:80
#: src/views/domain/ngx_conf/NgxUpstream.vue:33 #: src/views/domain/ngx_conf/NgxUpstream.vue:33
#: src/views/stream/components/Deploy.vue:21 #: src/views/stream/components/Deploy.vue:21
#: src/views/stream/components/RightSettings.vue:51 #: src/views/stream/components/RightSettings.vue:51
msgid "Cancel" msgid "Cancel"
msgstr "" msgstr ""
#: src/views/domain/cert/CertInfo.vue:32 #: src/views/preference/BasicSettings.vue:55
msgid "Certificate has expired"
msgstr ""
#: src/views/domain/cert/CertInfo.vue:36
msgid "Certificate is valid"
msgstr ""
#: src/views/preference/BasicSettings.vue:56
msgid "Certificate Renewal Interval" msgid "Certificate Renewal Interval"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:128 #: src/views/certificate/CertificateEditor.vue:128
#: src/views/domain/cert/Cert.vue:33 #: src/views/domain/cert/Cert.vue:32
msgid "Certificate Status" msgid "Certificate Status"
msgstr "" msgid_plural "Certificates Status"
msgstr[0] ""
msgstr[1] ""
#: src/routes/index.ts:119 #: src/routes/index.ts:119
#: src/views/certificate/Certificate.vue:129 #: src/views/certificate/CertificateList/Certificate.vue:20
msgid "Certificates" msgid "Certificates"
msgstr "" msgstr ""
@ -285,11 +279,17 @@ msgstr ""
msgid "Challenge Method" msgid "Challenge Method"
msgstr "" msgstr ""
#: src/views/domain/cert/ChangeCert.vue:95 #: src/views/domain/cert/components/ChangeCert/ChangeCert.vue:49
#: src/views/domain/cert/ChangeCert.vue:99 #: src/views/domain/cert/components/ChangeCert/ChangeCert.vue:53
msgid "Change Certificate" msgid "Change Certificate"
msgstr "" msgstr ""
#: src/views/domain/cert/Cert.vue:51
msgid "Changed Certificate"
msgid_plural "Changed Certificates"
msgstr[0] ""
msgstr[1] ""
#: src/views/environment/BatchUpgrader.vue:161 #: src/views/environment/BatchUpgrader.vue:161
#: src/views/system/Upgrade.vue:190 #: src/views/system/Upgrade.vue:190
msgid "Channel" msgid "Channel"
@ -314,14 +314,14 @@ msgstr ""
msgid "Cleared successfully" msgid "Cleared successfully"
msgstr "" msgstr ""
#: src/views/preference/LogrotateSettings.vue:23 #: src/views/preference/LogrotateSettings.vue:22
msgid "Command" msgid "Command"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:106 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:106
#: src/views/domain/ngx_conf/LocationEditor.vue:116 #: src/views/domain/ngx_conf/LocationEditor.vue:115
#: src/views/domain/ngx_conf/LocationEditor.vue:85 #: src/views/domain/ngx_conf/LocationEditor.vue:84
#: src/views/domain/ngx_conf/NgxServer.vue:139 #: src/views/domain/ngx_conf/NgxServer.vue:134
msgid "Comments" msgid "Comments"
msgstr "" msgstr ""
@ -337,7 +337,7 @@ msgstr ""
msgid "Configuration Name" msgid "Configuration Name"
msgstr "" msgstr ""
#: src/views/config/Config.vue:44 #: src/views/config/Config.vue:42
msgid "Configurations" msgid "Configurations"
msgstr "" msgstr ""
@ -354,8 +354,8 @@ msgid "Connection lost, please refresh the page."
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:111 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:111
#: src/views/domain/ngx_conf/LocationEditor.vue:125 #: src/views/domain/ngx_conf/LocationEditor.vue:124
#: src/views/domain/ngx_conf/LocationEditor.vue:97 #: src/views/domain/ngx_conf/LocationEditor.vue:96
msgid "Content" msgid "Content"
msgstr "" msgstr ""
@ -388,7 +388,7 @@ msgid "Create Another"
msgstr "" msgstr ""
#: src/views/notification/Notification.vue:31 #: src/views/notification/Notification.vue:31
#: src/views/user/User.vue:31 #: src/views/user/userColumns.tsx:47
msgid "Created at" msgid "Created at"
msgstr "" msgstr ""
@ -417,11 +417,11 @@ msgid "Current Version"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:124 #: src/views/domain/ngx_conf/config_template/ConfigTemplate.vue:124
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:186 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:191
msgid "Custom" msgid "Custom"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:122 #: src/views/preference/BasicSettings.vue:121
msgid "Customize the name of local server to be displayed in the environment indicator." msgid "Customize the name of local server to be displayed in the environment indicator."
msgstr "" msgstr ""
@ -429,17 +429,17 @@ msgstr ""
msgid "Dashboard" msgid "Dashboard"
msgstr "" msgstr ""
#: src/views/other/Install.vue:120 #: src/views/other/Install.vue:119
msgid "Database (Optional, default: database)" msgid "Database (Optional, default: database)"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:61 #: src/views/preference/BasicSettings.vue:60
msgid "Days" msgid "Days"
msgstr "" msgstr ""
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:557 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:557
#: src/views/domain/DomainList.vue:155 #: src/views/domain/DomainList.vue:155
#: src/views/domain/ngx_conf/NgxServer.vue:114 #: src/views/domain/ngx_conf/NgxServer.vue:110
#: src/views/domain/ngx_conf/NgxUpstream.vue:126 #: src/views/domain/ngx_conf/NgxUpstream.vue:126
#: src/views/stream/StreamList.vue:176 #: src/views/stream/StreamList.vue:176
msgid "Delete" msgid "Delete"
@ -517,13 +517,13 @@ msgstr ""
msgid "Disable auto-renewal failed for %{name}" msgid "Disable auto-renewal failed for %{name}"
msgstr "" msgstr ""
#: src/views/domain/cert/ChangeCert.vue:44 #: src/views/domain/DomainEdit.vue:180
#: src/views/domain/DomainEdit.vue:183
#: src/views/domain/DomainList.vue:33 #: src/views/domain/DomainList.vue:33
#: src/views/environment/envColumns.tsx:113 #: src/views/environment/envColumns.tsx:113
#: src/views/environment/envColumns.tsx:95 #: src/views/environment/envColumns.tsx:95
#: src/views/stream/StreamEdit.vue:175 #: src/views/stream/StreamEdit.vue:175
#: src/views/stream/StreamList.vue:33 #: src/views/stream/StreamList.vue:33
#: src/views/user/userColumns.tsx:40
msgid "Disabled" msgid "Disabled"
msgstr "" msgstr ""
@ -583,7 +583,7 @@ msgstr ""
msgid "Do you want to enable TLS?" msgid "Do you want to enable TLS?"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/NgxServer.vue:80 #: src/views/domain/ngx_conf/NgxServer.vue:76
msgid "Do you want to remove this server?" msgid "Do you want to remove this server?"
msgstr "" msgstr ""
@ -643,7 +643,7 @@ msgstr ""
msgid "Duplicate to local successfully" msgid "Duplicate to local successfully"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:172 #: src/views/domain/DomainEdit.vue:169
#: src/views/stream/StreamEdit.vue:164 #: src/views/stream/StreamEdit.vue:164
msgid "Edit %{n}" msgid "Edit %{n}"
msgstr "" msgstr ""
@ -665,7 +665,7 @@ msgstr ""
msgid "Email" msgid "Email"
msgstr "" msgstr ""
#: src/views/other/Install.vue:89 #: src/views/other/Install.vue:88
msgid "Email (*)" msgid "Email (*)"
msgstr "" msgstr ""
@ -707,20 +707,20 @@ msgstr ""
msgid "Enable successfully" msgid "Enable successfully"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:175 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:180
msgid "Enable TLS" msgid "Enable TLS"
msgstr "" msgstr ""
#: src/views/domain/cert/ChangeCert.vue:40
#: src/views/domain/components/RightSettings.vue:77 #: src/views/domain/components/RightSettings.vue:77
#: src/views/domain/DomainEdit.vue:177 #: src/views/domain/DomainEdit.vue:174
#: src/views/domain/DomainList.vue:29 #: src/views/domain/DomainList.vue:29
#: src/views/environment/envColumns.tsx:104 #: src/views/environment/envColumns.tsx:104
#: src/views/environment/envColumns.tsx:110 #: src/views/environment/envColumns.tsx:110
#: src/views/preference/LogrotateSettings.vue:20 #: src/views/preference/LogrotateSettings.vue:19
#: src/views/stream/components/RightSettings.vue:76 #: src/views/stream/components/RightSettings.vue:76
#: src/views/stream/StreamEdit.vue:169 #: src/views/stream/StreamEdit.vue:169
#: src/views/stream/StreamList.vue:29 #: src/views/stream/StreamList.vue:29
#: src/views/user/userColumns.tsx:37
msgid "Enabled" msgid "Enabled"
msgstr "" msgstr ""
@ -734,7 +734,7 @@ msgstr ""
msgid "Enabled successfully" msgid "Enabled successfully"
msgstr "" msgstr ""
#: src/views/domain/cert/IssueCert.vue:57 #: src/views/domain/cert/IssueCert.vue:51
msgid "Encrypt website with Let's Encrypt" msgid "Encrypt website with Let's Encrypt"
msgstr "" msgstr ""
@ -765,11 +765,12 @@ msgstr ""
msgid "Executable Path" msgid "Executable Path"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:101 #: src/views/certificate/CertificateList/certColumns.tsx:77
#: src/views/domain/cert/CertInfo.vue:31
msgid "Expired" msgid "Expired"
msgstr "" msgstr ""
#: src/views/domain/cert/CertInfo.vue:24 #: src/views/domain/cert/CertInfo.vue:38
msgid "Expired At: %{date}" msgid "Expired At: %{date}"
msgstr "" msgstr ""
@ -799,7 +800,7 @@ msgstr ""
msgid "Failed to get certificate information" msgid "Failed to get certificate information"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:130 #: src/views/domain/DomainEdit.vue:127
#: src/views/stream/StreamEdit.vue:122 #: src/views/stream/StreamEdit.vue:122
msgid "Failed to save, syntax error(s) was detected in the configuration." msgid "Failed to save, syntax error(s) was detected in the configuration."
msgstr "" msgstr ""
@ -812,8 +813,8 @@ msgstr ""
msgid "File exists" msgid "File exists"
msgstr "" msgstr ""
#: src/views/preference/NginxSettings.vue:15 #: src/views/preference/NginxSettings.vue:14
#: src/views/preference/NginxSettings.vue:24 #: src/views/preference/NginxSettings.vue:23
msgid "File not found" msgid "File not found"
msgstr "" msgstr ""
@ -830,7 +831,7 @@ msgstr ""
msgid "Finished" msgid "Finished"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:44 #: src/views/preference/BasicSettings.vue:43
msgid "For Chinese user: https://mirror.ghproxy.com/" msgid "For Chinese user: https://mirror.ghproxy.com/"
msgstr "" msgstr ""
@ -846,11 +847,11 @@ msgstr ""
msgid "Format successfully" msgid "Format successfully"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:44 #: src/views/certificate/CertificateList/certColumns.tsx:32
msgid "General Certificate" msgid "General Certificate"
msgstr "" msgstr ""
#: src/components/StdDesign/StdDataEntry/components/StdPassword.vue:58 #: src/components/StdDesign/StdDataEntry/components/StdPassword.vue:52
msgid "Generate" msgid "Generate"
msgstr "" msgstr ""
@ -867,7 +868,7 @@ msgstr ""
msgid "Getting the certificate, please wait..." msgid "Getting the certificate, please wait..."
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:36 #: src/views/preference/BasicSettings.vue:35
msgid "Github Proxy" msgid "Github Proxy"
msgstr "" msgstr ""
@ -879,15 +880,15 @@ msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:32 #: src/views/preference/BasicSettings.vue:31
msgid "HTTP Challenge Port" msgid "HTTP Challenge Port"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:14 #: src/views/preference/BasicSettings.vue:13
msgid "HTTP Host" msgid "HTTP Host"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:17 #: src/views/preference/BasicSettings.vue:16
msgid "HTTP Port" msgid "HTTP Port"
msgstr "" msgstr ""
@ -899,7 +900,7 @@ msgstr ""
msgid "If left blank, the default CA Dir will be used." msgid "If left blank, the default CA Dir will be used."
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:63 #: src/views/preference/AuthSettings.vue:62
msgid "If the number of login failed attempts from a ip reach the max attempts in ban threshold minutes, the ip will be banned for a period of time." msgid "If the number of login failed attempts from a ip reach the max attempts in ban threshold minutes, the ip will be banned for a period of time."
msgstr "" msgstr ""
@ -907,7 +908,7 @@ msgstr ""
msgid "If you lose your mobile phone, you can use the recovery code to reset your 2FA." msgid "If you lose your mobile phone, you can use the recovery code to reset your 2FA."
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:136 #: src/views/certificate/CertificateList/Certificate.vue:27
msgid "Import" msgid "Import"
msgstr "" msgstr ""
@ -942,19 +943,15 @@ msgid "Input the recovery code:"
msgstr "" msgstr ""
#: src/routes/index.ts:283 #: src/routes/index.ts:283
#: src/views/other/Install.vue:135 #: src/views/other/Install.vue:134
msgid "Install" msgid "Install"
msgstr "" msgstr ""
#: src/views/other/Install.vue:66 #: src/views/other/Install.vue:65
msgid "Install successfully" msgid "Install successfully"
msgstr "" msgstr ""
#: src/views/domain/cert/CertInfo.vue:18 #: src/views/preference/LogrotateSettings.vue:25
msgid "Intermediate Certification Authorities: %{issuer}"
msgstr ""
#: src/views/preference/LogrotateSettings.vue:26
msgid "Interval" msgid "Interval"
msgstr "" msgstr ""
@ -970,11 +967,11 @@ msgstr ""
msgid "Invalid passcode or recovery code" msgid "Invalid passcode or recovery code"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:15 #: src/views/preference/AuthSettings.vue:14
msgid "IP" msgid "IP"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:144 #: src/views/certificate/CertificateList/Certificate.vue:35
msgid "Issue wildcard certificate" msgid "Issue wildcard certificate"
msgstr "" msgstr ""
@ -986,11 +983,15 @@ msgstr ""
msgid "Issued certificate successfully" msgid "Issued certificate successfully"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:23 #: src/views/domain/cert/CertInfo.vue:35
msgid "Issuer: %{issuer}"
msgstr ""
#: src/views/preference/BasicSettings.vue:22
msgid "Jwt Secret" msgid "Jwt Secret"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:66 #: src/views/certificate/CertificateList/certColumns.tsx:54
#: src/views/certificate/WildcardCertificate.vue:79 #: src/views/certificate/WildcardCertificate.vue:79
#: src/views/domain/cert/components/AutoCertStepOne.vue:80 #: src/views/domain/cert/components/AutoCertStepOne.vue:80
msgid "Key Type" msgid "Key Type"
@ -1000,16 +1001,16 @@ msgstr ""
msgid "Last checked at" msgid "Last checked at"
msgstr "" msgstr ""
#: src/views/user/User.vue:25 #: src/views/user/userColumns.tsx:25
msgid "Leave blank for no change" msgid "Leave blank for no change"
msgstr "" msgstr ""
#: src/views/preference/OpenAISettings.vue:53 #: src/views/preference/OpenAISettings.vue:52
msgid "Leave blank for the default: https://api.openai.com/" msgid "Leave blank for the default: https://api.openai.com/"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:207 #: src/views/certificate/CertificateEditor.vue:210
#: src/views/certificate/CertificateEditor.vue:220 #: src/views/certificate/CertificateEditor.vue:223
msgid "Leave blank will not change anything" msgid "Leave blank will not change anything"
msgstr "" msgstr ""
@ -1038,20 +1039,20 @@ msgstr ""
msgid "Load successfully" msgid "Load successfully"
msgstr "" msgstr ""
#: src/components/EnvIndicator/EnvIndicator.vue:40 #: src/components/EnvIndicator/EnvIndicator.vue:39
#: src/components/NodeSelector/NodeSelector.vue:71 #: src/components/NodeSelector/NodeSelector.vue:71
msgid "Local" msgid "Local"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/LocationEditor.vue:60 #: src/views/domain/ngx_conf/LocationEditor.vue:59
msgid "Location" msgid "Location"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/LocationEditor.vue:44 #: src/views/domain/ngx_conf/LocationEditor.vue:43
msgid "Locations" msgid "Locations"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:230 #: src/views/certificate/CertificateEditor.vue:233
msgid "Log" msgid "Log"
msgstr "" msgstr ""
@ -1073,7 +1074,7 @@ msgstr ""
msgid "Logrotate" msgid "Logrotate"
msgstr "" msgstr ""
#: src/views/preference/LogrotateSettings.vue:13 #: src/views/preference/LogrotateSettings.vue:12
msgid "Logrotate, by default, is enabled in most mainstream Linux distributions for users who install Nginx UI on the host machine, so you don't need to modify the parameters on this page. For users who install Nginx UI using Docker containers, you can manually enable this option. The crontab task scheduler of Nginx UI will execute the logrotate command at the interval you set in minutes." msgid "Logrotate, by default, is enabled in most mainstream Linux distributions for users who install Nginx UI on the host machine, so you don't need to modify the parameters on this page. For users who install Nginx UI using Docker containers, you can manually enable this option. The crontab task scheduler of Nginx UI will execute the logrotate command at the interval you set in minutes."
msgstr "" msgstr ""
@ -1096,15 +1097,15 @@ msgid "Manage Streams"
msgstr "" msgstr ""
#: src/routes/index.ts:235 #: src/routes/index.ts:235
#: src/views/user/User.vue:50 #: src/views/user/User.vue:9
msgid "Manage Users" msgid "Manage Users"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:43 #: src/views/certificate/CertificateList/certColumns.tsx:31
msgid "Managed Certificate" msgid "Managed Certificate"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:77 #: src/views/preference/AuthSettings.vue:76
msgid "Max Attempts" msgid "Max Attempts"
msgstr "" msgstr ""
@ -1117,11 +1118,11 @@ msgstr ""
msgid "Memory and Storage" msgid "Memory and Storage"
msgstr "" msgstr ""
#: src/views/preference/LogrotateSettings.vue:30 #: src/views/preference/LogrotateSettings.vue:29
msgid "Minutes" msgid "Minutes"
msgstr "" msgstr ""
#: src/views/preference/OpenAISettings.vue:33 #: src/views/preference/OpenAISettings.vue:32
msgid "Model" msgid "Model"
msgstr "" msgstr ""
@ -1149,11 +1150,10 @@ msgid "Multi-line Directive"
msgstr "" msgstr ""
#: src/views/certificate/ACMEUser.vue:13 #: src/views/certificate/ACMEUser.vue:13
#: src/views/certificate/Certificate.vue:20 #: src/views/certificate/CertificateEditor.vue:150
#: src/views/certificate/CertificateEditor.vue:147 #: src/views/certificate/CertificateList/certColumns.tsx:10
#: src/views/certificate/DNSCredential.vue:11 #: src/views/certificate/DNSCredential.vue:11
#: src/views/config/config.ts:7 #: src/views/config/config.ts:7
#: src/views/domain/cert/ChangeCert.vue:17
#: src/views/domain/components/RightSettings.vue:83 #: src/views/domain/components/RightSettings.vue:83
#: src/views/domain/components/SiteDuplicate.vue:129 #: src/views/domain/components/SiteDuplicate.vue:129
#: src/views/domain/DomainList.vue:13 #: src/views/domain/DomainList.vue:13
@ -1196,11 +1196,11 @@ msgstr ""
msgid "Nginx" msgid "Nginx"
msgstr "" msgstr ""
#: src/views/preference/NginxSettings.vue:12 #: src/views/preference/NginxSettings.vue:11
msgid "Nginx Access Log Path" msgid "Nginx Access Log Path"
msgstr "" msgstr ""
#: src/views/domain/DomainEdit.vue:215 #: src/views/domain/DomainEdit.vue:212
#: src/views/stream/StreamEdit.vue:207 #: src/views/stream/StreamEdit.vue:207
msgid "Nginx Configuration Parse Error" msgid "Nginx Configuration Parse Error"
msgstr "" msgstr ""
@ -1209,7 +1209,7 @@ msgstr ""
msgid "Nginx Control" msgid "Nginx Control"
msgstr "" msgstr ""
#: src/views/preference/NginxSettings.vue:21 #: src/views/preference/NginxSettings.vue:20
msgid "Nginx Error Log Path" msgid "Nginx Error Log Path"
msgstr "" msgstr ""
@ -1233,19 +1233,19 @@ msgstr ""
#: src/components/StdDesign/StdDataDisplay/StdTable.vue:576 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:576
#: src/views/domain/DomainList.vue:144 #: src/views/domain/DomainList.vue:144
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:90
#: src/views/domain/ngx_conf/LocationEditor.vue:71 #: src/views/domain/ngx_conf/LocationEditor.vue:70
#: src/views/notification/Notification.vue:70 #: src/views/notification/Notification.vue:70
#: src/views/preference/AuthSettings.vue:99 #: src/views/preference/AuthSettings.vue:98
#: src/views/preference/BasicSettings.vue:102 #: src/views/preference/BasicSettings.vue:101
#: src/views/stream/StreamList.vue:165 #: src/views/stream/StreamList.vue:165
msgid "No" msgid "No"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:26 #: src/views/preference/BasicSettings.vue:25
msgid "Node Secret" msgid "Node Secret"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:107 #: src/views/certificate/CertificateList/certColumns.tsx:83
msgid "Not After" msgid "Not After"
msgstr "" msgstr ""
@ -1253,7 +1253,7 @@ msgstr ""
msgid "Not Found" msgid "Not Found"
msgstr "" msgstr ""
#: src/views/domain/cert/CertInfo.vue:27 #: src/views/domain/cert/CertInfo.vue:41
msgid "Not Valid Before: %{date}" msgid "Not Valid Before: %{date}"
msgstr "" msgstr ""
@ -1301,7 +1301,7 @@ msgstr ""
#: src/views/domain/components/RightSettings.vue:50 #: src/views/domain/components/RightSettings.vue:50
#: src/views/domain/DomainList.vue:145 #: src/views/domain/DomainList.vue:145
#: src/views/domain/ngx_conf/NgxConfigEditor.vue:49 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:49
#: src/views/domain/ngx_conf/NgxServer.vue:83 #: src/views/domain/ngx_conf/NgxServer.vue:79
#: src/views/domain/ngx_conf/NgxUpstream.vue:32 #: src/views/domain/ngx_conf/NgxUpstream.vue:32
#: src/views/notification/Notification.vue:71 #: src/views/notification/Notification.vue:71
#: src/views/stream/components/Deploy.vue:20 #: src/views/stream/components/Deploy.vue:20
@ -1348,17 +1348,17 @@ msgid "Params"
msgstr "" msgstr ""
#: src/views/other/Login.vue:169 #: src/views/other/Login.vue:169
#: src/views/user/User.vue:18 #: src/views/user/userColumns.tsx:18
msgid "Password" msgid "Password"
msgstr "" msgstr ""
#: src/views/other/Install.vue:109 #: src/views/other/Install.vue:108
msgid "Password (*)" msgid "Password (*)"
msgstr "" msgstr ""
#: src/views/config/ConfigEdit.vue:118 #: src/views/config/ConfigEdit.vue:118
#: src/views/domain/ngx_conf/LocationEditor.vue:119 #: src/views/domain/ngx_conf/LocationEditor.vue:118
#: src/views/domain/ngx_conf/LocationEditor.vue:91 #: src/views/domain/ngx_conf/LocationEditor.vue:90
msgid "Path" msgid "Path"
msgstr "" msgstr ""
@ -1395,16 +1395,16 @@ msgstr ""
msgid "Please input name, this will be used as the filename of the new configuration!" msgid "Please input name, this will be used as the filename of the new configuration!"
msgstr "" msgstr ""
#: src/views/other/Install.vue:33 #: src/views/other/Install.vue:32
msgid "Please input your E-mail!" msgid "Please input your E-mail!"
msgstr "" msgstr ""
#: src/views/other/Install.vue:45 #: src/views/other/Install.vue:44
#: src/views/other/Login.vue:43 #: src/views/other/Login.vue:43
msgid "Please input your password!" msgid "Please input your password!"
msgstr "" msgstr ""
#: src/views/other/Install.vue:39 #: src/views/other/Install.vue:38
#: src/views/other/Login.vue:37 #: src/views/other/Login.vue:37
msgid "Please input your username!" msgid "Please input your username!"
msgstr "" msgstr ""
@ -1481,7 +1481,7 @@ msgstr ""
msgid "Recovery Code:" msgid "Recovery Code:"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:69 #: src/views/preference/BasicSettings.vue:68
msgid "Recursive Nameservers" msgid "Recursive Nameservers"
msgstr "" msgstr ""
@ -1530,11 +1530,11 @@ msgstr ""
msgid "Reloading nginx" msgid "Reloading nginx"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:104 #: src/views/preference/AuthSettings.vue:103
msgid "Remove" msgid "Remove"
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:48 #: src/views/preference/AuthSettings.vue:47
msgid "Remove successfully" msgid "Remove successfully"
msgstr "" msgstr ""
@ -1584,7 +1584,7 @@ msgstr ""
msgid "Restarting" msgid "Restarting"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:20 #: src/views/preference/BasicSettings.vue:19
msgid "Run Mode" msgid "Run Mode"
msgstr "" msgstr ""
@ -1593,9 +1593,9 @@ msgid "Running"
msgstr "" msgstr ""
#: src/components/ChatGPT/ChatGPT.vue:251 #: src/components/ChatGPT/ChatGPT.vue:251
#: src/views/certificate/CertificateEditor.vue:249 #: src/views/certificate/CertificateEditor.vue:252
#: src/views/config/ConfigEdit.vue:96 #: src/views/config/ConfigEdit.vue:96
#: src/views/domain/DomainEdit.vue:261 #: src/views/domain/DomainEdit.vue:258
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:120
#: src/views/preference/Preference.vue:145 #: src/views/preference/Preference.vue:145
#: src/views/stream/StreamEdit.vue:252 #: src/views/stream/StreamEdit.vue:252
@ -1621,7 +1621,7 @@ msgstr ""
#: src/views/config/ConfigEdit.vue:55 #: src/views/config/ConfigEdit.vue:55
#: src/views/domain/DomainAdd.vue:37 #: src/views/domain/DomainAdd.vue:37
#: src/views/domain/DomainEdit.vue:146 #: src/views/domain/DomainEdit.vue:143
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:39
#: src/views/stream/StreamEdit.vue:138 #: src/views/stream/StreamEdit.vue:138
msgid "Saved successfully" msgid "Saved successfully"
@ -1655,8 +1655,8 @@ msgstr ""
#: src/views/domain/DomainList.vue:81 #: src/views/domain/DomainList.vue:81
#: src/views/environment/BatchUpgrader.vue:57 #: src/views/environment/BatchUpgrader.vue:57
#: src/views/environment/Environment.vue:15 #: src/views/environment/Environment.vue:15
#: src/views/other/Install.vue:69 #: src/views/other/Install.vue:68
#: src/views/preference/AuthSettings.vue:50 #: src/views/preference/AuthSettings.vue:49
#: src/views/preference/components/TOTP.vue:42 #: src/views/preference/components/TOTP.vue:42
#: src/views/preference/components/TOTP.vue:55 #: src/views/preference/components/TOTP.vue:55
#: src/views/preference/Preference.vue:78 #: src/views/preference/Preference.vue:78
@ -1670,7 +1670,7 @@ msgstr ""
msgid "Server Info" msgid "Server Info"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:118 #: src/views/preference/BasicSettings.vue:117
msgid "Server Name" msgid "Server Name"
msgstr "" msgstr ""
@ -1683,7 +1683,7 @@ msgstr ""
msgid "server_name parameter is required" msgid "server_name parameter is required"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:65 #: src/views/preference/BasicSettings.vue:64
msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge." msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge."
msgstr "" msgstr ""
@ -1715,21 +1715,19 @@ msgstr ""
msgid "Sites List" msgid "Sites List"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:198 #: src/views/certificate/CertificateEditor.vue:201
msgid "SSL Certificate Content" msgid "SSL Certificate Content"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:211 #: src/views/certificate/CertificateEditor.vue:214
msgid "SSL Certificate Key Content" msgid "SSL Certificate Key Content"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:80 #: src/views/certificate/CertificateEditor.vue:180
#: src/views/certificate/CertificateEditor.vue:177
msgid "SSL Certificate Key Path" msgid "SSL Certificate Key Path"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:72 #: src/views/certificate/CertificateEditor.vue:165
#: src/views/certificate/CertificateEditor.vue:162
msgid "SSL Certificate Path" msgid "SSL Certificate Path"
msgstr "" msgstr ""
@ -1745,7 +1743,7 @@ msgid "Stable"
msgstr "" msgstr ""
#: src/views/certificate/ACMEUser.vue:42 #: src/views/certificate/ACMEUser.vue:42
#: src/views/certificate/Certificate.vue:88 #: src/views/certificate/CertificateList/certColumns.tsx:60
#: src/views/domain/DomainList.vue:22 #: src/views/domain/DomainList.vue:22
#: src/views/environment/envColumns.tsx:78 #: src/views/environment/envColumns.tsx:78
#: src/views/stream/StreamList.vue:22 #: src/views/stream/StreamList.vue:22
@ -1761,10 +1759,6 @@ msgstr ""
msgid "Storage" msgid "Storage"
msgstr "" msgstr ""
#: src/views/domain/cert/CertInfo.vue:21
msgid "Subject Name: %{subject}"
msgstr ""
#: src/constants/index.ts:19 #: src/constants/index.ts:19
msgid "Success" msgid "Success"
msgstr "" msgstr ""
@ -1774,15 +1768,15 @@ msgstr ""
msgid "Swap" msgid "Swap"
msgstr "" msgstr ""
#: src/components/SwitchAppearance/SwitchAppearance.vue:14 #: src/components/SwitchAppearance/SwitchAppearance.vue:13
msgid "Switch to dark theme" msgid "Switch to dark theme"
msgstr "" msgstr ""
#: src/components/SwitchAppearance/SwitchAppearance.vue:14 #: src/components/SwitchAppearance/SwitchAppearance.vue:13
msgid "Switch to light theme" msgid "Switch to light theme"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:42 #: src/views/certificate/CertificateList/certColumns.tsx:30
msgid "Sync Certificate" msgid "Sync Certificate"
msgstr "" msgstr ""
@ -1806,7 +1800,7 @@ msgstr ""
msgid "Sync Certificate Success" msgid "Sync Certificate Success"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:191 #: src/views/certificate/CertificateEditor.vue:194
msgid "Sync to" msgid "Sync to"
msgstr "" msgstr ""
@ -1824,7 +1818,7 @@ msgstr ""
msgid "Terminal" msgid "Terminal"
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:29 #: src/views/preference/BasicSettings.vue:28
msgid "Terminal Start Command" msgid "Terminal Start Command"
msgstr "" msgstr ""
@ -1832,27 +1826,27 @@ msgstr ""
msgid "The certificate for the domain will be checked 5 minutes, and will be renewed if it has been more than 1 week since it was last issued." msgid "The certificate for the domain will be checked 5 minutes, and will be renewed if it has been more than 1 week since it was last issued."
msgstr "" msgstr ""
#: src/views/other/Install.vue:51 #: src/views/other/Install.vue:50
msgid "The filename cannot contain the following characters: %{c}" msgid "The filename cannot contain the following characters: %{c}"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:201 #: src/views/certificate/CertificateEditor.vue:204
msgid "The input is not a SSL Certificate" msgid "The input is not a SSL Certificate"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:214 #: src/views/certificate/CertificateEditor.vue:217
msgid "The input is not a SSL Certificate Key" msgid "The input is not a SSL Certificate Key"
msgstr "" msgstr ""
#: src/views/preference/OpenAISettings.vue:36 #: src/views/preference/OpenAISettings.vue:35
msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, and dots." msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, and dots."
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:166 #: src/views/certificate/CertificateEditor.vue:169
msgid "The path exists, but the file is not a certificate" msgid "The path exists, but the file is not a certificate"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:181 #: src/views/certificate/CertificateEditor.vue:184
msgid "The path exists, but the file is not a private key" msgid "The path exists, but the file is not a private key"
msgstr "" msgstr ""
@ -1864,7 +1858,7 @@ msgstr ""
msgid "The remote Nginx UI version is not compatible with the local Nginx UI version. To avoid potential errors, please upgrade the remote Nginx UI to match the local version." msgid "The remote Nginx UI version is not compatible with the local Nginx UI version. To avoid potential errors, please upgrade the remote Nginx UI to match the local version."
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:121 #: src/views/preference/BasicSettings.vue:120
msgid "The server name should only contain letters, unicode, numbers, hyphens, dashes, and dots." msgid "The server name should only contain letters, unicode, numbers, hyphens, dashes, and dots."
msgstr "" msgstr ""
@ -1872,13 +1866,13 @@ msgstr ""
msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains." msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains."
msgstr "" msgstr ""
#: src/views/preference/BasicSettings.vue:39 #: src/views/preference/BasicSettings.vue:38
#: src/views/preference/BasicSettings.vue:51 #: src/views/preference/BasicSettings.vue:50
msgid "The url is invalid" msgid "The url is invalid"
msgstr "" msgstr ""
#: src/views/preference/OpenAISettings.vue:48 #: src/views/preference/OpenAISettings.vue:47
#: src/views/preference/OpenAISettings.vue:60 #: src/views/preference/OpenAISettings.vue:59
msgid "The url is invalid." msgid "The url is invalid."
msgstr "" msgstr ""
@ -1894,9 +1888,9 @@ msgstr ""
msgid "This certificate is managed by Nginx UI" msgid "This certificate is managed by Nginx UI"
msgstr "" msgstr ""
#: src/views/certificate/CertificateEditor.vue:150 #: src/views/certificate/CertificateEditor.vue:153
#: src/views/certificate/CertificateEditor.vue:164 #: src/views/certificate/CertificateEditor.vue:167
#: src/views/certificate/CertificateEditor.vue:179 #: src/views/certificate/CertificateEditor.vue:182
msgid "This field is required" msgid "This field is required"
msgstr "" msgstr ""
@ -1908,8 +1902,8 @@ msgstr ""
msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}." msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
msgstr "" msgstr ""
#: src/views/preference/AuthSettings.vue:62 #: src/views/preference/AuthSettings.vue:61
#: src/views/preference/LogrotateSettings.vue:12 #: src/views/preference/LogrotateSettings.vue:11
msgid "Tips" msgid "Tips"
msgstr "" msgstr ""
@ -1925,7 +1919,7 @@ msgstr ""
msgid "To make sure the certification auto-renewal can work normally, we need to add a location which can proxy the request from authority to backend, and we need to save this file and reload the Nginx. Are you sure you want to continue?" msgid "To make sure the certification auto-renewal can work normally, we need to add a location which can proxy the request from authority to backend, and we need to save this file and reload the Nginx. Are you sure you want to continue?"
msgstr "" msgstr ""
#: src/views/preference/OpenAISettings.vue:72 #: src/views/preference/OpenAISettings.vue:71
msgid "Token is not valid" msgid "Token is not valid"
msgstr "" msgstr ""
@ -1945,7 +1939,7 @@ msgstr ""
msgid "Two-factor authentication required" msgid "Two-factor authentication required"
msgstr "" msgstr ""
#: src/views/certificate/Certificate.vue:37 #: src/views/certificate/CertificateList/certColumns.tsx:25
#: src/views/config/config.ts:12 #: src/views/config/config.ts:12
#: src/views/notification/Notification.vue:13 #: src/views/notification/Notification.vue:13
msgid "Type" msgid "Type"
@ -1960,7 +1954,7 @@ msgstr ""
#: src/views/environment/envColumns.tsx:124 #: src/views/environment/envColumns.tsx:124
#: src/views/stream/components/RightSettings.vue:85 #: src/views/stream/components/RightSettings.vue:85
#: src/views/stream/StreamList.vue:41 #: src/views/stream/StreamList.vue:41
#: src/views/user/User.vue:37 #: src/views/user/userColumns.tsx:53
msgid "Updated at" msgid "Updated at"
msgstr "" msgstr ""
@ -2017,16 +2011,17 @@ msgid "User is banned"
msgstr "" msgstr ""
#: src/views/other/Login.vue:159 #: src/views/other/Login.vue:159
#: src/views/user/User.vue:9 #: src/views/user/userColumns.tsx:9
msgid "Username" msgid "Username"
msgstr "" msgstr ""
#: src/views/other/Install.vue:99 #: src/views/other/Install.vue:98
msgid "Username (*)" msgid "Username (*)"
msgstr "" msgstr ""
#: src/views/certificate/ACMEUser.vue:87 #: src/views/certificate/ACMEUser.vue:87
#: src/views/certificate/Certificate.vue:97 #: src/views/certificate/CertificateList/certColumns.tsx:73
#: src/views/domain/cert/CertInfo.vue:24
msgid "Valid" msgid "Valid"
msgstr "" msgstr ""
@ -2080,9 +2075,9 @@ msgid "Writing certificate to disk"
msgstr "" msgstr ""
#: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89 #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:89
#: src/views/domain/ngx_conf/LocationEditor.vue:70 #: src/views/domain/ngx_conf/LocationEditor.vue:69
#: src/views/preference/AuthSettings.vue:98 #: src/views/preference/AuthSettings.vue:97
#: src/views/preference/BasicSettings.vue:101 #: src/views/preference/BasicSettings.vue:100
msgid "Yes" msgid "Yes"
msgstr "" msgstr ""

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,31 +2,34 @@
import CertInfo from '@/views/domain/cert/CertInfo.vue' import CertInfo from '@/views/domain/cert/CertInfo.vue'
import IssueCert from '@/views/domain/cert/IssueCert.vue' import IssueCert from '@/views/domain/cert/IssueCert.vue'
import ChangeCert from '@/views/domain/cert/components/ChangeCert/ChangeCert.vue' import ChangeCert from '@/views/domain/cert/components/ChangeCert/ChangeCert.vue'
import type { CertificateInfo } from '@/api/cert' import type { Cert, CertificateInfo } from '@/api/cert'
const props = defineProps<{ const props = defineProps<{
configName: string configName: string
enabled: boolean
currentServerIndex: number currentServerIndex: number
certInfo?: CertificateInfo[] certInfo?: CertificateInfo[]
}>() }>()
const emit = defineEmits(['update:enabled']) const enabled = defineModel<boolean>('enabled', {
default: () => false,
const enabled = computed({
get() {
return props.enabled
},
set(value) {
emit('update:enabled', value)
},
}) })
const changedCerts: Ref<Cert[]> = ref([])
// if certInfo update, clear changedCerts
watch(() => props.certInfo, () => {
changedCerts.value = []
})
function handleCertChange(certs: Cert[]) {
changedCerts.value = certs
}
</script> </script>
<template> <template>
<div> <div>
<h3> <h3>
{{ $gettext('Certificate Status') }} {{ $ngettext('Certificate Status', 'Certificates Status', certInfo?.length || 1) }}
</h3> </h3>
<ARow <ARow
@ -43,7 +46,26 @@ const enabled = computed({
</ACol> </ACol>
</ARow> </ARow>
<ChangeCert /> <template v-if="changedCerts.length > 0">
<h3>
{{ $ngettext('Changed Certificate', 'Changed Certificates', changedCerts?.length || 1) }}
</h3>
<ARow
:gutter="[16, 16]"
class="mb-4"
>
<ACol
v-for="(c, index) in changedCerts"
:key="index"
:xs="24"
:sm="12"
>
<CertInfo :cert="c.certificate_info" />
</ACol>
</ARow>
</template>
<ChangeCert @change="handleCertChange" />
<IssueCert <IssueCert
v-model:enabled="enabled" v-model:enabled="enabled"

View file

@ -32,7 +32,7 @@ const isValid = computed(() => dayjs().isAfter(props.cert?.not_before) && dayjs(
</ATag> </ATag>
</template> </template>
<p> <p>
{{ $gettext('Intermediate Certification Authorities: %{issuer}', { issuer: cert.issuer_name }) }} {{ $gettext('Issuer: %{issuer}', { issuer: cert.issuer_name }) }}
</p> </p>
<p> <p>
{{ $gettext('Expired At: %{date}', { date: dayjs(cert.not_after).format('YYYY-MM-DD HH:mm:ss').toString() }) }} {{ $gettext('Expired At: %{date}', { date: dayjs(cert.not_after).format('YYYY-MM-DD HH:mm:ss').toString() }) }}

View file

@ -3,25 +3,17 @@ import ObtainCert from '@/views/domain/cert/components/ObtainCert.vue'
import type { NgxDirective } from '@/api/ngx' import type { NgxDirective } from '@/api/ngx'
export interface Props { export interface Props {
enabled: boolean
configName: string configName: string
} }
const props = defineProps<Props>() const props = defineProps<Props>()
const emit = defineEmits(['update:enabled'])
const issuing_cert = ref(false) const issuing_cert = ref(false)
const obtain_cert = ref() const obtain_cert = ref()
const directivesMap = inject('directivesMap') as Ref<Record<string, NgxDirective[]>> const directivesMap = inject('directivesMap') as Ref<Record<string, NgxDirective[]>>
const enabled = computed({ const enabled = defineModel<boolean>('enabled', {
get() { default: () => false,
return props.enabled
},
set(value) {
emit('update:enabled', value)
},
}) })
const no_server_name = computed(() => { const no_server_name = computed(() => {
@ -35,7 +27,9 @@ provide('no_server_name', no_server_name)
provide('props', props) provide('props', props)
provide('issuing_cert', issuing_cert) provide('issuing_cert', issuing_cert)
watch(no_server_name, () => emit('update:enabled', false)) watch(no_server_name, () => {
enabled.value = false
})
const update = ref(0) const update = ref(0)

View file

@ -6,6 +6,8 @@ import cert from '@/api/cert'
import type { NgxDirective } from '@/api/ngx' import type { NgxDirective } from '@/api/ngx'
import certColumns from '@/views/certificate/CertificateList/certColumns' import certColumns from '@/views/certificate/CertificateList/certColumns'
const emit = defineEmits(['change'])
const current_server_directives = inject('current_server_directives') as WritableComputedRef<NgxDirective[]> const current_server_directives = inject('current_server_directives') as WritableComputedRef<NgxDirective[]>
const visible = ref(false) const visible = ref(false)
@ -34,6 +36,10 @@ async function ok() {
}) })
visible.value = false visible.value = false
emit('change', records.value)
records.value = []
selectedKeys.value = []
} }
</script> </script>

View file

@ -17,21 +17,18 @@ type Info struct {
func GetCertInfo(sslCertificatePath string) (info *Info, err error) { func GetCertInfo(sslCertificatePath string) (info *Info, err error) {
certData, err := os.ReadFile(sslCertificatePath) certData, err := os.ReadFile(sslCertificatePath)
if err != nil { if err != nil {
err = errors.Wrap(err, "error read certificate") err = errors.Wrap(err, "error read certificate")
return return
} }
block, _ := pem.Decode(certData) block, _ := pem.Decode(certData)
if block == nil || block.Type != "CERTIFICATE" { if block == nil || block.Type != "CERTIFICATE" {
err = errors.New("certificate decoding error") err = errors.New("certificate decoding error")
return return
} }
cert, err := x509.ParseCertificate(block.Bytes) cert, err := x509.ParseCertificate(block.Bytes)
if err != nil { if err != nil {
err = errors.Wrap(err, "certificate parsing error") err = errors.Wrap(err, "certificate parsing error")
return return
@ -43,6 +40,5 @@ func GetCertInfo(sslCertificatePath string) (info *Info, err error) {
NotAfter: cert.NotAfter, NotAfter: cert.NotAfter,
NotBefore: cert.NotBefore, NotBefore: cert.NotBefore,
} }
return return
} }