From 4d481a8f31fa18b6e901b0650429b24782eccbbc Mon Sep 17 00:00:00 2001 From: Yuki Guo Date: Mon, 12 Oct 2026 10:07:58 +0800 Subject: [PATCH] refactor: refactor website ssl delete text (#14024) --- frontend/src/lang/modules/en.ts | 3 +++ frontend/src/lang/modules/es-es.ts | 3 +++ frontend/src/lang/modules/fa.ts | 2 ++ frontend/src/lang/modules/ja.ts | 2 ++ frontend/src/lang/modules/ko.ts | 2 ++ frontend/src/lang/modules/lo.ts | 2 ++ frontend/src/lang/modules/ms.ts | 2 ++ frontend/src/lang/modules/pt-br.ts | 3 +++ frontend/src/lang/modules/ru.ts | 3 +++ frontend/src/lang/modules/tr.ts | 3 +++ frontend/src/lang/modules/zh-Hant.ts | 2 ++ frontend/src/lang/modules/zh.ts | 2 ++ frontend/src/views/website/ssl/index.vue | 26 ++++++++++++++++++------ 13 files changed, 49 insertions(+), 6 deletions(-) diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 5ff9b1b96..550bf9894 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -4180,6 +4180,9 @@ const message = { 'Enabling this can avoid certificate leakage, setting a default website will invalidate this setting', }, ssl: { + deleteConfirm: + 'The following certificates will be deleted. ACME certificates will be automatically revoked. Continue?', + deleteAndRevoke: 'Delete and revoke', create: 'Request', provider: 'Type', manualCreate: 'Created manually', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 76f70aaab..f3dd9c2f0 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -4231,6 +4231,9 @@ const message = { 'Habilitar esto puede evitar la fuga de certificados, establecer un sitio web predeterminado invalidará esta configuración', }, ssl: { + deleteConfirm: + 'Se eliminarán los siguientes certificados. Los certificados ACME se revocarán automáticamente. ¿Desea continuar?', + deleteAndRevoke: 'Eliminar y revocar', create: 'Solicitar', provider: 'Tipo', manualCreate: 'Creado manualmente', diff --git a/frontend/src/lang/modules/fa.ts b/frontend/src/lang/modules/fa.ts index 88250e494..08fe4ed59 100644 --- a/frontend/src/lang/modules/fa.ts +++ b/frontend/src/lang/modules/fa.ts @@ -4146,6 +4146,8 @@ const message = { 'فعال‌سازی این گزینه می‌تواند از نشت گواهی جلوگیری کند، تنظیم یک وب‌سایت پیش‌فرض این تنظیم را بی‌اثر می‌کند', }, ssl: { + deleteConfirm: 'گواهی‌های زیر حذف خواهند شد. گواهی‌های ACME به‌طور خودکار باطل خواهند شد. آیا ادامه می‌دهید؟', + deleteAndRevoke: 'حذف و ابطال', create: 'درخواست', provider: 'نوع', manualCreate: 'ایجاد دستی', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index d9e5371f1..c62b15d48 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -4168,6 +4168,8 @@ const message = { '有効にすると証明書の漏洩を防げますが、デフォルト Web サイトを設定するとこの設定は無効になります', }, ssl: { + deleteConfirm: '以下の証明書を削除します。ACME 証明書は自動的に失効されます。続行しますか?', + deleteAndRevoke: '削除して失効', create: 'リクエスト', provider: 'タイプ', manualCreate: '手動で作成されます', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index e401cd5b0..8176531f5 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -4091,6 +4091,8 @@ const message = { '활성화하면 인증서 누출을 방지할 수 있지만, 기본 웹사이트를 설정하면 이 설정이 무효화됩니다', }, ssl: { + deleteConfirm: '다음 인증서를 삭제합니다. ACME 인증서는 자동으로 폐기됩니다. 계속하시겠습니까?', + deleteAndRevoke: '삭제 및 폐기', create: '요청', provider: '유형', manualCreate: '수동 생성됨', diff --git a/frontend/src/lang/modules/lo.ts b/frontend/src/lang/modules/lo.ts index 7372f0a12..6b4223ad6 100644 --- a/frontend/src/lang/modules/lo.ts +++ b/frontend/src/lang/modules/lo.ts @@ -4063,6 +4063,8 @@ const message = { 'ການເປີດໃຊ້ສິ່ງນີ້ສາມາດຫຼີກລ່ຽງການຮົ່ວໄຫຼຂອງໃບຢັ້ງຢືນ, ແຕ່ການຕັ້ງເວັບໄຊເລີ່ມຕົ້ນຈະເຮັດໃຫ້ການຕັ້ງຄ່ານີ້ບໍ່ມີຜົນ', }, ssl: { + deleteConfirm: 'ຈະລຶບໃບຢັ້ງຢືນຕໍ່ໄປນີ້. ໃບຢັ້ງຢືນ ACME ຈະຖືກຖອນໂດຍອັດຕະໂນມັດ. ຕ້ອງການສືບຕໍ່ບໍ?', + deleteAndRevoke: 'ລຶບ ແລະ ຖອນ', create: 'ຮ້ອງຂໍ', provider: 'ປະເພດ', manualCreate: 'ສ້າງດ້ວຍຕົນເອງ', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index b5004467a..446d8d5f3 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -4245,6 +4245,8 @@ const message = { 'Mengaktifkan ini boleh mengelakkan kebocoran sijil, menetapkan laman web lalai akan membatalkan tetapan ini', }, ssl: { + deleteConfirm: 'Sijil berikut akan dipadamkan. Sijil ACME akan dibatalkan secara automatik. Teruskan?', + deleteAndRevoke: 'Padam dan batalkan', create: 'Permintaan', provider: 'Jenis', manualCreate: 'Dicipta secara manual', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 3c555a419..81378baee 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -4264,6 +4264,9 @@ const message = { 'Ativar isso pode evitar vazamento de certificados, definir um site padrão invalidará esta configuração', }, ssl: { + deleteConfirm: + 'Os certificados a seguir serão excluídos. Os certificados ACME serão revogados automaticamente. Continuar?', + deleteAndRevoke: 'Excluir e revogar', create: 'Solicitar', provider: 'Tipo', manualCreate: 'Criado manualmente', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 932ed94d5..e991afb08 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -4231,6 +4231,9 @@ const message = { 'Включение этого может предотвратить утечку сертификатов, установка веб-сайта по умолчанию сделает эту настройку недействительной', }, ssl: { + deleteConfirm: + 'Следующие сертификаты будут удалены. Сертификаты ACME будут автоматически отозваны. Продолжить?', + deleteAndRevoke: 'Удалить и отозвать', create: 'Запросить', provider: 'Тип', manualCreate: 'Создан вручную', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 28447f928..dcc6ae4c3 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -4249,6 +4249,9 @@ const message = { 'Etkinleştirilmesi sertifika sızıntısını önleyebilir, varsayılan bir web sitesi ayarlamak bu ayarı geçersiz kılar', }, ssl: { + deleteConfirm: + 'Aşağıdaki sertifikalar silinecek. ACME sertifikaları otomatik olarak iptal edilecek. Devam edilsin mi?', + deleteAndRevoke: 'Sil ve iptal et', create: 'İstek', provider: 'Tür', manualCreate: 'Manuel olarak oluşturuldu', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 58ce851dd..0bbe88ae8 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -3902,6 +3902,8 @@ const message = { sslRejectHandshakeHelper: '開啟之後可以避免憑證洩露,設置預設網站會讓此設置失效', }, ssl: { + deleteConfirm: '將對以下憑證進行 刪除 操作,ACME 類型憑證會被自動撤銷,是否繼續?', + deleteAndRevoke: '刪除並撤銷', create: '申請憑證', provider: '類型', manualCreate: '手動建立', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 716290730..fc44ba8ce 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -3947,6 +3947,8 @@ const message = { sslRejectHandshakeHelper: '开启之后可以避免证书泄露,设置默认网站会让此设置失效', }, ssl: { + deleteConfirm: '将对以下证书进行 删除 操作,ACME类型证书会被自动吊销,是否继续?', + deleteAndRevoke: '删除并吊销', create: '申请证书', provider: '类型', manualCreate: '手动创建', diff --git a/frontend/src/views/website/ssl/index.vue b/frontend/src/views/website/ssl/index.vue index 44eda5ba7..d44ccd81e 100644 --- a/frontend/src/views/website/ssl/index.vue +++ b/frontend/src/views/website/ssl/index.vue @@ -307,6 +307,8 @@ const routerButton = [ }, ]; +const shouldRevokeSSL = (row: Website.SSLDTO) => ['dnsAccount', 'dnsManual', 'http'].includes(row.provider); + const buttons = [ { label: i18n.global.t('ssl.detail'), @@ -382,6 +384,15 @@ const buttons = [ click: function (row: Website.SSLDTO) { deletessl(row); }, + show: (row: Website.SSLDTO) => !shouldRevokeSSL(row), + }, + { + label: i18n.global.t('ssl.deleteAndRevoke'), + permission: true, + click: function (row: Website.SSLDTO) { + deletessl(row); + }, + show: shouldRevokeSSL, }, ]; @@ -535,9 +546,13 @@ const applySSL = (row: Website.SSLDTO) => { }; const deletessl = async (row: any) => { + const isBatch = row == null; + const deleteLabel = i18n.global.t( + !isBatch && shouldRevokeSSL(row) ? 'ssl.deleteAndRevoke' : 'commons.button.delete', + ); let names = []; let params = {}; - if (row == null) { + if (isBatch) { names = selects.value.map((item: Website.SSLDTO) => item.primaryDomain); params = { ids: selects.value.map((item: Website.SSLDTO) => item.id) }; } else { @@ -546,12 +561,11 @@ const deletessl = async (row: any) => { } opRef.value.acceptParams({ - title: i18n.global.t('commons.button.delete'), + title: deleteLabel, names: names, - msg: i18n.global.t('commons.msg.operatorHelper', [ - i18n.global.t('website.ssl'), - i18n.global.t('commons.button.delete'), - ]), + msg: isBatch + ? i18n.global.t('ssl.deleteConfirm') + : i18n.global.t('commons.msg.operatorHelper', [i18n.global.t('website.ssl'), deleteLabel]), api: deleteSSL, params: params, });