From b5508b736607e3daac39ed162b676e130a619c9e Mon Sep 17 00:00:00 2001 From: 0xJacky Date: Thu, 5 Jan 2023 20:47:33 +0800 Subject: [PATCH] fix: config template parse issue --- frontend/components.d.ts | 14 -- .../StdDataEntry/compontents/StdPassword.vue | 51 ------- .../StdDataEntry/compontents/StdSelect.vue | 45 ------ .../StdDataEntry/compontents/StdSelector.vue | 137 ------------------ frontend/src/language/en/app.po | 48 +++--- frontend/src/language/messages.pot | 38 +++-- frontend/src/language/translations.json | 2 +- frontend/src/language/zh_CN/app.mo | Bin 10962 -> 11047 bytes frontend/src/language/zh_CN/app.po | 44 +++--- frontend/src/language/zh_TW/app.po | 46 +++--- frontend/src/views/domain/cert/Cert.vue | 6 + frontend/src/views/domain/cert/ChangeCert.vue | 31 ++++ frontend/src/views/domain/cert/IssueCert.vue | 37 +++-- server/service/template.go | 8 +- template/{conf => block}/nginx-ui.conf | 18 +-- template/block/wordpress.conf | 12 ++ template/conf/wordpress.conf | 45 ------ 17 files changed, 184 insertions(+), 398 deletions(-) delete mode 100644 frontend/src/components/StdDataEntry/compontents/StdPassword.vue delete mode 100644 frontend/src/components/StdDataEntry/compontents/StdSelect.vue delete mode 100644 frontend/src/components/StdDataEntry/compontents/StdSelector.vue create mode 100644 frontend/src/views/domain/cert/ChangeCert.vue rename template/{conf => block}/nginx-ui.conf (70%) create mode 100644 template/block/wordpress.conf delete mode 100644 template/conf/wordpress.conf diff --git a/frontend/components.d.ts b/frontend/components.d.ts index 842c10ce..0595f33c 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -12,17 +12,13 @@ declare module '@vue/runtime-core' { ABreadcrumbItem: typeof import('ant-design-vue/es')['BreadcrumbItem'] AButton: typeof import('ant-design-vue/es')['Button'] ACard: typeof import('ant-design-vue/es')['Card'] - ACol: typeof import('ant-design-vue/es')['Col'] AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] - ADivider: typeof import('ant-design-vue/es')['Divider'] ADrawer: typeof import('ant-design-vue/es')['Drawer'] AEmpty: typeof import('ant-design-vue/es')['Empty'] AForm: typeof import('ant-design-vue/es')['Form'] AFormItem: typeof import('ant-design-vue/es')['FormItem'] AInput: typeof import('ant-design-vue/es')['Input'] AInputGroup: typeof import('ant-design-vue/es')['InputGroup'] - AInputNumber: typeof import('ant-design-vue/es')['InputNumber'] - AInputPassword: typeof import('ant-design-vue/es')['InputPassword'] ALayout: typeof import('ant-design-vue/es')['Layout'] ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent'] ALayoutFooter: typeof import('ant-design-vue/es')['LayoutFooter'] @@ -33,20 +29,13 @@ declare module '@vue/runtime-core' { AMenu: typeof import('ant-design-vue/es')['Menu'] AMenuItem: typeof import('ant-design-vue/es')['MenuItem'] AModal: typeof import('ant-design-vue/es')['Modal'] - APagination: typeof import('ant-design-vue/es')['Pagination'] APopconfirm: typeof import('ant-design-vue/es')['Popconfirm'] AProgress: typeof import('ant-design-vue/es')['Progress'] - AResult: typeof import('ant-design-vue/es')['Result'] - ARow: typeof import('ant-design-vue/es')['Row'] ASelect: typeof import('ant-design-vue/es')['Select'] ASelectOption: typeof import('ant-design-vue/es')['SelectOption'] ASpace: typeof import('ant-design-vue/es')['Space'] - AStatistic: typeof import('ant-design-vue/es')['Statistic'] - AStep: typeof import('ant-design-vue/es')['Step'] - ASteps: typeof import('ant-design-vue/es')['Steps'] ASubMenu: typeof import('ant-design-vue/es')['SubMenu'] ASwitch: typeof import('ant-design-vue/es')['Switch'] - ATable: typeof import('ant-design-vue/es')['Table'] ATabPane: typeof import('ant-design-vue/es')['TabPane'] ATabs: typeof import('ant-design-vue/es')['Tabs'] ATag: typeof import('ant-design-vue/es')['Tag'] @@ -68,8 +57,5 @@ declare module '@vue/runtime-core' { StdDataEntryComponentsStdPassword: typeof import('./src/components/StdDataEntry/components/StdPassword.vue')['default'] StdDataEntryComponentsStdSelect: typeof import('./src/components/StdDataEntry/components/StdSelect.vue')['default'] StdDataEntryComponentsStdSelector: typeof import('./src/components/StdDataEntry/components/StdSelector.vue')['default'] - StdDataEntryCompontentsStdPassword: typeof import('./src/components/StdDataEntry/compontents/StdPassword.vue')['default'] - StdDataEntryCompontentsStdSelect: typeof import('./src/components/StdDataEntry/compontents/StdSelect.vue')['default'] - StdDataEntryCompontentsStdSelector: typeof import('./src/components/StdDataEntry/compontents/StdSelector.vue')['default'] } } diff --git a/frontend/src/components/StdDataEntry/compontents/StdPassword.vue b/frontend/src/components/StdDataEntry/compontents/StdPassword.vue deleted file mode 100644 index d7cede50..00000000 --- a/frontend/src/components/StdDataEntry/compontents/StdPassword.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/StdDataEntry/compontents/StdSelect.vue b/frontend/src/components/StdDataEntry/compontents/StdSelect.vue deleted file mode 100644 index 75b8a358..00000000 --- a/frontend/src/components/StdDataEntry/compontents/StdSelect.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - - \ No newline at end of file diff --git a/frontend/src/components/StdDataEntry/compontents/StdSelector.vue b/frontend/src/components/StdDataEntry/compontents/StdSelector.vue deleted file mode 100644 index efa662f7..00000000 --- a/frontend/src/components/StdDataEntry/compontents/StdSelector.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - - - diff --git a/frontend/src/language/en/app.po b/frontend/src/language/en/app.po index 8172f67f..7ff0cd3e 100644 --- a/frontend/src/language/en/app.po +++ b/frontend/src/language/en/app.po @@ -91,11 +91,11 @@ msgstr "" msgid "Auto Refresh" msgstr "" -#: src/views/domain/cert/IssueCert.vue:72 +#: src/views/domain/cert/IssueCert.vue:71 msgid "Auto-renewal disabled for %{name}" msgstr "Auto-renewal disabled for %{name}" -#: src/views/domain/cert/IssueCert.vue:66 +#: src/views/domain/cert/IssueCert.vue:65 msgid "Auto-renewal enabled for %{name}" msgstr "Auto-renewal enabled for %{name}" @@ -134,7 +134,6 @@ msgstr "Build with" #: src/components/StdDataDisplay/StdBatchEdit.vue:7 #: src/components/StdDataDisplay/StdCurd.vue:27 #: src/components/StdDataEntry/components/StdSelector.vue:11 -#: src/components/StdDataEntry/compontents/StdSelector.vue:11 msgid "Cancel" msgstr "Cancel" @@ -146,7 +145,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:31 +#: src/views/cert/Cert.vue:12 src/views/domain/cert/Cert.vue:35 msgid "Certificate Status" msgstr "Certificate Status" @@ -155,6 +154,13 @@ msgstr "Certificate Status" msgid "Certification" msgstr "Certificate is valid" +#: src/views/domain/cert/ChangeCert.vue:2 +#: src/views/domain/cert/ChangeCert.vue:3 +#: src/views/domain/cert/ChangeCert.vue:5 +#, fuzzy +msgid "Change Certificate" +msgstr "Certificate is valid" + #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34 #: src/views/domain/ngx_conf/LocationEditor.vue:31 #: src/views/domain/ngx_conf/LocationEditor.vue:47 @@ -267,7 +273,7 @@ msgstr "Directive" msgid "Directives" msgstr "Directives" -#: src/views/domain/cert/IssueCert.vue:74 +#: src/views/domain/cert/IssueCert.vue:73 msgid "Disable auto-renewal failed for %{name}" msgstr "Disable auto-renewal failed for %{name}" @@ -310,7 +316,7 @@ msgstr "Edit Site" msgid "Email (*)" msgstr "Email (*)" -#: src/views/domain/cert/IssueCert.vue:68 +#: src/views/domain/cert/IssueCert.vue:67 msgid "Enable auto-renewal failed for %{name}" msgstr "Enable auto-renewal failed for %{name}" @@ -397,7 +403,6 @@ msgid "Format successfully" msgstr "Saved successfully" #: src/components/StdDataEntry/components/StdPassword.vue:42 -#: src/components/StdDataEntry/compontents/StdPassword.vue:42 msgid "Generate" msgstr "" @@ -405,7 +410,7 @@ msgstr "" msgid "Generating private key for registering account" msgstr "" -#: src/views/domain/cert/IssueCert.vue:97 +#: src/views/domain/cert/IssueCert.vue:96 msgid "Getting the certificate, please wait..." msgstr "Getting the certificate, please wait..." @@ -478,7 +483,7 @@ msgstr "Login successful" msgid "Logout successful" msgstr "Logout successful" -#: src/views/domain/cert/IssueCert.vue:210 +#: src/views/domain/cert/IssueCert.vue:211 msgid "" "Make sure you have configured a reverse proxy for .well-known directory to " "HTTPChallengePort (default: 9180) before getting the certificate." @@ -578,13 +583,9 @@ msgstr "Not Found" msgid "Not Valid Before: %{date}" msgstr "Not Valid Before: %{date}" -#: src/views/domain/cert/IssueCert.vue:202 -msgid "" -"Note: The server_name in the current configuration must be the domain name " -"you need to get the certificate." +#: src/views/domain/cert/IssueCert.vue:38 +msgid "Note" msgstr "" -"Note: The server_name in the current configuration must be the domain name " -"you need to get the certificate." #: src/language/constants.ts:16 src/views/domain/cert/IssueCert.vue:3 msgid "Obtaining certificate" @@ -594,7 +595,6 @@ msgstr "" #: src/components/StdDataDisplay/StdCurd.vue:28 #: src/components/StdDataDisplay/StdTable.vue:53 #: src/components/StdDataEntry/components/StdSelector.vue:12 -#: src/components/StdDataEntry/compontents/StdSelector.vue:12 #: src/views/domain/DomainList.vue:25 msgid "OK" msgstr "" @@ -719,7 +719,6 @@ msgid "Saved successfully" msgstr "Saved successfully" #: src/components/StdDataEntry/components/StdSelector.vue:13 -#: src/components/StdDataEntry/compontents/StdSelector.vue:13 msgid "Selector" msgstr "" @@ -742,11 +741,11 @@ msgstr "Server error" msgid "Server Info" msgstr "Server Info" -#: src/views/domain/cert/IssueCert.vue:29 +#: src/views/domain/cert/IssueCert.vue:30 msgid "server_name not found in directives" msgstr "server_name not found in directives" -#: src/views/domain/cert/IssueCert.vue:196 src/views/domain/DomainAdd.vue:111 +#: src/views/domain/cert/IssueCert.vue:195 src/views/domain/DomainAdd.vue:111 msgid "server_name parameter is required" msgstr "server_name parameter is required" @@ -813,7 +812,7 @@ msgstr "Terminal" msgid "Terminal Start Command" msgstr "" -#: src/views/domain/cert/IssueCert.vue:206 +#: src/views/domain/cert/IssueCert.vue:207 msgid "" "The certificate for the domain will be checked every hour, and will be " "renewed if it has been more than 1 month since it was last issued." @@ -825,6 +824,15 @@ msgstr "" msgid "The filename cannot contain the following characters: %{c}" msgstr "The filename cannot contain the following characters: %{c}" +#: src/views/domain/cert/IssueCert.vue:203 +#, fuzzy +msgid "" +"The server_name in the current configuration must be the domain name you " +"need to get the certificate." +msgstr "" +"Note: The server_name in the current configuration must be the domain name " +"you need to get the certificate." + #: src/language/constants.ts:6 msgid "The username or password is incorrect" msgstr "" diff --git a/frontend/src/language/messages.pot b/frontend/src/language/messages.pot index ff078901..0dbed548 100644 --- a/frontend/src/language/messages.pot +++ b/frontend/src/language/messages.pot @@ -87,11 +87,11 @@ msgstr "" msgid "Auto Refresh" msgstr "" -#: src/views/domain/cert/IssueCert.vue:72 +#: src/views/domain/cert/IssueCert.vue:71 msgid "Auto-renewal disabled for %{name}" msgstr "" -#: src/views/domain/cert/IssueCert.vue:66 +#: src/views/domain/cert/IssueCert.vue:65 msgid "Auto-renewal enabled for %{name}" msgstr "" @@ -132,7 +132,6 @@ msgstr "" #: src/components/StdDataDisplay/StdBatchEdit.vue:7 #: src/components/StdDataDisplay/StdCurd.vue:27 #: src/components/StdDataEntry/components/StdSelector.vue:11 -#: src/components/StdDataEntry/compontents/StdSelector.vue:11 msgid "Cancel" msgstr "" @@ -145,7 +144,7 @@ msgid "Certificate is valid" msgstr "" #: src/views/cert/Cert.vue:12 -#: src/views/domain/cert/Cert.vue:31 +#: src/views/domain/cert/Cert.vue:35 msgid "Certificate Status" msgstr "" @@ -154,6 +153,12 @@ msgstr "" msgid "Certification" msgstr "" +#: src/views/domain/cert/ChangeCert.vue:2 +#: src/views/domain/cert/ChangeCert.vue:3 +#: src/views/domain/cert/ChangeCert.vue:5 +msgid "Change Certificate" +msgstr "" + #: src/views/domain/ngx_conf/directive/DirectiveEditorItem.vue:34 #: src/views/domain/ngx_conf/LocationEditor.vue:31 #: src/views/domain/ngx_conf/LocationEditor.vue:47 @@ -266,7 +271,7 @@ msgstr "" msgid "Directives" msgstr "" -#: src/views/domain/cert/IssueCert.vue:74 +#: src/views/domain/cert/IssueCert.vue:73 msgid "Disable auto-renewal failed for %{name}" msgstr "" @@ -316,7 +321,7 @@ msgstr "" msgid "Email (*)" msgstr "" -#: src/views/domain/cert/IssueCert.vue:68 +#: src/views/domain/cert/IssueCert.vue:67 msgid "Enable auto-renewal failed for %{name}" msgstr "" @@ -411,7 +416,6 @@ msgid "Format successfully" msgstr "" #: src/components/StdDataEntry/components/StdPassword.vue:42 -#: src/components/StdDataEntry/compontents/StdPassword.vue:42 msgid "Generate" msgstr "" @@ -419,7 +423,7 @@ msgstr "" msgid "Generating private key for registering account" msgstr "" -#: src/views/domain/cert/IssueCert.vue:97 +#: src/views/domain/cert/IssueCert.vue:96 msgid "Getting the certificate, please wait..." msgstr "" @@ -492,7 +496,7 @@ msgstr "" msgid "Logout successful" msgstr "" -#: src/views/domain/cert/IssueCert.vue:210 +#: src/views/domain/cert/IssueCert.vue:211 msgid "Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate." msgstr "" @@ -592,8 +596,8 @@ msgstr "" msgid "Not Valid Before: %{date}" msgstr "" -#: src/views/domain/cert/IssueCert.vue:202 -msgid "Note: The server_name in the current configuration must be the domain name you need to get the certificate." +#: src/views/domain/cert/IssueCert.vue:38 +msgid "Note" msgstr "" #: src/language/constants.ts:16 @@ -605,7 +609,6 @@ msgstr "" #: src/components/StdDataDisplay/StdCurd.vue:28 #: src/components/StdDataDisplay/StdTable.vue:53 #: src/components/StdDataEntry/components/StdSelector.vue:12 -#: src/components/StdDataEntry/compontents/StdSelector.vue:12 #: src/views/domain/DomainList.vue:25 msgid "OK" msgstr "" @@ -734,7 +737,6 @@ msgid "Saved successfully" msgstr "" #: src/components/StdDataEntry/components/StdSelector.vue:13 -#: src/components/StdDataEntry/compontents/StdSelector.vue:13 msgid "Selector" msgstr "" @@ -762,11 +764,11 @@ msgstr "" msgid "Server Info" msgstr "" -#: src/views/domain/cert/IssueCert.vue:29 +#: src/views/domain/cert/IssueCert.vue:30 msgid "server_name not found in directives" msgstr "" -#: src/views/domain/cert/IssueCert.vue:196 +#: src/views/domain/cert/IssueCert.vue:195 #: src/views/domain/DomainAdd.vue:111 msgid "server_name parameter is required" msgstr "" @@ -829,7 +831,7 @@ msgstr "" msgid "Terminal Start Command" msgstr "" -#: src/views/domain/cert/IssueCert.vue:206 +#: src/views/domain/cert/IssueCert.vue:207 msgid "The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued." msgstr "" @@ -837,6 +839,10 @@ msgstr "" msgid "The filename cannot contain the following characters: %{c}" msgstr "" +#: src/views/domain/cert/IssueCert.vue:203 +msgid "The server_name in the current configuration must be the domain name you need to get the certificate." +msgstr "" + #: src/language/constants.ts:6 msgid "The username or password is incorrect" msgstr "" diff --git a/frontend/src/language/translations.json b/frontend/src/language/translations.json index 2ad4d826..956c18db 100644 --- a/frontend/src/language/translations.json +++ b/frontend/src/language/translations.json @@ -1 +1 @@ -{"en":{"About":"About","Action":"Action","Add Directive Below":"Add Directive Below","Add Location":"Add Location","Add Site":"Add Site","Advance Mode":"Advance Mode","Are you sure you want to remove this directive?":"Are you sure you want to remove this directive?","Auto-renewal disabled for %{name}":"Auto-renewal disabled for %{name}","Auto-renewal enabled for %{name}":"Auto-renewal enabled for %{name}","Back":"Back","Base information":"Base information","Basic Mode":"Basic Mode","Build with":"Build with","Cancel":"Cancel","Certificate has expired":"Certificate has expired","Certificate is valid":"Certificate is valid","Certificate Status":"Certificate Status","Comments":"Comments","Configuration Name":"Configuration Name","Configurations":"Configurations","Configure SSL":"Configure SSL","Content":"Content","CPU Status":"CPU Status","CPU:":"CPU:","Create Another":"Create Another","Created at":"Created at","Dashboard":"Dashboard","Database (Optional, default: database)":"Database (Optional, default: database)","Development Mode":"Development Mode","Directive":"Directive","Directives":"Directives","Disable auto-renewal failed for %{name}":"Disable auto-renewal failed for %{name}","Disabled":"Disabled","Disabled successfully":"Disabled successfully","Disk IO":"Disk IO","Domain Config Created Successfully":"Domain Config Created Successfully","Edit %{n}":"Edit %{n}","Edit Configuration":"Edit Configuration","Edit Site":"Edit Site","Email (*)":"Email (*)","Enable auto-renewal failed for %{name}":"Enable auto-renewal failed for %{name}","Enable failed":"Enable failed","Enable TLS":"Enable TLS","Enabled":"Enabled","Enabled successfully":"Enabled successfully","Encrypt website with Let's Encrypt":"Encrypt website with Let's Encrypt","Expiration Date: %{date}":"Expiration Date: %{date}","Failed to disable %{msg}":"Failed to disable %{msg}","Failed to enable %{msg}":"Failed to enable %{msg}","File Not Found":"File Not Found","Finished":"Finished","Getting the certificate, please wait...":"Getting the certificate, please wait...","Home":"Home","Install":"Install","Intermediate Certification Authorities: %{issuer}":"Intermediate Certification Authorities: %{issuer}","Leave blank for no change":"Leave blank for no change","Load Averages:":"Load Averages:","Location":"Location","Locations":"Locations","Login":"Login","Login successful":"Login successful","Logout successful":"Logout successful","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.","Manage Configs":"Manage Configs","Manage Sites":"Manage Sites","Manage Users":"Manage Users","Memory":"Memory","Memory and Storage":"Memory and Storage","Modify Config":"Modify Config","Name":"Name","Network":"Network","Network Statistics":"Network Statistics","Network Total Receive":"Network Total Receive","Network Total Send":"Network Total Send","Next":"Next","No":"No","Not Found":"Not Found","Not Valid Before: %{date}":"Not Valid Before: %{date}","Note: The server_name in the current configuration must be the domain name you need to get the certificate.":"Note: The server_name in the current configuration must be the domain name you need to get the certificate.","OS:":"OS:","Params":"Params","Password":"Password","Password (*)":"Password (*)","Path":"Path","Please input your E-mail!":"Please input your E-mail!","Please input your password!":"Please input your password!","Please input your username!":"Please input your username!","Project Team":"Project Team","Reads":"Reads","Receive":"Receive","Save":"Save","Save Directive":"Save Directive","Save error %{msg}":"Save error %{msg}","Saved successfully":"Saved successfully","Send":"Send","Server error":"Server error","Server Info":"Server Info","server_name not found in directives":"server_name not found in directives","server_name parameter is required":"server_name parameter is required","Single Directive":"Single Directive","Sites List":"Sites List","Status":"Status","Storage":"Storage","Subject Name: %{name}":"Subject Name: %{name}","Swap":"Swap","Terminal":"Terminal","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.","The filename cannot contain the following characters: %{c}":"The filename cannot contain the following characters: %{c}","Updated at":"Updated at","Uptime:":"Uptime:","Username":"Username","Username (*)":"Username (*)","Warning":"Warning","Writes":"Writes","Yes":"Yes","License":{"Project":"License"}},"zh_CN":{"About":"关于","Access Logs":"访问日志","Action":"操作","Add":"添加","Add Directive Below":"在下面添加指令","Add Location":"添加 Location","Add Site":"添加站点","Advance Mode":"高级模式","Are you sure you want to delete?":"您确定要删除吗?","Are you sure you want to remove this directive?":"您确定要删除这条指令?","Are you sure you want to remove this location?":"您确定要删除这个 Location?","Author":"作者","Auto":"自动","Auto Cert":"自动更新","Auto cert is enabled, please do not modify this certification.":"自动更新已启用,请勿修改此证书配置。","Auto Refresh":"自动刷新","Auto-renewal disabled for %{name}":"成功关闭 %{name} 自动续签","Auto-renewal enabled for %{name}":"成功启用 %{name} 自动续签","Back":"返回","Back Home":"返回首页","Base information":"基本信息","Basic Mode":"基本模式","Batch Modify":"批量修改","Build with":"构建基于","Cancel":"取消","Certificate has expired":"此证书已过期","Certificate is valid":"此证书有效","Certificate Status":"证书状态","Certification":"证书","Comments":"注释","Config Templates":"配置","Configuration Name":"配置名称","Configurations":"配置","Configure SSL":"配置 SSL","Content":"内容","CPU Status":"CPU 状态","CPU:":"CPU:","Create Another":"再创建一个","Created at":"创建时间","Creating client facilitates communication with the CA server":"正在创建客户端用于与 CA 服务器通信","Custom":"自定义","Dark":"深色","Dashboard":"仪表盘","Database (Optional, default: database)":"数据库 (可选,默认: database)","Delete":"删除","Delete ID: %{id}":"删除 ID: %{id}","Delete site: %{site_name}":"删除站点: %{site_name}","Description":"描述","Development Mode":"开发模式","Dir":"目录","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"关闭 %{name} 自动续签失败","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁盘 IO","Domain":"域名","Domain Config Created Successfully":"域名配置文件创建成功","Edit %{n}":"编辑 %{n}","Edit Configuration":"编辑配置","Edit Site":"编辑站点","Email (*)":"邮箱 (*)","Enable auto-renewal failed for %{name}":"启用 %{name} 自动续签失败","Enable failed":"启用失败","Enable TLS":"启用 TLS","Enabled":"启用","Enabled successfully":"启用成功","Encrypt website with Let's Encrypt":"用 Let's Encrypt 对网站进行加密","Error Logs":"错误日志","Expiration Date: %{date}":"过期时间: %{date}","Export":"导出","Failed to disable %{msg}":"禁用失败 %{msg}","Failed to enable %{msg}":"启用失败 %{msg}","Failed to get certificate information":"获取证书信息失败","File":"文件","File Not Found":"未找到文件","Filter":"过滤","Finished":"完成","Format Code":"代码格式化","Format error %{msg}":"保存错误 %{msg}","Format successfully":"保存成功","Generate":"生成","Generating private key for registering account":"正在生成私钥用于注册账户","Getting the certificate, please wait...":"正在获取证书,请稍等...","Home":"首页","HTTP Challenge Port":"HTTP Challenge 监听端口","HTTP Port":"HTTP 监听端口","Install":"安装","Install successfully":"安装成功","Intermediate Certification Authorities: %{issuer}":"中级证书颁发机构: %{issuer}","Issued certificate successfully":"证书申请成功","Jwt Secret":"Jwt 密钥","Leave blank for no change":"留空表示不修改","Light":"浅色","Load Averages:":"系统负载:","Location":"Location","Locations":"Locations","Login":"登录","Login successful":"登录成功","Logout successful":"登出成功","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 HTTPChallengePort (默认: 9180)","Manage Configs":"配置管理","Manage Sites":"网站管理","Manage Users":"用户管理","Memory":"内存","Memory and Storage":"内存与存储","Modify":"修改","Modify Config":"修改配置文件","Multi-line Directive":"单行指令","Name":"名称","Network":"网络","Network Statistics":"流量统计","Network Total Receive":"下载流量","Network Total Send":"上传流量","Next":"下一步","Nginx Access Log Path":"Nginx 访问日志路径","Nginx Error Log Path":"Nginx 错误日志路径","Nginx Log":"Nginx 日志","No":"取消","Not Found":"找不到页面","Not Valid Before: %{date}":"此前无效: %{date}","Note: The server_name in the current configuration must be the domain name you need to get the certificate.":"注意:当前配置中的 server_name 必须为需要申请证书的域名。","Obtaining certificate":"正在获取证书","OK":"确定","OS:":"OS:","Params":"参数","Password":"密码","Password (*)":"密码 (*)","Path":"路径","Please input your E-mail!":"请输入您的邮箱!","Please input your password!":"请输入您的密码!","Please input your username!":"请输入您的用户名!","Preference":"偏好设置","Preparing lego configurations":"正在准备 Lego 的配置","Prohibit changing root password in demo":"禁止在演示模式下修改 root 账户的密码","Prohibit deleting the default user":"禁止删除默认用户","Project Team":"项目团队","Reads":"读","Receive":"下载","Registering user":"正在注册用户","Reloading nginx":"正在重载 Nginx","Reset":"重置","Run Mode":"运行模式","Save":"保存","Save Directive":"保存指令","Save error %{msg}":"保存错误 %{msg}","Save successfully":"保存成功","Save Successfully":"保存成功","Saved successfully":"保存成功","Selector":"选择器","Send":"上传","Server error":"服务器错误","Server Info":"服务器信息","server_name not found in directives":"未在指令集合中找到 server_name","server_name parameter is required":"必须为 server_name 指令指明参数","Single Directive":"单行指令","Site Logs":"站点列表","Sites List":"站点列表","SSL Certificate Key Path":"SSL证书密钥路径","SSL Certificate Path":"SSL证书路径","SSL Certification Content":"SSL证书内容","SSL Certification Key Content":"SSL证书密钥内容","Status":"状态","Storage":"存储","Subject Name: %{name}":"主体名称: %{name}","Swap":"Swap","Table":"列表","Terminal":"终端","Terminal Start Command":"终端启动命令","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。","The filename cannot contain the following characters: %{c}":"文件名不能包含以下字符: %{c}","The username or password is incorrect":"用户名或密码错误","Theme":"主题","Type":"类型","Updated at":"修改时间","Updated successfully":"更新成功","Uptime:":"运行时间:","Username":"用户名","Username (*)":"用户名 (*)","Using HTTP01 challenge provider":"使用 HTTP01 challenge provider","View":"查看","Warning":"警告","Writes":"写","Writing certificate private key to disk":"正在将证书私钥写入磁盘","Writing certificate to disk":"正在将证书写入磁盘","Yes":"是的","License":{"Project":"开源许可"}},"zh_TW":{"About":"關於","Access Logs":"訪問日誌","Action":"操作","Add":"新增","Add Directive Below":"在下面新增指令","Add Location":"新增 Location","Add Site":"新增站點","Advance Mode":"高階模式","Are you sure you want to delete?":"你確定你要刪除?","Are you sure you want to remove this directive?":"您確定要刪除這條指令?","Are you sure you want to remove this location?":"您確定要刪除此 Location 嗎?","Auto":"自動","Auto Refresh":"自動刷新","Auto-renewal disabled for %{name}":"已關閉 %{name} 自動續簽","Auto-renewal enabled for %{name}":"已啟用 %{name} 自動續簽","Back":"返回","Back Home":"回到首頁","Base information":"基本訊息","Basic Mode":"基本模式","Batch Modify":"批量修改","Build with":"構建基於","Cancel":"取消","Certificate has expired":"此憑證已過期","Certificate is valid":"此憑證有效","Certificate Status":"憑證狀態","Comments":"註釋","Configuration Name":"配置名稱","Configurations":"配置","Configure SSL":"配置 SSL","Content":"內容","CPU Status":"中央處理器狀態","CPU:":"中央處理器:","Create Another":"再創建一個","Created at":"建立時間","Creating client facilitates communication with the CA server":"創建客戶端方便與CA服務器通信","Dark":"深色","Dashboard":"儀表盤","Database (Optional, default: database)":"資料庫 (可選,預設: database)","Delete":"刪除","Delete ID: %{id}":"刪除 ID: %{id}","Delete site: %{site_name}":"刪除站點:%{site_name}","Development Mode":"開發模式","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"關閉 %{name} 自動續簽失敗","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁碟 IO","Domain Config Created Successfully":"域名配置文件創建成功","Edit %{n}":"編輯 %{n}","Edit Configuration":"編輯配置","Edit Site":"編輯站點","Email (*)":"郵箱 (*)","Enable auto-renewal failed for %{name}":"啟用 %{name} 自動續簽失敗","Enable failed":"啟用失敗","Enable TLS":"啟用 TLS","Enabled":"啟用","Enabled successfully":"啟用成功","Encrypt website with Let's Encrypt":"用 Let's Encrypt 對網站進行加密","Error Logs":"錯誤日志","Expiration Date: %{date}":"過期時間: %{date}","Export":"導出","Failed to disable %{msg}":"禁用失敗 %{msg}","Failed to enable %{msg}":"啟用失敗 %{msg}","Failed to get certificate information":"獲取證書信息失敗","File Not Found":"未找到檔案","Filter":"篩選","Finished":"完成","Generate":"生成","Generating private key for registering account":"生成註冊賬號私鑰","Getting the certificate, please wait...":"正在獲取憑證,請稍等...","Home":"首頁","Install":"安裝","Install successfully":"安裝成功","Intermediate Certification Authorities: %{issuer}":"中級憑證頒發機構: %{issuer}","Issued certificate successfully":"頒發證書成功","Leave blank for no change":"留空表示不修改","Light":"淺色","Load Averages:":"系統負載:","Location":"Location","Locations":"Locations","Login":"登入","Login successful":"登入成功","Logout successful":"登出成功","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"在獲取證書前,請確保配置檔案中已將 .well-known 目錄反向代理到 HTTPChallengePort (預設: 9180)","Manage Configs":"配置管理","Manage Sites":"網站管理","Manage Users":"使用者管理","Memory":"記憶體","Memory and Storage":"記憶體和存儲","Modify":"修改","Modify Config":"修改配置","Name":"名稱","Network":"網路","Network Statistics":"網路統計","Network Total Receive":"下載流量","Network Total Send":"上傳流量","Next":"下一步","Nginx Log":"Nginx 日誌","No":"取消","Not Found":"找不到頁面","Not Valid Before: %{date}":"此前無效: %{date}","Note: The server_name in the current configuration must be the domain name you need to get the certificate.":"注意:當前配置中的 server_name 必須為需要申請證書的域名。","Obtaining certificate":"正在獲取證書,請稍等...","OK":"確定","OS:":"作業系統:","Params":"參數","Password":"密碼","Password (*)":"密碼 (*)","Path":"路徑","Please input your E-mail!":"請輸入您的郵箱!","Please input your password!":"請輸入您的密碼!","Please input your username!":"請輸入您的使用者名稱!","Preference":"設定","Preparing lego configurations":"準備 Lego 配置","Prohibit changing root password in demo":"禁止在demo中修改root密碼","Prohibit deleting the default user":"禁止刪除默認用戶","Project Team":"專案團隊","Reads":"讀","Receive":"下載","Registering user":"註冊用戶","Reloading nginx":"重载 Nginx","Reset":"重設","Save":"儲存","Save Directive":"儲存指令","Save error %{msg}":"儲存錯誤 %{msg}","Save successfully":"保存成功","Save Successfully":"保存成功","Saved successfully":"儲存成功","Selector":"選擇器","Send":"上傳","Server error":"伺服器錯誤","Server Info":"伺服器資訊","server_name not found in directives":"未在指令集合中找到 server_name","server_name parameter is required":"必須為 server_name 指令指明參數","Single Directive":"單行指令","Site Logs":"網站日誌","Sites List":"站點列表","Status":"狀態","Storage":"儲存","Subject Name: %{name}":"主體名稱: %{name}","Swap":"交換空間","Table":"表格","Terminal":"終端","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續簽。
如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。","The filename cannot contain the following characters: %{c}":"檔名不能包含以下字元: %{c}","The username or password is incorrect":"用戶名或密碼不正確","Theme":"外觀樣式","Updated at":"修改時間","Updated successfully":"已成功更新","Uptime:":"執行時間:","Username":"使用者名稱","Username (*)":"使用者名稱 (*)","Using HTTP01 challenge provider":"使用 HTTP01 挑戰提供者","Warning":"警告","Writes":"寫","Writing certificate private key to disk":"將證書私鑰寫入磁盤","Writing certificate to disk":"將證書寫入磁盤","Yes":"是的","License":{"Project":"開源軟體授權條款"}}} \ No newline at end of file +{"zh_CN":{"About":"关于","Access Logs":"访问日志","Action":"操作","Add":"添加","Add Directive Below":"在下面添加指令","Add Location":"添加 Location","Add Site":"添加站点","Advance Mode":"高级模式","Are you sure you want to delete?":"您确定要删除吗?","Are you sure you want to remove this directive?":"您确定要删除这条指令?","Are you sure you want to remove this location?":"您确定要删除这个 Location?","Author":"作者","Auto":"自动","Auto Cert":"自动更新","Auto cert is enabled, please do not modify this certification.":"自动更新已启用,请勿修改此证书配置。","Auto Refresh":"自动刷新","Auto-renewal disabled for %{name}":"成功关闭 %{name} 自动续签","Auto-renewal enabled for %{name}":"成功启用 %{name} 自动续签","Back":"返回","Back Home":"返回首页","Base information":"基本信息","Basic Mode":"基本模式","Batch Modify":"批量修改","Build with":"构建基于","Cancel":"取消","Certificate has expired":"此证书已过期","Certificate is valid":"此证书有效","Certificate Status":"证书状态","Certification":"证书","Change Certificate":"更改证书","Comments":"注释","Config Templates":"配置","Configuration Name":"配置名称","Configurations":"配置","Configure SSL":"配置 SSL","Content":"内容","CPU Status":"CPU 状态","CPU:":"CPU:","Create Another":"再创建一个","Created at":"创建时间","Creating client facilitates communication with the CA server":"正在创建客户端用于与 CA 服务器通信","Custom":"自定义","Dark":"深色","Dashboard":"仪表盘","Database (Optional, default: database)":"数据库 (可选,默认: database)","Delete":"删除","Delete ID: %{id}":"删除 ID: %{id}","Delete site: %{site_name}":"删除站点: %{site_name}","Description":"描述","Development Mode":"开发模式","Dir":"目录","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"关闭 %{name} 自动续签失败","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁盘 IO","Domain":"域名","Domain Config Created Successfully":"域名配置文件创建成功","Edit %{n}":"编辑 %{n}","Edit Configuration":"编辑配置","Edit Site":"编辑站点","Email (*)":"邮箱 (*)","Enable auto-renewal failed for %{name}":"启用 %{name} 自动续签失败","Enable failed":"启用失败","Enable TLS":"启用 TLS","Enabled":"启用","Enabled successfully":"启用成功","Encrypt website with Let's Encrypt":"用 Let's Encrypt 对网站进行加密","Error Logs":"错误日志","Expiration Date: %{date}":"过期时间: %{date}","Export":"导出","Failed to disable %{msg}":"禁用失败 %{msg}","Failed to enable %{msg}":"启用失败 %{msg}","Failed to get certificate information":"获取证书信息失败","File":"文件","File Not Found":"未找到文件","Filter":"过滤","Finished":"完成","Format Code":"代码格式化","Format error %{msg}":"保存错误 %{msg}","Format successfully":"保存成功","Generate":"生成","Generating private key for registering account":"正在生成私钥用于注册账户","Getting the certificate, please wait...":"正在获取证书,请稍等...","Home":"首页","HTTP Challenge Port":"HTTP Challenge 监听端口","HTTP Port":"HTTP 监听端口","Install":"安装","Install successfully":"安装成功","Intermediate Certification Authorities: %{issuer}":"中级证书颁发机构: %{issuer}","Issued certificate successfully":"证书申请成功","Jwt Secret":"Jwt 密钥","Leave blank for no change":"留空表示不修改","Light":"浅色","Load Averages:":"系统负载:","Location":"Location","Locations":"Locations","Login":"登录","Login successful":"登录成功","Logout successful":"登出成功","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 HTTPChallengePort (默认: 9180)","Manage Configs":"配置管理","Manage Sites":"网站管理","Manage Users":"用户管理","Memory":"内存","Memory and Storage":"内存与存储","Modify":"修改","Modify Config":"修改配置文件","Multi-line Directive":"单行指令","Name":"名称","Network":"网络","Network Statistics":"流量统计","Network Total Receive":"下载流量","Network Total Send":"上传流量","Next":"下一步","Nginx Access Log Path":"Nginx 访问日志路径","Nginx Error Log Path":"Nginx 错误日志路径","Nginx Log":"Nginx 日志","No":"取消","Not Found":"找不到页面","Not Valid Before: %{date}":"此前无效: %{date}","Note":"注意","Obtaining certificate":"正在获取证书","OK":"确定","OS:":"OS:","Params":"参数","Password":"密码","Password (*)":"密码 (*)","Path":"路径","Please input your E-mail!":"请输入您的邮箱!","Please input your password!":"请输入您的密码!","Please input your username!":"请输入您的用户名!","Preference":"偏好设置","Preparing lego configurations":"正在准备 Lego 的配置","Prohibit changing root password in demo":"禁止在演示模式下修改 root 账户的密码","Prohibit deleting the default user":"禁止删除默认用户","Project Team":"项目团队","Reads":"读","Receive":"下载","Registering user":"正在注册用户","Reloading nginx":"正在重载 Nginx","Reset":"重置","Run Mode":"运行模式","Save":"保存","Save Directive":"保存指令","Save error %{msg}":"保存错误 %{msg}","Save successfully":"保存成功","Save Successfully":"保存成功","Saved successfully":"保存成功","Selector":"选择器","Send":"上传","Server error":"服务器错误","Server Info":"服务器信息","server_name not found in directives":"未在指令集合中找到 server_name","server_name parameter is required":"必须为 server_name 指令指明参数","Single Directive":"单行指令","Site Logs":"站点列表","Sites List":"站点列表","SSL Certificate Key Path":"SSL证书密钥路径","SSL Certificate Path":"SSL证书路径","SSL Certification Content":"SSL证书内容","SSL Certification Key Content":"SSL证书密钥内容","Status":"状态","Storage":"存储","Subject Name: %{name}":"主体名称: %{name}","Swap":"Swap","Table":"列表","Terminal":"终端","Terminal Start Command":"终端启动命令","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。","The filename cannot contain the following characters: %{c}":"文件名不能包含以下字符: %{c}","The server_name in the current configuration must be the domain name you need to get the certificate.":"当前配置中的 server_name 必须为需要申请证书的域名。","The username or password is incorrect":"用户名或密码错误","Theme":"主题","Type":"类型","Updated at":"修改时间","Updated successfully":"更新成功","Uptime:":"运行时间:","Username":"用户名","Username (*)":"用户名 (*)","Using HTTP01 challenge provider":"使用 HTTP01 challenge provider","View":"查看","Warning":"警告","Writes":"写","Writing certificate private key to disk":"正在将证书私钥写入磁盘","Writing certificate to disk":"正在将证书写入磁盘","Yes":"是的","License":{"Project":"开源许可"}},"en":{"About":"About","Action":"Action","Add Directive Below":"Add Directive Below","Add Location":"Add Location","Add Site":"Add Site","Advance Mode":"Advance Mode","Are you sure you want to remove this directive?":"Are you sure you want to remove this directive?","Auto-renewal disabled for %{name}":"Auto-renewal disabled for %{name}","Auto-renewal enabled for %{name}":"Auto-renewal enabled for %{name}","Back":"Back","Base information":"Base information","Basic Mode":"Basic Mode","Build with":"Build with","Cancel":"Cancel","Certificate has expired":"Certificate has expired","Certificate is valid":"Certificate is valid","Certificate Status":"Certificate Status","Comments":"Comments","Configuration Name":"Configuration Name","Configurations":"Configurations","Configure SSL":"Configure SSL","Content":"Content","CPU Status":"CPU Status","CPU:":"CPU:","Create Another":"Create Another","Created at":"Created at","Dashboard":"Dashboard","Database (Optional, default: database)":"Database (Optional, default: database)","Development Mode":"Development Mode","Directive":"Directive","Directives":"Directives","Disable auto-renewal failed for %{name}":"Disable auto-renewal failed for %{name}","Disabled":"Disabled","Disabled successfully":"Disabled successfully","Disk IO":"Disk IO","Domain Config Created Successfully":"Domain Config Created Successfully","Edit %{n}":"Edit %{n}","Edit Configuration":"Edit Configuration","Edit Site":"Edit Site","Email (*)":"Email (*)","Enable auto-renewal failed for %{name}":"Enable auto-renewal failed for %{name}","Enable failed":"Enable failed","Enable TLS":"Enable TLS","Enabled":"Enabled","Enabled successfully":"Enabled successfully","Encrypt website with Let's Encrypt":"Encrypt website with Let's Encrypt","Expiration Date: %{date}":"Expiration Date: %{date}","Failed to disable %{msg}":"Failed to disable %{msg}","Failed to enable %{msg}":"Failed to enable %{msg}","File Not Found":"File Not Found","Finished":"Finished","Getting the certificate, please wait...":"Getting the certificate, please wait...","Home":"Home","Install":"Install","Intermediate Certification Authorities: %{issuer}":"Intermediate Certification Authorities: %{issuer}","Leave blank for no change":"Leave blank for no change","Load Averages:":"Load Averages:","Location":"Location","Locations":"Locations","Login":"Login","Login successful":"Login successful","Logout successful":"Logout successful","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.","Manage Configs":"Manage Configs","Manage Sites":"Manage Sites","Manage Users":"Manage Users","Memory":"Memory","Memory and Storage":"Memory and Storage","Modify Config":"Modify Config","Name":"Name","Network":"Network","Network Statistics":"Network Statistics","Network Total Receive":"Network Total Receive","Network Total Send":"Network Total Send","Next":"Next","No":"No","Not Found":"Not Found","Not Valid Before: %{date}":"Not Valid Before: %{date}","OS:":"OS:","Params":"Params","Password":"Password","Password (*)":"Password (*)","Path":"Path","Please input your E-mail!":"Please input your E-mail!","Please input your password!":"Please input your password!","Please input your username!":"Please input your username!","Project Team":"Project Team","Reads":"Reads","Receive":"Receive","Save":"Save","Save Directive":"Save Directive","Save error %{msg}":"Save error %{msg}","Saved successfully":"Saved successfully","Send":"Send","Server error":"Server error","Server Info":"Server Info","server_name not found in directives":"server_name not found in directives","server_name parameter is required":"server_name parameter is required","Single Directive":"Single Directive","Sites List":"Sites List","Status":"Status","Storage":"Storage","Subject Name: %{name}":"Subject Name: %{name}","Swap":"Swap","Terminal":"Terminal","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.","The filename cannot contain the following characters: %{c}":"The filename cannot contain the following characters: %{c}","Updated at":"Updated at","Uptime:":"Uptime:","Username":"Username","Username (*)":"Username (*)","Warning":"Warning","Writes":"Writes","Yes":"Yes","License":{"Project":"License"}},"zh_TW":{"About":"關於","Access Logs":"訪問日誌","Action":"操作","Add":"新增","Add Directive Below":"在下面新增指令","Add Location":"新增 Location","Add Site":"新增站點","Advance Mode":"高階模式","Are you sure you want to delete?":"你確定你要刪除?","Are you sure you want to remove this directive?":"您確定要刪除這條指令?","Are you sure you want to remove this location?":"您確定要刪除此 Location 嗎?","Auto":"自動","Auto Refresh":"自動刷新","Auto-renewal disabled for %{name}":"已關閉 %{name} 自動續簽","Auto-renewal enabled for %{name}":"已啟用 %{name} 自動續簽","Back":"返回","Back Home":"回到首頁","Base information":"基本訊息","Basic Mode":"基本模式","Batch Modify":"批量修改","Build with":"構建基於","Cancel":"取消","Certificate has expired":"此憑證已過期","Certificate is valid":"此憑證有效","Certificate Status":"憑證狀態","Comments":"註釋","Configuration Name":"配置名稱","Configurations":"配置","Configure SSL":"配置 SSL","Content":"內容","CPU Status":"中央處理器狀態","CPU:":"中央處理器:","Create Another":"再創建一個","Created at":"建立時間","Creating client facilitates communication with the CA server":"創建客戶端方便與CA服務器通信","Dark":"深色","Dashboard":"儀表盤","Database (Optional, default: database)":"資料庫 (可選,預設: database)","Delete":"刪除","Delete ID: %{id}":"刪除 ID: %{id}","Delete site: %{site_name}":"刪除站點:%{site_name}","Development Mode":"開發模式","Directive":"指令","Directives":"指令","Disable auto-renewal failed for %{name}":"關閉 %{name} 自動續簽失敗","Disabled":"禁用","Disabled successfully":"禁用成功","Disk IO":"磁碟 IO","Domain Config Created Successfully":"域名配置文件創建成功","Edit %{n}":"編輯 %{n}","Edit Configuration":"編輯配置","Edit Site":"編輯站點","Email (*)":"郵箱 (*)","Enable auto-renewal failed for %{name}":"啟用 %{name} 自動續簽失敗","Enable failed":"啟用失敗","Enable TLS":"啟用 TLS","Enabled":"啟用","Enabled successfully":"啟用成功","Encrypt website with Let's Encrypt":"用 Let's Encrypt 對網站進行加密","Error Logs":"錯誤日志","Expiration Date: %{date}":"過期時間: %{date}","Export":"導出","Failed to disable %{msg}":"禁用失敗 %{msg}","Failed to enable %{msg}":"啟用失敗 %{msg}","Failed to get certificate information":"獲取證書信息失敗","File Not Found":"未找到檔案","Filter":"篩選","Finished":"完成","Generate":"生成","Generating private key for registering account":"生成註冊賬號私鑰","Getting the certificate, please wait...":"正在獲取憑證,請稍等...","Home":"首頁","Install":"安裝","Install successfully":"安裝成功","Intermediate Certification Authorities: %{issuer}":"中級憑證頒發機構: %{issuer}","Issued certificate successfully":"頒發證書成功","Leave blank for no change":"留空表示不修改","Light":"淺色","Load Averages:":"系統負載:","Location":"Location","Locations":"Locations","Login":"登入","Login successful":"登入成功","Logout successful":"登出成功","Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort (default: 9180) before getting the certificate.":"在獲取證書前,請確保配置檔案中已將 .well-known 目錄反向代理到 HTTPChallengePort (預設: 9180)","Manage Configs":"配置管理","Manage Sites":"網站管理","Manage Users":"使用者管理","Memory":"記憶體","Memory and Storage":"記憶體和存儲","Modify":"修改","Modify Config":"修改配置","Name":"名稱","Network":"網路","Network Statistics":"網路統計","Network Total Receive":"下載流量","Network Total Send":"上傳流量","Next":"下一步","Nginx Log":"Nginx 日誌","No":"取消","Not Found":"找不到頁面","Not Valid Before: %{date}":"此前無效: %{date}","Obtaining certificate":"正在獲取證書,請稍等...","OK":"確定","OS:":"作業系統:","Params":"參數","Password":"密碼","Password (*)":"密碼 (*)","Path":"路徑","Please input your E-mail!":"請輸入您的郵箱!","Please input your password!":"請輸入您的密碼!","Please input your username!":"請輸入您的使用者名稱!","Preference":"設定","Preparing lego configurations":"準備 Lego 配置","Prohibit changing root password in demo":"禁止在demo中修改root密碼","Prohibit deleting the default user":"禁止刪除默認用戶","Project Team":"專案團隊","Reads":"讀","Receive":"下載","Registering user":"註冊用戶","Reloading nginx":"重载 Nginx","Reset":"重設","Save":"儲存","Save Directive":"儲存指令","Save error %{msg}":"儲存錯誤 %{msg}","Save successfully":"保存成功","Save Successfully":"保存成功","Saved successfully":"儲存成功","Selector":"選擇器","Send":"上傳","Server error":"伺服器錯誤","Server Info":"伺服器資訊","server_name not found in directives":"未在指令集合中找到 server_name","server_name parameter is required":"必須為 server_name 指令指明參數","Single Directive":"單行指令","Site Logs":"網站日誌","Sites List":"站點列表","Status":"狀態","Storage":"儲存","Subject Name: %{name}":"主體名稱: %{name}","Swap":"交換空間","Table":"表格","Terminal":"終端","The certificate for the domain will be checked every hour, and will be renewed if it has been more than 1 month since it was last issued.":"系統將會每小時檢測一次該域名證書,若距離上次簽發已超過1個月,則將自動續簽。
如果您之前沒有證書,請先點選「從 Let's Encrypt 獲取證書」。","The filename cannot contain the following characters: %{c}":"檔名不能包含以下字元: %{c}","The username or password is incorrect":"用戶名或密碼不正確","Theme":"外觀樣式","Updated at":"修改時間","Updated successfully":"已成功更新","Uptime:":"執行時間:","Username":"使用者名稱","Username (*)":"使用者名稱 (*)","Using HTTP01 challenge provider":"使用 HTTP01 挑戰提供者","Warning":"警告","Writes":"寫","Writing certificate private key to disk":"將證書私鑰寫入磁盤","Writing certificate to disk":"將證書寫入磁盤","Yes":"是的","License":{"Project":"開源軟體授權條款"}}} \ No newline at end of file diff --git a/frontend/src/language/zh_CN/app.mo b/frontend/src/language/zh_CN/app.mo index 18dccbb79b75e82616fc6345027d8930c664f888..b158d7bc2c6cda7951236e4f1a23c92d184f7f33 100644 GIT binary patch delta 4197 zcmZA3d6dpo9LMoHW?@8Q#xnMqEYDc7G{}&BPxf6H8OCnxGEDu5#$I+Z*6bn6Gxqfl zBvNrGBpuF?qnsoiDWv!3dA?4LdwibPz4!O~-QT_U_j{gkzVpT|-nE#pMUHZW6eoEi zoC^tY?(s|NrQ~xi970fCIgwLbehkH;m>)}G9!$hsSl`+$FrId2tb*gPGHyV|@!Ul! zVRT%@NW6|3=vS!isPjGK6gLBN<1*Cs>#e=ZJdC>T6lwuyF^2oQ z3shq1xP=AqDdxojF*?DyQhaDdHBdLIXZ>yQW!fpI^G9M%^sIjxYC?;#4z5An_!?>= zH!+g?yI-jI@J~CT82hOkmBJ!e4Yl>Ht-m{J>j$HDAPse+@tA;9P!ryQ1u+{nvD2st zoX1jl89fc~m(C2!Zfv&)lnBTMy;SFYULe~IlA8FXgfX)^)k&xt^BARzlB=JBh>ie zg@O~#jojPC;A@yri2aYF(wz>?JRP;=Q&DgIO4P*Gp(f-<4SdLspF};XuaMWq{fM*i zF6z1rmaCU>mbnzQ!1bsd-|AV%QPkF+M9uI5YUa05Tm2jAf(OW=TqOIeb{y)wL{xuG z)b*`V6HUP!IMmw1Q435*UFR*Z6PBW0sw~t%t57rDjavC3)JjgEE zYA4HM39OEKG#yay$OMeS707s=+eSrOeE_x6W2h}Xg*x%F9lwp5$X(=K?jdTW(M5w3 z@u6lV4k6Pgq)DGoh z`I>kXYUg56<5WT|ED<$+67pKOhByPeVQqc?Z%|3a68!#_#VM!@H=_pHj=EtsYQ;xU zH@tuv_$q3mH&HM1AE@hM*bbc+i<)R0CZG?wrE7y;;D>}tX*$wSKeh8Q2Y&;yQ5Wtl z8N9&}RQrs19<}1js7G}dHIb)g9%iFQRRlF|B9_5UsBzNcc>bzPqC*!>GZ*6PwAY|6 zyk!1^I=^^)@chzdRkNb?lq;N6Wg1~s1*${$DszEY{%E4 z2HIimy{MP!xV7(~-ig0a=SA^i>8HDpSpoG<)I*MYt}7L7S#q$$rI}-`KLa(uY}7iKnL&(^K0wB zXx=dIq9*hhwWSfhpmC^il2GF`McuF!YJokie-wHVbfi-W#Yw1%OhxrCF;}8?XuY*} zpl-O={1&zKw^26^=Y>!^2CHFZ)cGl>;}gy42|Rz@co7{D_z7wPt4+W4pF~}F7PW#a zs1^Ngx^lt(e5i4JsPikCwNdX-b8Gi72bN?1wS{Bp(1jjq;7oI|ow&jDo5xV+pEWO_ zCiVk{;XUhrU_L=DEUdh9BQO@3yPNJ&X+~uSYK#6t4VFJ%%&Vl!*E z!+6@s7+8pziQ3^gsBg(U)T8m+aqk-{n#p&_B;CIlf*Z&J@*z=4BK%zml*W8&5dE^% zBN~`_2a0}F{8ktGv3XYBr!t4=kJwaFN8kVFOB))8NfqKFyNHUmRAms+-}F?{iR>i$ zJ28Q%yiGm`)OeRr3(B(g$M_zZOWq>$$XMN9+o>{)=n<&23gX7#KGK~`A-&0PqQB$s zkaVIln&{_xIaxxQlAc8GL~D{kR8mMYGKs7r6}A4sWEKf014ukkSwZydR1O6Rd@kg( zCE-a0{>P)v9{QkcAsqrW{@090NF%b0nmwyY+(h!&&rE-6LUlF!LXGL-ZuGsr+Pn@~JAIaqP~u?fjfCX&y{IHJ;z zY$uh;L87uTi0g&?r`Qc4MaU?kqQ9ali%D}*m*gf}iAr^{LsM=?Wepig4iJ@3gScsC z7fi7Fi`1s0EXlS5eP1}C678jACdnlF9au+H0>A&NBocj}Tae8}r4MNssQv#DO|=`@ zL|!FtlJR5@sY#xd`Bc(KXX_}9aaM1O^~nfQLVaEJ@m$$Uy$o68KN0225k0U^+JMyf z#;K#m4C+6qZ=W%#{@c-gBmDltGeZ}2D4gQ2RlI6gcvkk$3-|l`#2*Xy5B4R6E-2$` K;a^+6O2~inwSN-; delta 4094 zcmYk<3v|wP9LMpWU0t%dEL)*HV;dIJOv`FfvfA9DP~SHe{eJ(;@Am&a&uY_%qr(GVw~DB8 z9D7MSaw*cezpQFsEw@f5bk@9`SEh>bD2g;#HZKI-kUJNCwO zoQbp(aIaE`;KT-Of;Fgyg4i1mU=m(NA11Z*?(d7b{~qL$8;VVF0_yoftNYCbsD75C zCQyZ~=-;iO5YLHi7>9?jIX0kX@)N3qbJz+a_=v%H)P1QKjXmvr4r(9+Fb7AVI;=zu zU=?cMYcZAnU5(xF396&xcpaWWEqNI0tMf6aB~L^(&=J*9H|&JHPy-&1*WxtPzyhcN zlwb!eM?JqC1N7nc*olwLFHsGj!c_bfHPbkjM-6sBtyCHxYOoK6mL3zR7os{`X!WJ2 z72b#`xDT}w-^Q{2TFM_ep$Gm#&EPU>=8c&KeY-fbGwON{Y7^z6W?p31*Pv!ri|XJ# z)PVORO}ayvfeo05F>P3XjXb@Lx8&KV-F`o6U?Wi-PDM35+pf<=y^>;NTeu2bf*VlJ zWiVZB!aK}Cs0ofjt$2aeivkq1v~y7-EJKa_HPp!0qaN6T4BG9p`sb+oez5bupq>w7 z{WZ{d48tU=C!_XMI?lj6yB^p{L7VDbR0n%dBmERL^Dj{|If?4C?rbX4(z8 z#q~vXI2tuTKk5|(P_L%keBIoETG98hvA+MuDd@p(P@C>M)Chk^4d`FglEyMk&G0(Z z3MHckej{q-GEwd1qxR5X)CvwmwuKvmWmtr_;=h=p?|(MGyLw<8s)0$Uj;5n#`UI+@ zMW_ZVPy<|z+Qo08o~uXQ_YrDBhKER$Zf4?AKq2K3XKM`#yWSkNa@V6)Bn9<+8tVBB)VuGEn!r$Bz`LP<6S{G#`6%jvIaZ&K zYIu>=t56NBLEX0%^~16owO4*dwRhg?moSBT6tmO$uBg40sr6@nxqfzG9IC;|R)5^| zo5jdKS8DamsQb60I^JjJ>yg!WM^KykEb6|CW;EYPO(+m&g+%086a5vb66jTE@qXv-g-QY%`HqjW= z0G~(g<_)Ot_W@LcN6oKL&wqpbbHDPTcixglG~;B{z`J9VzW=!t^b!)Bq|vvHmJl+l4yRgZoi4_z*RtQ|2Fb zKCH9XPy*`yM6)Yu4`o|@kU0vqf>Tffn2l=psm`pw3Z-`AO0(MBfqG!S`2lKRA7KQZ zw)1Dq-%u0!6K7$QF5b7sk6M{^sP^`l2Llu|gTv-A)Mh-5P4IWC|BXKCP13vu(##Ch z()L1qJ91F3XsliLBa7yWkukX%Y=rBHj=+7lpeP$ z`q3>XLx}#UW)tmz$%G|y+sKt;h7~H2_wIU-+sNzW6{4djxsmiD`u$u+mJ=NnWP={< zNP)kpp%(<9|F6*^ZzcLql9$N{qGL6AjO-z!$kRlB>U8Y&aKrFUl1p~kxoW(ZyhElD z{xpY*E!|Dz4l;qXC0$7w(eWl3OYT#JV~0m*n-^1_LZ*`Eh`viYW|11QM3t+K zfmfAPj3e0#_;^4yJ38ZhE4Rc|R=&bI3MIrJ+CBM{W|ADD<9;%d^db7@Z6wc=-ef6> zCpyB&8)P17Lv#em+oT0~io8lnNeoFQgUA+=Mw*f*v@dR_kWOwU3&~yNVKSWDO|Cww zsQB!}N_>R8LCertificate Status + + +import {useGettext} from 'vue3-gettext' +import {ref} from 'vue' + +const {$gettext} = useGettext() + +const props = defineProps(['directivesMap']) + +const visible = ref(false) + +function open() { + visible.value = true +} + + + + + diff --git a/frontend/src/views/domain/cert/IssueCert.vue b/frontend/src/views/domain/cert/IssueCert.vue index 503449f3..285ba15b 100644 --- a/frontend/src/views/domain/cert/IssueCert.vue +++ b/frontend/src/views/domain/cert/IssueCert.vue @@ -4,6 +4,7 @@ import {computed, h, nextTick, onMounted, ref, VNode, watch} from 'vue' import {message} from 'ant-design-vue' import domain from '@/api/domain' import websocket from '@/lib/websocket' +import Template from '@/views/template/Template.vue' const {$gettext, interpolate} = useGettext() @@ -56,8 +57,6 @@ function job() { function callback(ssl_certificate: string, ssl_certificate_key: string) { props.directivesMap['ssl_certificate'][0]['params'] = ssl_certificate props.directivesMap['ssl_certificate_key'][0]['params'] = ssl_certificate_key - - emit('callback') } function change_auto_cert(r: boolean) { @@ -178,7 +177,7 @@ const modalClosable = ref(false) -
+
-

- Note: The server_name in the current configuration must be the domain name - you need to get the certificate. -

-

- The certificate for the domain will be checked every hour, - and will be renewed if it has been more than 1 month since it was last issued. -

-

- Make sure you have configured a reverse proxy for .well-known - directory to HTTPChallengePort (default: 9180) before getting the certificate. -

+ + +
@@ -231,6 +234,10 @@ const modalClosable = ref(false)