浏览代码

chore: prepare v2.1.3

Jacky 1 月之前
父节点
当前提交
6770993b10

+ 1 - 1
app/package.json

@@ -1,7 +1,7 @@
 {
 {
   "name": "nginx-ui-app-next",
   "name": "nginx-ui-app-next",
   "type": "module",
   "type": "module",
-  "version": "2.1.2",
+  "version": "2.1.3",
   "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912",
   "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912",
   "scripts": {
   "scripts": {
     "dev": "vite --host",
     "dev": "vite --host",

+ 16 - 0
app/src/constants/errors/cert.ts

@@ -6,4 +6,20 @@ export default {
   50005: () => $gettext('Payload resource is nil'),
   50005: () => $gettext('Payload resource is nil'),
   50006: () => $gettext('Path: {0} is not under the nginx conf dir: {1}'),
   50006: () => $gettext('Path: {0} is not under the nginx conf dir: {1}'),
   50007: () => $gettext('Certificate path is empty'),
   50007: () => $gettext('Certificate path is empty'),
+  50008: () => $gettext('Get acme user error: {0}'),
+  50009: () => $gettext('New transport error: {0}'),
+  50010: () => $gettext('New lego client error: {0}'),
+  50011: () => $gettext('Get dns credential error: {0}'),
+  50012: () => $gettext('Provider not found: {0}'),
+  50013: () => $gettext('Set env error: {0}'),
+  50014: () => $gettext('New dns challenge provider error: {0}'),
+  50015: () => $gettext('Environment configuration is empty'),
+  50016: () => $gettext('Challenge error: {0}'),
+  50017: () => $gettext('Set env flag to disable lego CNAME support error: {0}'),
+  50018: () => $gettext('Renew cert error: {0}'),
+  50019: () => $gettext('Make certificate dir error: {0}'),
+  50020: () => $gettext('Write fullchain.cer error: {0}'),
+  50021: () => $gettext('Write private.key error: {0}'),
+  50022: () => $gettext('Obtain cert error: {0}'),
+  50023: () => $gettext('Revoke cert error: {0}'),
 }
 }

+ 105 - 41
app/src/language/ar/app.po

@@ -180,7 +180,7 @@ msgstr "إضافة تكوين"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "أضف التوجيه أدناه"
 msgstr "أضف التوجيه أدناه"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "إضافة نطاق"
 msgstr "إضافة نطاق"
 
 
@@ -231,7 +231,7 @@ msgstr "الكل"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "تم استخدام جميع رموز الاسترداد"
 msgstr "تم استخدام جميع رموز الاسترداد"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -413,7 +413,7 @@ msgstr "\"AutoCert قيد التشغيل...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"إعادة التشغيل التلقائي\""
 msgstr "\"إعادة التشغيل التلقائي\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -708,7 +708,7 @@ msgstr "تم تجديد الشهادة بنجاح"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "تم إلغاء الشهادة بنجاح"
 msgstr "تم إلغاء الشهادة بنجاح"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
@@ -719,7 +719,7 @@ msgstr[3] "حالة الشهادات"
 msgstr[4] "حالة الشهادات"
 msgstr[4] "حالة الشهادات"
 msgstr[5] "حالة الشهادة"
 msgstr[5] "حالة الشهادة"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "نوع الشهادة"
 msgstr "نوع الشهادة"
 
 
@@ -732,6 +732,10 @@ msgstr "شهادات"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "قائمة الشهادات"
 msgstr "قائمة الشهادات"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "خطأ في التحدي: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "طريقة التحدي"
 msgstr "طريقة التحدي"
@@ -1209,11 +1213,11 @@ msgstr "تعبير كرون مخصص"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "دليل مخصص"
 msgstr "دليل مخصص"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "نطاقات مخصصة"
 msgstr "نطاقات مخصصة"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "شهادة النطاقات المخصصة"
 msgstr "شهادة النطاقات المخصصة"
 
 
@@ -1524,11 +1528,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "وثيقة"
 msgstr[0] "وثيقة"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "نطاق"
 msgstr "نطاق"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "قائمة النطاقات فارغة، حاول إعادة فتح Auto Cert لـ %{config}"
 msgstr "قائمة النطاقات فارغة، حاول إعادة فتح Auto Cert لـ %{config}"
 
 
@@ -1730,14 +1734,18 @@ msgstr "تشفير الموقع باستخدام Let's Encrypt"
 msgid "End"
 msgid "End"
 msgstr "النهاية"
 msgstr "النهاية"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "أدخل اسم النطاق"
 msgstr "أدخل اسم النطاق"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "أدخل نطاقك"
 msgstr "أدخل نطاقك"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "تكوين البيئة فارغ"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "تم تنظيف متغيرات البيئة"
 msgstr "تم تنظيف متغيرات البيئة"
@@ -1748,7 +1756,7 @@ msgstr "تم تنظيف متغيرات البيئة"
 msgid "Environments"
 msgid "Environments"
 msgstr "البيئات"
 msgstr "البيئات"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "خطأ"
 msgstr "خطأ"
@@ -2219,10 +2227,18 @@ msgstr "تم إنشاء رموز الاسترداد بنجاح"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "توليد مفتاح خاص لتسجيل الحساب"
 msgstr "توليد مفتاح خاص لتسجيل الحساب"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "خطأ في الحصول على مستخدم ACME: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "فشل الحصول على البيانات"
 msgstr "فشل الحصول على البيانات"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "خطأ في الحصول على بيانات اعتماد DNS: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2337,7 +2353,7 @@ msgid "Import"
 msgstr "استيراد"
 msgstr "استيراد"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "استيراد شهادة"
 msgstr "استيراد شهادة"
 
 
@@ -2485,7 +2501,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "إصدار شهادة"
 msgstr "إصدار شهادة"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "إصدار الشهادة"
 msgstr "إصدار الشهادة"
 
 
@@ -2570,8 +2586,8 @@ msgstr "اتركه فارغًا إذا كنت لا تريد التعديل"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "اتركه فارغًا إذا لم تكن بحاجة إلى ذلك."
 msgstr "اتركه فارغًا إذا لم تكن بحاجة إلى ذلك."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "تركه فارغًا لن يغير شيئًا"
 msgstr "تركه فارغًا لن يغير شيئًا"
 
 
@@ -2658,7 +2674,7 @@ msgstr "مكان"
 msgid "Locations"
 msgid "Locations"
 msgstr "أماكن"
 msgstr "أماكن"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "سجل"
 msgstr "سجل"
 
 
@@ -2722,6 +2738,10 @@ msgstr "تم تعطيل وضع الصيانة بنجاح"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "تم تمكين وضع الصيانة بنجاح"
 msgstr "تم تمكين وضع الصيانة بنجاح"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "خطأ في إنشاء مجلد الشهادة: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2871,7 +2891,7 @@ msgid "Modify"
 msgstr "تعديل"
 msgstr "تعديل"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "تعديل الشهادة"
 msgstr "تعديل الشهادة"
 
 
@@ -2906,7 +2926,7 @@ msgstr "توجيه متعدد الأسطر"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2946,10 +2966,18 @@ msgstr "إجمالي استقبال الشبكة"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "إجمالي إرسال الشبكة"
 msgstr "إجمالي إرسال الشبكة"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "خطأ في مزود تحدي DNS الجديد: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "تثبيت جديد"
 msgstr "تثبيت جديد"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "خطأ في عميل ليغو الجديد: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "اسم جديد"
 msgstr "اسم جديد"
@@ -2962,11 +2990,15 @@ msgstr "كلمة مرور جديدة"
 msgid "New Path"
 msgid "New Path"
 msgstr "مسار جديد"
 msgstr "مسار جديد"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "خطأ في النقل الجديد: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "تم إصدار نسخة جديدة"
 msgstr "تم إصدار نسخة جديدة"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3293,6 +3325,10 @@ msgstr "عدد الملفات التي تتم معالجتها بواسطة مد
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "عدد عمليات العامل"
 msgstr "عدد عمليات العامل"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "خطأ في الحصول على الشهادة: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "الحصول على شهادة"
 msgstr "الحصول على شهادة"
@@ -3548,7 +3584,7 @@ msgstr "يرجى إدخال اسم لمفتاح المرور الذي ترغب 
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "الرجاء إدخال نطاق منافذ صالح"
 msgstr "الرجاء إدخال نطاق منافذ صالح"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "الرجاء إدخال مجال واحد على الأقل"
 msgstr "الرجاء إدخال مجال واحد على الأقل"
 
 
@@ -3731,6 +3767,10 @@ msgstr "فريق المشروع"
 msgid "Provider"
 msgid "Provider"
 msgstr "مزود"
 msgstr "مزود"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "لم يتم العثور على المزود: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "وكيل"
 msgstr "وكيل"
@@ -3881,7 +3921,7 @@ msgstr "إعادة التحميل"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "إعادة تحميل nginx"
 msgstr "إعادة تحميل nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "إزالة"
 msgstr "إزالة"
@@ -3964,6 +4004,10 @@ msgstr "إعادة التسمية بنجاح"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "تمت إعادة التسمية بنجاح"
 msgstr "تمت إعادة التسمية بنجاح"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "خطأ في تجديد الشهادة: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -3977,7 +4021,7 @@ msgstr "خطأ في تجديد الشهادة"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "تجديد الشهادة بنجاح"
 msgstr "تجديد الشهادة بنجاح"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "تم التجديد بنجاح"
 msgstr "تم التجديد بنجاح"
@@ -4090,6 +4134,10 @@ msgstr "تم الاستعادة بنجاح"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "إبطال"
 msgstr "إبطال"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "خطأ في إلغاء الشهادة: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "إبطال الشهادة القديمة"
 msgstr "إبطال الشهادة القديمة"
@@ -4236,7 +4284,7 @@ msgstr "السبت"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4291,7 +4339,7 @@ msgstr "فشل حفظ الدفق %{name} إلى %{node}"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "تم حفظ الدفق %{name} في %{node} بنجاح"
 msgstr "تم حفظ الدفق %{name} في %{node} بنجاح"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "تم الحفظ بنجاح"
 msgstr "تم الحفظ بنجاح"
@@ -4399,7 +4447,7 @@ msgstr "إرسال"
 msgid "Server"
 msgid "Server"
 msgstr "الخادم"
 msgstr "الخادم"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "خطأ في الخادم"
 msgstr "خطأ في الخادم"
 
 
@@ -4427,6 +4475,14 @@ msgstr "معرف الخادم خارج النطاق"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "الجلسة غير موجودة"
 msgstr "الجلسة غير موجودة"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "خطأ في تعيين البيئة: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr "تعيين علامة البيئة لتعطيل دعم CNAME في lego خطأ: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4539,7 +4595,7 @@ msgstr "وقت الانتظار بين تكرارات محمل ذاكرة الت
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "وقت الانتظار بين تكرارات مدير الذاكرة المؤقتة"
 msgstr "وقت الانتظار بين تكرارات مدير الذاكرة المؤقتة"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "محتوى شهادة SSL"
 msgstr "محتوى شهادة SSL"
 
 
@@ -4551,15 +4607,15 @@ msgstr "يجب أن يكون ملف شهادة SSL ضمن دليل تكوين Ng
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "لم يتم العثور على ملف شهادة SSL"
 msgstr "لم يتم العثور على ملف شهادة SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "محتوى مفتاح شهادة SSL"
 msgstr "محتوى مفتاح شهادة SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "مسار مفتاح شهادة SSL"
 msgstr "مسار مفتاح شهادة SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "مسار شهادة SSL"
 msgstr "مسار شهادة SSL"
@@ -4794,7 +4850,7 @@ msgstr "مزامنة العقد"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "استراتيجية المزامنة"
 msgstr "استراتيجية المزامنة"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "مزامنة إلى"
 msgstr "مزامنة إلى"
 
 
@@ -4869,11 +4925,11 @@ msgstr ""
 "يجب أن يحتوي رقم ICP فقط على أحرف، وunicode، وأرقام، وشرطات، وشرطات طويلة، "
 "يجب أن يحتوي رقم ICP فقط على أحرف، وunicode، وأرقام، وشرطات، وشرطات طويلة، "
 "ونقطتين، ونقاط."
 "ونقطتين، ونقاط."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "الإدخال ليس شهادة SSL"
 msgstr "الإدخال ليس شهادة SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "المدخل ليس مفتاح شهادة SSL"
 msgstr "المدخل ليس مفتاح شهادة SSL"
 
 
@@ -4912,11 +4968,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "معلمة server_name مطلوبة"
 msgstr "معلمة server_name مطلوبة"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "المسار موجود، لكن الملف ليس مفتاحًا خاصًا"
 
 
@@ -4977,17 +5033,17 @@ msgstr ""
 "والعوامل الثانية. إذا لم تتمكن من العثور على هذه الرموز، فستفقد الوصول إلى "
 "والعوامل الثانية. إذا لم تتمكن من العثور على هذه الرموز، فستفقد الوصول إلى "
 "حسابك."
 "حسابك."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "هذا العنصر في الشهادة التلقائية غير صالح، يرجى إزالته."
 msgstr "هذا العنصر في الشهادة التلقائية غير صالح، يرجى إزالته."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "يتم إدارة هذه الشهادة بواسطة Nginx UI"
 msgstr "يتم إدارة هذه الشهادة بواسطة Nginx UI"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "هذا الحقل مطلوب"
 msgstr "هذا الحقل مطلوب"
 
 
@@ -5457,7 +5513,7 @@ msgstr "عند إنشاء رموز استرداد جديدة، يجب عليك 
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "ما إذا كان سيتم استخدام مسار مؤقت عند كتابة الملفات المؤقتة"
 msgstr "ما إذا كان سيتم استخدام مسار مؤقت عند كتابة الملفات المؤقتة"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "شهادة البدل"
 msgstr "شهادة البدل"
 
 
@@ -5481,6 +5537,14 @@ msgstr "العمال"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "مساحة العمل"
 msgstr "مساحة العمل"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "خطأ في كتابة fullchain.cer: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "خطأ في كتابة private.key: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 107 - 41
app/src/language/de_DE/app.po

@@ -180,7 +180,7 @@ msgstr "Konfiguration hinzufügen"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "Anweisung darunter hinzufügen"
 msgstr "Anweisung darunter hinzufügen"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "Domain hinzufügen"
 msgstr "Domain hinzufügen"
 
 
@@ -233,7 +233,7 @@ msgstr "Alle"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Alle Wiederherstellungscodes wurden verwendet"
 msgstr "Alle Wiederherstellungscodes wurden verwendet"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -419,7 +419,7 @@ msgstr "\"AutoCert wird ausgeführt...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"Automatischer Neustart\""
 msgstr "\"Automatischer Neustart\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -724,13 +724,13 @@ msgstr "Zertifikat erfolgreich erneuert"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "Zertifikat erfolgreich widerrufen"
 msgstr "Zertifikat erfolgreich widerrufen"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Zertifikatsstatus"
 msgstr[0] "Zertifikatsstatus"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "Zertifikatstyp"
 msgstr "Zertifikatstyp"
 
 
@@ -743,6 +743,10 @@ msgstr "Zertifikate"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "Zertifikatsliste"
 msgstr "Zertifikatsliste"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "Herausforderungsfehler: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "Challenge-Methode"
 msgstr "Challenge-Methode"
@@ -1226,11 +1230,11 @@ msgstr "Benutzerdefinierter Cron-Ausdruck"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "Benutzerdefiniertes Verzeichnis"
 msgstr "Benutzerdefiniertes Verzeichnis"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "Benutzerdefinierte Domains"
 msgstr "Benutzerdefinierte Domains"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "Benutzerdefinierte Domänenzertifikate"
 msgstr "Benutzerdefinierte Domänenzertifikate"
 
 
@@ -1545,11 +1549,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "Dokument"
 msgstr[0] "Dokument"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "Domain"
 msgstr "Domain"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 msgstr ""
 "Domänenliste ist leer, versuche Auto-Zertifikat für %{config} erneut zu "
 "Domänenliste ist leer, versuche Auto-Zertifikat für %{config} erneut zu "
@@ -1754,14 +1758,18 @@ msgstr "Webseite mit Let's Encrypt verschlüsseln"
 msgid "End"
 msgid "End"
 msgstr "Ende"
 msgstr "Ende"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "Domänennamen eingeben"
 msgstr "Domänennamen eingeben"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "Geben Sie Ihre Domain ein"
 msgstr "Geben Sie Ihre Domain ein"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "Die Umgebungskonfiguration ist leer"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Umgebungsvariablen gesäubert"
 msgstr "Umgebungsvariablen gesäubert"
@@ -1772,7 +1780,7 @@ msgstr "Umgebungsvariablen gesäubert"
 msgid "Environments"
 msgid "Environments"
 msgstr "Umgebungen"
 msgstr "Umgebungen"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "Fehler"
 msgstr "Fehler"
@@ -2245,10 +2253,18 @@ msgstr "Wiederherstellungscodes erfolgreich generiert"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "Generiere privaten Schlüssel zur Registrierung des Kontos"
 msgstr "Generiere privaten Schlüssel zur Registrierung des Kontos"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "Fehler beim Abrufen des ACME-Benutzers: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "Datenabruf fehlgeschlagen"
 msgstr "Datenabruf fehlgeschlagen"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "Fehler beim Abrufen der DNS-Anmeldeinformationen: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2368,7 +2384,7 @@ msgid "Import"
 msgstr "Import"
 msgstr "Import"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "Zertifikat importieren"
 msgstr "Zertifikat importieren"
 
 
@@ -2516,7 +2532,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "Zertifikat ausstellen"
 msgstr "Zertifikat ausstellen"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "Zertifikat ausstellen"
 msgstr "Zertifikat ausstellen"
 
 
@@ -2601,8 +2617,8 @@ msgstr "Leer lassen, wenn keine Änderung gewünscht ist"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "Lassen Sie dieses Feld leer, wenn Sie es nicht benötigen."
 msgstr "Lassen Sie dieses Feld leer, wenn Sie es nicht benötigen."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "Leer lassen ändert nichts"
 msgstr "Leer lassen ändert nichts"
 
 
@@ -2689,7 +2705,7 @@ msgstr "Ort"
 msgid "Locations"
 msgid "Locations"
 msgstr "Orte"
 msgstr "Orte"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "Protokoll"
 msgstr "Protokoll"
 
 
@@ -2753,6 +2769,10 @@ msgstr "Wartungsmodus erfolgreich deaktiviert"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Wartungsmodus erfolgreich aktiviert"
 msgstr "Wartungsmodus erfolgreich aktiviert"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "Fehler beim Erstellen des Zertifikatverzeichnisses: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2903,7 +2923,7 @@ msgid "Modify"
 msgstr "Ändern"
 msgstr "Ändern"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "Zertifikat ändern"
 msgstr "Zertifikat ändern"
 
 
@@ -2938,7 +2958,7 @@ msgstr "Mehrzeilige Direktive"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2978,10 +2998,18 @@ msgstr "Gesamter Netzwerkempfang"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Gesamter Netzwerkversand"
 msgstr "Gesamter Netzwerkversand"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "Fehler beim neuen DNS-Herausforderungsanbieter: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "Neue Installation"
 msgstr "Neue Installation"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "Fehler beim neuen Lego-Client: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "Neuer Name"
 msgstr "Neuer Name"
@@ -2994,11 +3022,15 @@ msgstr "Neues Passwort"
 msgid "New Path"
 msgid "New Path"
 msgstr "Neuer Pfad"
 msgstr "Neuer Pfad"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "Neuer Transportfehler: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "Neue Version veröffentlicht"
 msgstr "Neue Version veröffentlicht"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3330,6 +3362,10 @@ msgstr "Anzahl der Dateien, die vom Cache-Manager gleichzeitig verarbeitet werde
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "Anzahl der Worker-Prozesse"
 msgstr "Anzahl der Worker-Prozesse"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "Fehler beim Abrufen des Zertifikats: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "Zertifikat abrufen"
 msgstr "Zertifikat abrufen"
@@ -3587,7 +3623,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "Bitte geben Sie einen gültigen Portbereich ein"
 msgstr "Bitte geben Sie einen gültigen Portbereich ein"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "Bitte geben Sie mindestens eine Domain ein"
 msgstr "Bitte geben Sie mindestens eine Domain ein"
 
 
@@ -3783,6 +3819,10 @@ msgstr "Projektteam"
 msgid "Provider"
 msgid "Provider"
 msgstr "Anbieter"
 msgstr "Anbieter"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "Anbieter nicht gefunden: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy"
 msgstr "Proxy"
@@ -3938,7 +3978,7 @@ msgstr "Lade neu"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "Lade Nginx neu"
 msgstr "Lade Nginx neu"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "Löschen"
 msgstr "Löschen"
@@ -4021,6 +4061,10 @@ msgstr "Erfolgreich umbenannt"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "Erfolgreich umbenannt"
 msgstr "Erfolgreich umbenannt"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "Fehler beim Erneuern des Zertifikats: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -4034,7 +4078,7 @@ msgstr "Fehler bei der Zertifikatsverlängerung"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "Zertifikat erfolgreich verlängert"
 msgstr "Zertifikat erfolgreich verlängert"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "Erfolgreich erneuert"
 msgstr "Erfolgreich erneuert"
@@ -4150,6 +4194,10 @@ msgstr "Erfolgreich wiederhergestellt"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "Widerrufen"
 msgstr "Widerrufen"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "Fehler beim Widerrufen des Zertifikats: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "Altes Zertifikat widerrufen"
 msgstr "Altes Zertifikat widerrufen"
@@ -4296,7 +4344,7 @@ msgstr "Samstag"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4351,7 +4399,7 @@ msgstr "Speichern des Streams %{name} auf %{node} fehlgeschlagen"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Stream %{name} erfolgreich auf %{node} gespeichert"
 msgstr "Stream %{name} erfolgreich auf %{node} gespeichert"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Erfolgreich gespeichert"
 msgstr "Erfolgreich gespeichert"
@@ -4461,7 +4509,7 @@ msgstr "Senden"
 msgid "Server"
 msgid "Server"
 msgstr "Server"
 msgstr "Server"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "Serverfehler"
 msgstr "Serverfehler"
 
 
@@ -4489,6 +4537,16 @@ msgstr "ServerIdx außerhalb des Bereichs"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Sitzung nicht gefunden"
 msgstr "Sitzung nicht gefunden"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "Fehler beim Setzen der Umgebung: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr ""
+"Umgebungsflag zum Deaktivieren der Lego-CNAME-Unterstützung setzen Fehler: "
+"{0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4601,7 +4659,7 @@ msgstr "Wartezeit zwischen den Iterationen des Cache-Loaders"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "Wartezeit zwischen den Iterationen des Cache-Managers"
 msgstr "Wartezeit zwischen den Iterationen des Cache-Managers"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "SSL-Zertifikatsinhalt"
 msgstr "SSL-Zertifikatsinhalt"
 
 
@@ -4615,15 +4673,15 @@ msgstr ""
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "SSL-Zertifikatsdatei nicht gefunden"
 msgstr "SSL-Zertifikatsdatei nicht gefunden"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "SSL-Zertifikatsschlüsselinhalt"
 msgstr "SSL-Zertifikatsschlüsselinhalt"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "SSL-Zertifikatsschlüssel-Pfad"
 msgstr "SSL-Zertifikatsschlüssel-Pfad"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL-Zertifikatspfad"
 msgstr "SSL-Zertifikatspfad"
@@ -4865,7 +4923,7 @@ msgstr "Synchrone Knoten"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "Synchronisierungsstrategie"
 msgstr "Synchronisierungsstrategie"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Synchronisieren mit"
 msgstr "Synchronisieren mit"
 
 
@@ -4941,11 +4999,11 @@ msgstr ""
 "Die ICP-Nummer sollte nur Buchstaben, Unicode, Zahlen, Bindestriche, "
 "Die ICP-Nummer sollte nur Buchstaben, Unicode, Zahlen, Bindestriche, "
 "Doppelpunkte und Punkte enthalten."
 "Doppelpunkte und Punkte enthalten."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "Die Eingabe ist kein SSL-Zertifikat"
 msgstr "Die Eingabe ist kein SSL-Zertifikat"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "Die Eingabe ist kein SSL-Zertifikatsschlüssel"
 msgstr "Die Eingabe ist kein SSL-Zertifikatsschlüssel"
 
 
@@ -4984,11 +5042,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "Der Parameter server_name ist erforderlich"
 msgstr "Der Parameter server_name ist erforderlich"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 msgid "The path exists, but the file is not a certificate"
 msgid "The path exists, but the file is not a certificate"
 msgstr "Der Pfad existiert, aber die Datei ist kein Zertifikat"
 msgstr "Der Pfad existiert, aber die Datei ist kein Zertifikat"
 
 
-#: src/views/certificate/CertificateEditor.vue:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "Der Pfad existiert, aber die Datei ist kein privater Schlüssel"
 msgstr "Der Pfad existiert, aber die Datei ist kein privater Schlüssel"
 
 
@@ -5050,17 +5108,17 @@ msgstr ""
 "Ihr Passwort und die zweiten Faktoren verlieren. Wenn Sie diese Codes nicht "
 "Ihr Passwort und die zweiten Faktoren verlieren. Wenn Sie diese Codes nicht "
 "finden können, verlieren Sie den Zugriff auf Ihr Konto."
 "finden können, verlieren Sie den Zugriff auf Ihr Konto."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Dieses Auto-Zertifikatselement ist ungültig, bitte entferne es."
 msgstr "Dieses Auto-Zertifikatselement ist ungültig, bitte entferne es."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "Dieses Zertifikat wird von Nginx UI verwaltet"
 msgstr "Dieses Zertifikat wird von Nginx UI verwaltet"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "Dieses Feld ist erforderlich"
 msgstr "Dieses Feld ist erforderlich"
 
 
@@ -5546,7 +5604,7 @@ msgstr ""
 "Ob ein temporärer Pfad beim Schreiben temporärer Dateien verwendet werden "
 "Ob ein temporärer Pfad beim Schreiben temporärer Dateien verwendet werden "
 "soll"
 "soll"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "Wildcard-Zertifikat"
 msgstr "Wildcard-Zertifikat"
 
 
@@ -5570,6 +5628,14 @@ msgstr "Worker"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "Arbeitsplatz"
 msgstr "Arbeitsplatz"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "Fehler beim Schreiben von fullchain.cer: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "Fehler beim Schreiben von private.key: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 105 - 41
app/src/language/en/app.po

@@ -164,7 +164,7 @@ msgstr ""
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr ""
 msgstr ""
 
 
@@ -215,7 +215,7 @@ msgstr ""
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -395,7 +395,7 @@ msgstr ""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -687,14 +687,14 @@ msgstr ""
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] ""
 msgstr[0] ""
 msgstr[1] ""
 msgstr[1] ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr ""
 msgstr ""
 
 
@@ -707,6 +707,10 @@ msgstr ""
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr ""
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr ""
 msgstr ""
@@ -1147,11 +1151,11 @@ msgstr ""
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -1463,11 +1467,11 @@ msgid_plural "Documents"
 msgstr[0] ""
 msgstr[0] ""
 msgstr[1] ""
 msgstr[1] ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 msgstr ""
 
 
@@ -1667,14 +1671,18 @@ msgstr ""
 msgid "End"
 msgid "End"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr ""
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr ""
 msgstr ""
@@ -1685,7 +1693,7 @@ msgstr ""
 msgid "Environments"
 msgid "Environments"
 msgstr ""
 msgstr ""
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr ""
 msgstr ""
@@ -2156,10 +2164,18 @@ msgstr ""
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr ""
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr ""
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2270,7 +2286,7 @@ msgid "Import"
 msgstr ""
 msgstr ""
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -2414,7 +2430,7 @@ msgstr ""
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -2497,8 +2513,8 @@ msgstr ""
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr ""
 msgstr ""
 
 
@@ -2585,7 +2601,7 @@ msgstr ""
 msgid "Locations"
 msgid "Locations"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr ""
 msgstr ""
 
 
@@ -2640,6 +2656,10 @@ msgstr ""
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr ""
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2787,7 +2807,7 @@ msgid "Modify"
 msgstr ""
 msgstr ""
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -2822,7 +2842,7 @@ msgstr ""
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2862,10 +2882,18 @@ msgstr ""
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr ""
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr ""
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr ""
 msgstr ""
@@ -2878,11 +2906,15 @@ msgstr ""
 msgid "New Path"
 msgid "New Path"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3207,6 +3239,10 @@ msgstr ""
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr ""
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr ""
 msgstr ""
@@ -3455,7 +3491,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr ""
 msgstr ""
 
 
@@ -3637,6 +3673,10 @@ msgstr ""
 msgid "Provider"
 msgid "Provider"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr ""
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr ""
 msgstr ""
@@ -3785,7 +3825,7 @@ msgstr ""
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr ""
 msgstr ""
@@ -3868,6 +3908,10 @@ msgstr ""
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr ""
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -3881,7 +3925,7 @@ msgstr ""
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr ""
 msgstr ""
@@ -3992,6 +4036,10 @@ msgstr ""
 msgid "Revoke"
 msgid "Revoke"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr ""
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr ""
 msgstr ""
@@ -4136,7 +4184,7 @@ msgstr ""
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4191,7 +4239,7 @@ msgstr ""
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr ""
 msgstr ""
@@ -4299,7 +4347,7 @@ msgstr ""
 msgid "Server"
 msgid "Server"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr ""
 msgstr ""
 
 
@@ -4327,6 +4375,14 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr ""
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr ""
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4433,7 +4489,7 @@ msgstr ""
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr ""
 msgstr ""
 
 
@@ -4445,15 +4501,15 @@ msgstr ""
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr ""
 msgstr ""
@@ -4680,7 +4736,7 @@ msgstr ""
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr ""
 msgstr ""
 
 
@@ -4751,11 +4807,11 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr ""
 msgstr ""
 
 
@@ -4786,11 +4842,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 ""
 
 
@@ -4842,17 +4898,17 @@ msgid ""
 "lose access to your account."
 "lose access to your account."
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr ""
 msgstr ""
 
 
@@ -5291,7 +5347,7 @@ msgstr ""
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -5315,6 +5371,14 @@ msgstr ""
 msgid "Workspace"
 msgid "Workspace"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr ""
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 107 - 41
app/src/language/es/app.po

@@ -187,7 +187,7 @@ msgstr "Agregar configuración"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "Añadir directiva a continuación"
 msgstr "Añadir directiva a continuación"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "Agregar dominio"
 msgstr "Agregar dominio"
 
 
@@ -240,7 +240,7 @@ msgstr "Todos"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Todos los códigos de recuperación han sido utilizados"
 msgstr "Todos los códigos de recuperación han sido utilizados"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -426,7 +426,7 @@ msgstr "\"AutoCert se está ejecutando...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"Reinicio Automático\""
 msgstr "\"Reinicio Automático\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -735,14 +735,14 @@ msgstr "Certificado renovado con éxito"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "Certificado revocado con éxito"
 msgstr "Certificado revocado con éxito"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Estado del Certificado"
 msgstr[0] "Estado del Certificado"
 msgstr[1] "Estado de los Certificados"
 msgstr[1] "Estado de los Certificados"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "Tipo de certificado"
 msgstr "Tipo de certificado"
 
 
@@ -755,6 +755,10 @@ msgstr "Certificados"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "Lista de Certificados"
 msgstr "Lista de Certificados"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "Error de desafío: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "Método de desafío"
 msgstr "Método de desafío"
@@ -1235,11 +1239,11 @@ msgstr "Expresión cron personalizada"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "Directorio personalizado"
 msgstr "Directorio personalizado"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "Dominios personalizados"
 msgstr "Dominios personalizados"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "Certificado de Dominios Personalizados"
 msgstr "Certificado de Dominios Personalizados"
 
 
@@ -1554,11 +1558,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "Documento"
 msgstr[0] "Documento"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "Dominio"
 msgstr "Dominio"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 msgstr ""
 "La lista de dominios está vacía, intente reabrir la certificación "
 "La lista de dominios está vacía, intente reabrir la certificación "
@@ -1763,14 +1767,18 @@ msgstr "Encriptar sitio web con Let's Encrypt"
 msgid "End"
 msgid "End"
 msgstr "Fin"
 msgstr "Fin"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "Ingresar nombre de dominio"
 msgstr "Ingresar nombre de dominio"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "Ingrese su dominio"
 msgstr "Ingrese su dominio"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "La configuración del entorno está vacía"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Variables de entorno limpiadas"
 msgstr "Variables de entorno limpiadas"
@@ -1781,7 +1789,7 @@ msgstr "Variables de entorno limpiadas"
 msgid "Environments"
 msgid "Environments"
 msgstr "Entornos"
 msgstr "Entornos"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "Error"
 msgstr "Error"
@@ -2256,10 +2264,18 @@ msgstr "Códigos de recuperación generados con éxito"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "Generando clave privada para registrar cuenta"
 msgstr "Generando clave privada para registrar cuenta"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "Error al obtener el usuario de ACME: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "Error al obtener los datos"
 msgstr "Error al obtener los datos"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "Error al obtener las credenciales DNS: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2375,7 +2391,7 @@ msgid "Import"
 msgstr "Importar"
 msgstr "Importar"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "Importar Certificado"
 msgstr "Importar Certificado"
 
 
@@ -2523,7 +2539,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "Emitir certificado"
 msgstr "Emitir certificado"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "Emitir certificado"
 msgstr "Emitir certificado"
 
 
@@ -2608,8 +2624,8 @@ msgstr "Dejar en blanco si no desea modificar"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "Déjelo en blanco si no lo necesita."
 msgstr "Déjelo en blanco si no lo necesita."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "Dejarlo en blanco no cambiará nada"
 msgstr "Dejarlo en blanco no cambiará nada"
 
 
@@ -2696,7 +2712,7 @@ msgstr "Ubicación"
 msgid "Locations"
 msgid "Locations"
 msgstr "Ubicaciones"
 msgstr "Ubicaciones"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "Registro"
 msgstr "Registro"
 
 
@@ -2762,6 +2778,10 @@ msgstr "Modo de mantenimiento desactivado correctamente"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Modo de mantenimiento activado correctamente"
 msgstr "Modo de mantenimiento activado correctamente"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "Error al crear el directorio del certificado: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2911,7 +2931,7 @@ msgid "Modify"
 msgstr "Modificar"
 msgstr "Modificar"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "Modificar Certificado"
 msgstr "Modificar Certificado"
 
 
@@ -2946,7 +2966,7 @@ msgstr "Directiva multilínea"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2986,10 +3006,18 @@ msgstr "Total recibido por la red"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Total enviado por la red"
 msgstr "Total enviado por la red"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "Error en el nuevo proveedor de desafío DNS: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "Nueva instalación"
 msgstr "Nueva instalación"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "Error en el nuevo cliente de lego: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "Nuevo nombre"
 msgstr "Nuevo nombre"
@@ -3002,11 +3030,15 @@ msgstr "Nueva contraseña"
 msgid "New Path"
 msgid "New Path"
 msgstr "Nueva ruta"
 msgstr "Nueva ruta"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "Error de transporte nuevo: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "Se liberó una nueva versión"
 msgstr "Se liberó una nueva versión"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3338,6 +3370,10 @@ msgstr "Número de archivos procesados por el administrador de caché a la vez"
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "Número de procesos de trabajo"
 msgstr "Número de procesos de trabajo"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "Error al obtener el certificado: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "Obtener certificado"
 msgstr "Obtener certificado"
@@ -3596,7 +3632,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "Por favor, introduzca un rango de puertos válido"
 msgstr "Por favor, introduzca un rango de puertos válido"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "Por favor, ingrese al menos un dominio"
 msgstr "Por favor, ingrese al menos un dominio"
 
 
@@ -3794,6 +3830,10 @@ msgstr "Grupo del proyecto"
 msgid "Provider"
 msgid "Provider"
 msgstr "Proveedor"
 msgstr "Proveedor"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "Proveedor no encontrado: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy"
 msgstr "Proxy"
@@ -3947,7 +3987,7 @@ msgstr "Recargando"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "Recargando Nginx"
 msgstr "Recargando Nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "Eliminar"
 msgstr "Eliminar"
@@ -4030,6 +4070,10 @@ msgstr "Renombrado con éxito"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "Renombrado con éxito"
 msgstr "Renombrado con éxito"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "Error al renovar el certificado: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -4043,7 +4087,7 @@ msgstr "Error al renovar el Certificado"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "Renovado de Certificado exitoso"
 msgstr "Renovado de Certificado exitoso"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "Renovado con éxito"
 msgstr "Renovado con éxito"
@@ -4157,6 +4201,10 @@ msgstr "Restaurado con éxito"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "Revocar"
 msgstr "Revocar"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "Error al revocar el certificado: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "Revocar certificado antiguo"
 msgstr "Revocar certificado antiguo"
@@ -4303,7 +4351,7 @@ msgstr "Sábado"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4358,7 +4406,7 @@ msgstr "Error al guardar el flujo %{name} en %{node}"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Flujo %{name} guardado en %{node} correctamente"
 msgstr "Flujo %{name} guardado en %{node} correctamente"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Guardado con éxito"
 msgstr "Guardado con éxito"
@@ -4470,7 +4518,7 @@ msgstr "Enviado"
 msgid "Server"
 msgid "Server"
 msgstr "Servidor"
 msgstr "Servidor"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "Error del servidor"
 msgstr "Error del servidor"
 
 
@@ -4498,6 +4546,16 @@ msgstr "ServerIdx fuera de rango"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Sesión no encontrada"
 msgstr "Sesión no encontrada"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "Error al establecer el entorno: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr ""
+"Establecer marca de entorno para deshabilitar el soporte CNAME de lego "
+"error: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4610,7 +4668,7 @@ msgstr "Tiempo de espera entre iteraciones del cargador de caché"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "Tiempo de espera entre iteraciones del administrador de caché"
 msgstr "Tiempo de espera entre iteraciones del administrador de caché"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "Contenido de certificado SSL"
 msgstr "Contenido de certificado SSL"
 
 
@@ -4624,15 +4682,15 @@ msgstr ""
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "Archivo de certificado SSL no encontrado"
 msgstr "Archivo de certificado SSL no encontrado"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "Contenido de la llave del certificado SSL"
 msgstr "Contenido de la llave del certificado SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "Ruta de la llave del certificado SSL"
 msgstr "Ruta de la llave del certificado SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Ruta del certificado SSL"
 msgstr "Ruta del certificado SSL"
@@ -4872,7 +4930,7 @@ msgstr "Nodos de sincronización"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "Estrategia de sincronización"
 msgstr "Estrategia de sincronización"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Sincronizar con"
 msgstr "Sincronizar con"
 
 
@@ -4948,11 +5006,11 @@ msgstr ""
 "El número ICP solo debe contener letras, unicode, números, guiones, guiones "
 "El número ICP solo debe contener letras, unicode, números, guiones, guiones "
 "bajos, dos puntos y puntos."
 "bajos, dos puntos y puntos."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "La entrada no es un Certificado SSL"
 msgstr "La entrada no es un Certificado SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "La entrada no es una clave de certificado SSL"
 msgstr "La entrada no es una clave de certificado SSL"
 
 
@@ -4991,11 +5049,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "El parámetro de server_name es obligatorio"
 msgstr "El parámetro de server_name es obligatorio"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 msgid "The path exists, but the file is not a certificate"
 msgid "The path exists, but the file is not a certificate"
 msgstr "La ruta existe, pero el archivo no es un certificado"
 msgstr "La ruta existe, pero el archivo no es un certificado"
 
 
-#: src/views/certificate/CertificateEditor.vue:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "La ruta existe, pero el archivo no es una clave privada"
 msgstr "La ruta existe, pero el archivo no es una clave privada"
 
 
@@ -5057,17 +5115,17 @@ msgstr ""
 "pierda su contraseña y los segundos factores. Si no puede encontrar estos "
 "pierda su contraseña y los segundos factores. Si no puede encontrar estos "
 "códigos, perderá el acceso a su cuenta."
 "códigos, perderá el acceso a su cuenta."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Este elemento de Auto Cert es inválido, elimínelo por favor."
 msgstr "Este elemento de Auto Cert es inválido, elimínelo por favor."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "Este certificado es administrado por Nginx UI"
 msgstr "Este certificado es administrado por Nginx UI"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "Este campo es obligatorio"
 msgstr "Este campo es obligatorio"
 
 
@@ -5550,7 +5608,7 @@ msgstr ""
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "Si se debe usar una ruta temporal al escribir archivos temporales"
 msgstr "Si se debe usar una ruta temporal al escribir archivos temporales"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "Certificado comodín"
 msgstr "Certificado comodín"
 
 
@@ -5574,6 +5632,14 @@ msgstr "Trabajadores"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "Espacio de trabajo"
 msgstr "Espacio de trabajo"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "Error al escribir fullchain.cer: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "Error al escribir private.key: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 107 - 41
app/src/language/fr_FR/app.po

@@ -185,7 +185,7 @@ msgstr "Ajouter une configuration"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "Ajouter une directive"
 msgstr "Ajouter une directive"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "Ajouter un domaine"
 msgstr "Ajouter un domaine"
 
 
@@ -238,7 +238,7 @@ msgstr "Tous"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Tous les codes de récupération ont été utilisés"
 msgstr "Tous les codes de récupération ont été utilisés"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -424,7 +424,7 @@ msgstr "\"AutoCert est en cours d'exécution...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"Redémarrage Automatique\""
 msgstr "\"Redémarrage Automatique\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -728,13 +728,13 @@ msgstr "Certificat renouvelé avec succès"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "Certificat révoqué avec succès"
 msgstr "Certificat révoqué avec succès"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "État du certificat"
 msgstr[0] "État du certificat"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "Type de certificat"
 msgstr "Type de certificat"
 
 
@@ -747,6 +747,10 @@ msgstr "Certificats"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "Liste des certificats"
 msgstr "Liste des certificats"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "Erreur de défi : {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "Méthode de challenge"
 msgstr "Méthode de challenge"
@@ -1231,11 +1235,11 @@ msgstr "Expression cron personnalisée"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "Répertoire personnalisé"
 msgstr "Répertoire personnalisé"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "Domaines personnalisés"
 msgstr "Domaines personnalisés"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "Certificat de domaines personnalisés"
 msgstr "Certificat de domaines personnalisés"
 
 
@@ -1550,11 +1554,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "Document"
 msgstr[0] "Document"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "Domaine"
 msgstr "Domaine"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "La liste des domaines est vide, essayez de rouvrir Auto Cert pour %{config}"
 msgstr "La liste des domaines est vide, essayez de rouvrir Auto Cert pour %{config}"
 
 
@@ -1757,14 +1761,18 @@ msgstr "Crypter le site Web avec Let's Encrypt"
 msgid "End"
 msgid "End"
 msgstr "Fin"
 msgstr "Fin"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "Entrez le nom de domaine"
 msgstr "Entrez le nom de domaine"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "Entrez votre domaine"
 msgstr "Entrez votre domaine"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "La configuration de l'environnement est vide"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Variables d'environnement nettoyées"
 msgstr "Variables d'environnement nettoyées"
@@ -1775,7 +1783,7 @@ msgstr "Variables d'environnement nettoyées"
 msgid "Environments"
 msgid "Environments"
 msgstr "Environnements"
 msgstr "Environnements"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "Erreur"
 msgstr "Erreur"
@@ -2250,10 +2258,18 @@ msgstr "Codes de récupération générés avec succès"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "Génération de clé privée pour l'enregistrement du compte"
 msgstr "Génération de clé privée pour l'enregistrement du compte"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "Erreur lors de la récupération de l'utilisateur ACME: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "Échec de la récupération des données"
 msgstr "Échec de la récupération des données"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "Erreur lors de la récupération des informations d'identification DNS : {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2373,7 +2389,7 @@ msgid "Import"
 msgstr "Importer"
 msgstr "Importer"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "Importer un certificat"
 msgstr "Importer un certificat"
 
 
@@ -2521,7 +2537,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "Émettre un certificat"
 msgstr "Émettre un certificat"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "Émettre un certificat"
 msgstr "Émettre un certificat"
 
 
@@ -2606,8 +2622,8 @@ msgstr "Laisser vide si vous ne souhaitez pas modifier"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "Laissez vide si vous n'en avez pas besoin."
 msgstr "Laissez vide si vous n'en avez pas besoin."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "Laisser vide ne changera rien"
 msgstr "Laisser vide ne changera rien"
 
 
@@ -2694,7 +2710,7 @@ msgstr "Emplacement"
 msgid "Locations"
 msgid "Locations"
 msgstr "Emplacements"
 msgstr "Emplacements"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "Journal"
 msgstr "Journal"
 
 
@@ -2760,6 +2776,10 @@ msgstr "Mode maintenance désactivé avec succès"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Mode maintenance activé avec succès"
 msgstr "Mode maintenance activé avec succès"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "Erreur lors de la création du répertoire du certificat : {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2909,7 +2929,7 @@ msgid "Modify"
 msgstr "Modifier"
 msgstr "Modifier"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "Modifier le certificat"
 msgstr "Modifier le certificat"
 
 
@@ -2944,7 +2964,7 @@ msgstr "Directive multiligne"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2984,10 +3004,18 @@ msgstr "Réception totale du réseau"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Envoi total réseau"
 msgstr "Envoi total réseau"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "Erreur du nouveau fournisseur de défi DNS : {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "Nouvelle installation"
 msgstr "Nouvelle installation"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "Erreur du nouveau client lego : {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "Nouveau nom"
 msgstr "Nouveau nom"
@@ -3000,11 +3028,15 @@ msgstr "Nouveau mot de passe"
 msgid "New Path"
 msgid "New Path"
 msgstr "Nouveau chemin"
 msgstr "Nouveau chemin"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "Erreur de nouveau transport : {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "Nouvelle version publiée"
 msgstr "Nouvelle version publiée"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3335,6 +3367,10 @@ msgstr "Nombre de fichiers traités par le gestionnaire de cache à la fois"
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "Nombre de processus de travail"
 msgstr "Nombre de processus de travail"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "Erreur lors de l'obtention du certificat : {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "Obtenir un certificat"
 msgstr "Obtenir un certificat"
@@ -3595,7 +3631,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "Veuillez entrer une plage de ports valide"
 msgstr "Veuillez entrer une plage de ports valide"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "Veuillez saisir au moins un domaine"
 msgstr "Veuillez saisir au moins un domaine"
 
 
@@ -3791,6 +3827,10 @@ msgstr "Groupe de projet"
 msgid "Provider"
 msgid "Provider"
 msgstr "Fournisseur"
 msgstr "Fournisseur"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "Fournisseur introuvable : {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy"
 msgstr "Proxy"
@@ -3946,7 +3986,7 @@ msgstr "Rechargement"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "Rechargement de nginx"
 msgstr "Rechargement de nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "Supprimer"
 msgstr "Supprimer"
@@ -4029,6 +4069,10 @@ msgstr "Renommage réussi"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "Renommé avec succès"
 msgstr "Renommé avec succès"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "Erreur de renouvellement du certificat : {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -4042,7 +4086,7 @@ msgstr "Erreur de renouvellement du certificat"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "Renouvellement du certificat réussi"
 msgstr "Renouvellement du certificat réussi"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "Renouvellement réussi"
 msgstr "Renouvellement réussi"
@@ -4156,6 +4200,10 @@ msgstr "Rétabli avec succès"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "Révoquer"
 msgstr "Révoquer"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "Erreur de révocation du certificat : {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "Révoquer l'ancien certificat"
 msgstr "Révoquer l'ancien certificat"
@@ -4302,7 +4350,7 @@ msgstr "Samedi"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4357,7 +4405,7 @@ msgstr "Échec de l'enregistrement du flux %{name} sur %{node}"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Flux %{name} enregistré sur %{node} avec succès"
 msgstr "Flux %{name} enregistré sur %{node} avec succès"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Sauvegarde réussie"
 msgstr "Sauvegarde réussie"
@@ -4469,7 +4517,7 @@ msgstr "Envoyer"
 msgid "Server"
 msgid "Server"
 msgstr "Serveur"
 msgstr "Serveur"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "Erreur du serveur"
 msgstr "Erreur du serveur"
 
 
@@ -4497,6 +4545,16 @@ msgstr "ServerIdx hors limites"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Session non trouvée"
 msgstr "Session non trouvée"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "Erreur de configuration de l'environnement : {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr ""
+"Définir le drapeau d'environnement pour désactiver le support CNAME de lego "
+"erreur: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4609,7 +4667,7 @@ msgstr "Temps d'attente entre les itérations du chargeur de cache"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "Temps d'attente entre les itérations du gestionnaire de cache"
 msgstr "Temps d'attente entre les itérations du gestionnaire de cache"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "Contenu du certificat SSL"
 msgstr "Contenu du certificat SSL"
 
 
@@ -4623,15 +4681,15 @@ msgstr ""
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "Fichier de certificat SSL introuvable"
 msgstr "Fichier de certificat SSL introuvable"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "Contenu de la clé du certificat SSL"
 msgstr "Contenu de la clé du certificat SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "Chemin de la clé du certificat SSL"
 msgstr "Chemin de la clé du certificat SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Chemin du certificat SSL"
 msgstr "Chemin du certificat SSL"
@@ -4873,7 +4931,7 @@ msgstr "Nœuds de synchronisation"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "Stratégie de synchronisation"
 msgstr "Stratégie de synchronisation"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Synchroniser vers"
 msgstr "Synchroniser vers"
 
 
@@ -4949,11 +5007,11 @@ msgstr ""
 "Le numéro ICP ne doit contenir que des lettres, unicode, des chiffres, des "
 "Le numéro ICP ne doit contenir que des lettres, unicode, des chiffres, des "
 "traits d'union, des tirets, des deux-points et des points."
 "traits d'union, des tirets, des deux-points et des points."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "L'entrée n'est pas un certificat SSL"
 msgstr "L'entrée n'est pas un certificat SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "L'entrée n'est pas une clé de certificat SSL"
 msgstr "L'entrée n'est pas une clé de certificat SSL"
 
 
@@ -4992,11 +5050,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "Le paramètre server_name est requis"
 msgstr "Le paramètre server_name est requis"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 msgid "The path exists, but the file is not a certificate"
 msgid "The path exists, but the file is not a certificate"
 msgstr "Le chemin existe, mais le fichier n'est pas un certificat"
 msgstr "Le chemin existe, mais le fichier n'est pas un certificat"
 
 
-#: src/views/certificate/CertificateEditor.vue:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "Le chemin existe, mais le fichier n'est pas une clé privée"
 msgstr "Le chemin existe, mais le fichier n'est pas une clé privée"
 
 
@@ -5059,17 +5117,17 @@ msgstr ""
 "perdez votre mot de passe et vos seconds facteurs. Si vous ne trouvez pas "
 "perdez votre mot de passe et vos seconds facteurs. Si vous ne trouvez pas "
 "ces codes, vous perdrez l'accès à votre compte."
 "ces codes, vous perdrez l'accès à votre compte."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Cet élément de certificat automatique est invalide, veuillez le supprimer."
 msgstr "Cet élément de certificat automatique est invalide, veuillez le supprimer."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "Ce certificat est géré par Nginx UI"
 msgstr "Ce certificat est géré par Nginx UI"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "Ce champ est obligatoire"
 msgstr "Ce champ est obligatoire"
 
 
@@ -5561,7 +5619,7 @@ msgstr ""
 "S'il faut utiliser un chemin temporaire lors de l'écriture de fichiers "
 "S'il faut utiliser un chemin temporaire lors de l'écriture de fichiers "
 "temporaires"
 "temporaires"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "Certificat générique"
 msgstr "Certificat générique"
 
 
@@ -5585,6 +5643,14 @@ msgstr "Workers"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "Espace de travail"
 msgstr "Espace de travail"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "Erreur d'écriture de fullchain.cer : {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "Erreur d'écriture de private.key : {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 105 - 41
app/src/language/ja_JP/app.po

@@ -181,7 +181,7 @@ msgstr "設定を追加"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "ディレクティブを追加"
 msgstr "ディレクティブを追加"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "ドメインを追加"
 msgstr "ドメインを追加"
 
 
@@ -232,7 +232,7 @@ msgstr "すべて"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "すべてのリカバリーコードが使用済みです"
 msgstr "すべてのリカバリーコードが使用済みです"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -412,7 +412,7 @@ msgstr "AutoCert が実行中..."
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "自動再起動"
 msgstr "自動再起動"
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -705,13 +705,13 @@ msgstr "証明書の更新に成功しました"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "証明書の失効に成功しました"
 msgstr "証明書の失効に成功しました"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "証明書のステータス"
 msgstr[0] "証明書のステータス"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "証明書の種類"
 msgstr "証明書の種類"
 
 
@@ -724,6 +724,10 @@ msgstr "証明書"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "証明書リスト"
 msgstr "証明書リスト"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "チャレンジエラー: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "チャレンジタイプ"
 msgstr "チャレンジタイプ"
@@ -1184,11 +1188,11 @@ msgstr "カスタム cron 式"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "カスタムディレクトリ"
 msgstr "カスタムディレクトリ"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "カスタムドメイン"
 msgstr "カスタムドメイン"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "カスタムドメイン証明書"
 msgstr "カスタムドメイン証明書"
 
 
@@ -1499,11 +1503,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "ドキュメント"
 msgstr[0] "ドキュメント"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "ドメイン"
 msgstr "ドメイン"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "ドメインリストが空です。%{config} の自動証明書を再度開いてみてください"
 msgstr "ドメインリストが空です。%{config} の自動証明書を再度開いてみてください"
 
 
@@ -1703,14 +1707,18 @@ msgstr "Let's Encryptでウェブサイトを暗号化"
 msgid "End"
 msgid "End"
 msgstr "終了"
 msgstr "終了"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "ドメイン名を入力"
 msgstr "ドメイン名を入力"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "ドメインを入力してください"
 msgstr "ドメインを入力してください"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "環境設定が空です"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "環境変数をクリーンアップしました"
 msgstr "環境変数をクリーンアップしました"
@@ -1721,7 +1729,7 @@ msgstr "環境変数をクリーンアップしました"
 msgid "Environments"
 msgid "Environments"
 msgstr "環境"
 msgstr "環境"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "エラー"
 msgstr "エラー"
@@ -2192,10 +2200,18 @@ msgstr "リカバリーコードの生成に成功しました"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "アカウント登録用の秘密鍵を生成中"
 msgstr "アカウント登録用の秘密鍵を生成中"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "ACMEユーザーの取得エラー: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "データの取得に失敗しました"
 msgstr "データの取得に失敗しました"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "DNS認証情報の取得エラー: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2306,7 +2322,7 @@ msgid "Import"
 msgstr "インポート"
 msgstr "インポート"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "証明書をインポート"
 msgstr "証明書をインポート"
 
 
@@ -2450,7 +2466,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "証明書を発行"
 msgstr "証明書を発行"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "証明書を発行"
 msgstr "証明書を発行"
 
 
@@ -2533,8 +2549,8 @@ msgstr "変更しない場合は空白のままにしてください"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "必要なければ空白のままにしてください。"
 msgstr "必要なければ空白のままにしてください。"
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "空白のままにすると何も変更されません"
 msgstr "空白のままにすると何も変更されません"
 
 
@@ -2621,7 +2637,7 @@ msgstr "ロケーション"
 msgid "Locations"
 msgid "Locations"
 msgstr "ロケーション"
 msgstr "ロケーション"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "ログ"
 msgstr "ログ"
 
 
@@ -2682,6 +2698,10 @@ msgstr "メンテナンスモードを無効にしました"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "メンテナンスモードが有効になりました"
 msgstr "メンテナンスモードが有効になりました"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "証明書ディレクトリ作成エラー: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2831,7 +2851,7 @@ msgid "Modify"
 msgstr "変更"
 msgstr "変更"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "証明書を変更"
 msgstr "証明書を変更"
 
 
@@ -2866,7 +2886,7 @@ msgstr "複数行ディレクティブ"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2906,10 +2926,18 @@ msgstr "ネットワーク総受信量"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "ネットワーク総送信量"
 msgstr "ネットワーク総送信量"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "新しいDNSチャレンジプロバイダーエラー: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "新規インストール"
 msgstr "新規インストール"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "新しいレゴクライアントエラー: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "新しい名前"
 msgstr "新しい名前"
@@ -2922,11 +2950,15 @@ msgstr "新しいパスワード"
 msgid "New Path"
 msgid "New Path"
 msgstr "新しいパス"
 msgstr "新しいパス"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "新しい転送エラー: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "新しいバージョンがリリースされました"
 msgstr "新しいバージョンがリリースされました"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3251,6 +3283,10 @@ msgstr "キャッシュマネージャーが一度に処理するファイル数
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "ワーカープロセスの数"
 msgstr "ワーカープロセスの数"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "証明書の取得エラー: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "証明書を取得する"
 msgstr "証明書を取得する"
@@ -3501,7 +3537,7 @@ msgstr "作成したいパスキーの名前を入力し、下のOKボタンを
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "有効なポート範囲を入力してください"
 msgstr "有効なポート範囲を入力してください"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "少なくとも1つのドメインを入力してください"
 msgstr "少なくとも1つのドメインを入力してください"
 
 
@@ -3684,6 +3720,10 @@ msgstr "プロジェクトチーム"
 msgid "Provider"
 msgid "Provider"
 msgstr "プロバイダー"
 msgstr "プロバイダー"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "プロバイダーが見つかりません: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "プロキシ"
 msgstr "プロキシ"
@@ -3832,7 +3872,7 @@ msgstr "再読み込み中"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "nginx をリロード中"
 msgstr "nginx をリロード中"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "削除"
 msgstr "削除"
@@ -3915,6 +3955,10 @@ msgstr "名前の変更に成功しました"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "名前の変更に成功しました"
 msgstr "名前の変更に成功しました"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "証明書の更新エラー: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -3928,7 +3972,7 @@ msgstr "証明書の更新エラー"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "証明書の更新に成功しました"
 msgstr "証明書の更新に成功しました"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "証明書の更新に成功しました"
 msgstr "証明書の更新に成功しました"
@@ -4039,6 +4083,10 @@ msgstr "正常に復元されました"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "取り消す"
 msgstr "取り消す"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "証明書の失効エラー: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "古い証明書を失効させる"
 msgstr "古い証明書を失効させる"
@@ -4183,7 +4231,7 @@ msgstr "土曜日"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4238,7 +4286,7 @@ msgstr "ストリーム %{name} を %{node} に保存できませんでした"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "ストリーム %{name} を %{node} に正常に保存しました"
 msgstr "ストリーム %{name} を %{node} に正常に保存しました"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "保存に成功しました"
 msgstr "保存に成功しました"
@@ -4346,7 +4394,7 @@ msgstr "送信"
 msgid "Server"
 msgid "Server"
 msgstr "サーバー"
 msgstr "サーバー"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "サーバーエラー"
 msgstr "サーバーエラー"
 
 
@@ -4374,6 +4422,14 @@ msgstr "ServerIdx が範囲外です"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "セッションが見つかりません"
 msgstr "セッションが見つかりません"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "環境設定エラー: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr "lego CNAME サポートを無効にする環境フラグ設定エラー: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4484,7 +4540,7 @@ msgstr "キャッシュローダーの反復処理間の待機時間"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "キャッシュマネージャーの反復処理間の待機時間"
 msgstr "キャッシュマネージャーの反復処理間の待機時間"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "SSL証明書の内容"
 msgstr "SSL証明書の内容"
 
 
@@ -4496,15 +4552,15 @@ msgstr "SSL証明書ファイルはNginx設定ディレクトリの下にある
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "SSL証明書ファイルが見つかりません"
 msgstr "SSL証明書ファイルが見つかりません"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "SSL証明書キーの内容"
 msgstr "SSL証明書キーの内容"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "SSL証明書キーパス"
 msgstr "SSL証明書キーパス"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL証明書のパス"
 msgstr "SSL証明書のパス"
@@ -4737,7 +4793,7 @@ msgstr "同期ノード"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "同期戦略"
 msgstr "同期戦略"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "同期先"
 msgstr "同期先"
 
 
@@ -4808,11 +4864,11 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr "ICP番号には、文字、Unicode、数字、ハイフン、ダッシュ、コロン、およびドットのみを含める必要があります。"
 msgstr "ICP番号には、文字、Unicode、数字、ハイフン、ダッシュ、コロン、およびドットのみを含める必要があります。"
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "入力はSSL証明書ではありません"
 msgstr "入力はSSL証明書ではありません"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "入力はSSL証明書キーではありません"
 msgstr "入力はSSL証明書キーではありません"
 
 
@@ -4843,11 +4899,11 @@ msgstr "ノード名には、文字、Unicode、数字、ハイフン、ダッ
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "server_name のパラメーターが必要です"
 msgstr "server_name のパラメーターが必要です"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "パスは存在しますが、ファイルは秘密鍵ではありません"
 
 
@@ -4903,17 +4959,17 @@ msgstr ""
 "これらのコードは、パスワードと第二要素を失った場合にアカウントにアクセスするための最後の手段です。これらのコードが見つからない場合、アカウントにアクセス"
 "これらのコードは、パスワードと第二要素を失った場合にアカウントにアクセスするための最後の手段です。これらのコードが見つからない場合、アカウントにアクセス"
 "できなくなります。"
 "できなくなります。"
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "この自動証明書項目は無効です。削除してください。"
 msgstr "この自動証明書項目は無効です。削除してください。"
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "この証明書はNginx UIによって管理されています"
 msgstr "この証明書はNginx UIによって管理されています"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "このフィールドは必須です"
 msgstr "このフィールドは必須です"
 
 
@@ -5360,7 +5416,7 @@ msgstr "新しいリカバリーコードを生成するときは、新しいコ
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "一時ファイルを書き込む際に一時パスを使用するかどうか"
 msgstr "一時ファイルを書き込む際に一時パスを使用するかどうか"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "ワイルドカード証明書"
 msgstr "ワイルドカード証明書"
 
 
@@ -5384,6 +5440,14 @@ msgstr "ワーカー"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "ワークスペース"
 msgstr "ワークスペース"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "fullchain.cer の書き込みエラー: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "private.key の書き込みエラー: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 105 - 41
app/src/language/ko_KR/app.po

@@ -179,7 +179,7 @@ msgstr "구성 추가"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "아래에 지시문 추가"
 msgstr "아래에 지시문 추가"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "도메인 추가"
 msgstr "도메인 추가"
 
 
@@ -230,7 +230,7 @@ msgstr "모두"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "모든 복구 코드가 사용되었습니다"
 msgstr "모든 복구 코드가 사용되었습니다"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -410,7 +410,7 @@ msgstr "\"AutoCert 실행 중...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"자동 재시작\""
 msgstr "\"자동 재시작\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -703,14 +703,14 @@ msgstr "인증서 갱신 성공"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "인증서가 성공적으로 취소되었습니다"
 msgstr "인증서가 성공적으로 취소되었습니다"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "인증서 상태"
 msgstr[0] "인증서 상태"
 msgstr[1] "인증서 상태"
 msgstr[1] "인증서 상태"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "인증서 유형"
 msgstr "인증서 유형"
 
 
@@ -723,6 +723,10 @@ msgstr "인증서"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "인증서 목록"
 msgstr "인증서 목록"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "챌린지 오류: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "인증 방법"
 msgstr "인증 방법"
@@ -1181,11 +1185,11 @@ msgstr "사용자 정의 cron 표현식"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "사용자 지정 디렉토리"
 msgstr "사용자 지정 디렉토리"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "사용자 정의 도메인"
 msgstr "사용자 정의 도메인"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "사용자 정의 도메인 인증서"
 msgstr "사용자 정의 도메인 인증서"
 
 
@@ -1496,11 +1500,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "문서"
 msgstr[0] "문서"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "도메인"
 msgstr "도메인"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "도메인 목록이 비어 있습니다. %{config}에 대한 자동 인증서를 다시 열어보세요"
 msgstr "도메인 목록이 비어 있습니다. %{config}에 대한 자동 인증서를 다시 열어보세요"
 
 
@@ -1702,14 +1706,18 @@ msgstr "Let's Encrypt로 웹사이트 암호화"
 msgid "End"
 msgid "End"
 msgstr "끝"
 msgstr "끝"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "도메인 이름 입력"
 msgstr "도메인 이름 입력"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "도메인을 입력하세요"
 msgstr "도메인을 입력하세요"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "환경 구성이 비어 있습니다"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "환경 변수가 정리되었습니다"
 msgstr "환경 변수가 정리되었습니다"
@@ -1720,7 +1728,7 @@ msgstr "환경 변수가 정리되었습니다"
 msgid "Environments"
 msgid "Environments"
 msgstr "환경"
 msgstr "환경"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "오류"
 msgstr "오류"
@@ -2191,10 +2199,18 @@ msgstr "복구 코드 생성 성공"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "계정 등록을 위한 개인 키 생성 중"
 msgstr "계정 등록을 위한 개인 키 생성 중"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "ACME 사용자 가져오기 오류: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "데이터 가져오기 실패"
 msgstr "데이터 가져오기 실패"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "DNS 자격 증명 가져오기 오류: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2305,7 +2321,7 @@ msgid "Import"
 msgstr "가져오기"
 msgstr "가져오기"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "인증서 가져오기"
 msgstr "인증서 가져오기"
 
 
@@ -2449,7 +2465,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "인증서 발급"
 msgstr "인증서 발급"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "인증서 발급"
 msgstr "인증서 발급"
 
 
@@ -2532,8 +2548,8 @@ msgstr "수정하지 않으려면 비워 두세요"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "필요하지 않으면 비워 두세요."
 msgstr "필요하지 않으면 비워 두세요."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "비워 두면 아무것도 변경되지 않습니다"
 msgstr "비워 두면 아무것도 변경되지 않습니다"
 
 
@@ -2620,7 +2636,7 @@ msgstr "위치"
 msgid "Locations"
 msgid "Locations"
 msgstr "위치들"
 msgstr "위치들"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "로그"
 msgstr "로그"
 
 
@@ -2680,6 +2696,10 @@ msgstr "유지 관리 모드가 비활성화되었습니다"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "유지 보수 모드가 성공적으로 활성화되었습니다"
 msgstr "유지 보수 모드가 성공적으로 활성화되었습니다"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "인증서 디렉터리 생성 오류: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2827,7 +2847,7 @@ msgid "Modify"
 msgstr "수정"
 msgstr "수정"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "인증서 수정"
 msgstr "인증서 수정"
 
 
@@ -2862,7 +2882,7 @@ msgstr "여러 줄 지시문"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2902,10 +2922,18 @@ msgstr "네트워크 총 수신"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "네트워크 총 송신"
 msgstr "네트워크 총 송신"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "새 DNS 챌린지 공급자 오류: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "새 설치"
 msgstr "새 설치"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "새로운 레고 클라이언트 오류: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "새 이름"
 msgstr "새 이름"
@@ -2918,11 +2946,15 @@ msgstr "새 비밀번호"
 msgid "New Path"
 msgid "New Path"
 msgstr "새 경로"
 msgstr "새 경로"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "새로운 전송 오류: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "새 버전 출시"
 msgstr "새 버전 출시"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3247,6 +3279,10 @@ msgstr "캐시 관리자가 한 번에 처리하는 파일 수"
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "작업 프로세스 수"
 msgstr "작업 프로세스 수"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "인증서 획득 오류: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "인증서 획득"
 msgstr "인증서 획득"
@@ -3497,7 +3533,7 @@ msgstr "생성하려는 패스키의 이름을 입력하고 아래의 확인 버
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "유효한 포트 범위를 입력하세요"
 msgstr "유효한 포트 범위를 입력하세요"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "최소 하나의 도메인을 입력해 주세요"
 msgstr "최소 하나의 도메인을 입력해 주세요"
 
 
@@ -3678,6 +3714,10 @@ msgstr "프로젝트 팀"
 msgid "Provider"
 msgid "Provider"
 msgstr "제공자"
 msgstr "제공자"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "공급자를 찾을 수 없음: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "프록시"
 msgstr "프록시"
@@ -3826,7 +3866,7 @@ msgstr "리로딩 중"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "Nginx 리로딩 중"
 msgstr "Nginx 리로딩 중"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "제거"
 msgstr "제거"
@@ -3909,6 +3949,10 @@ msgstr "이름 변경 성공"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "이름 변경 성공"
 msgstr "이름 변경 성공"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "인증서 갱신 오류: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -3922,7 +3966,7 @@ msgstr "인증서 갱신 오류"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "성공적으로 갱신됨"
 msgstr "성공적으로 갱신됨"
@@ -4035,6 +4079,10 @@ msgstr "성공적으로 복원되었습니다"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "취소"
 msgstr "취소"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "인증서 취소 오류: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "이전 인증서 취소"
 msgstr "이전 인증서 취소"
@@ -4179,7 +4227,7 @@ msgstr "토요일"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4234,7 +4282,7 @@ msgstr "스트림 %{name}을(를) %{node}에 저장하지 못했습니다"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "스트림 %{name}을(를) %{node}에 성공적으로 저장했습니다"
 msgstr "스트림 %{name}을(를) %{node}에 성공적으로 저장했습니다"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "성공적으로 저장되었습니다"
 msgstr "성공적으로 저장되었습니다"
@@ -4342,7 +4390,7 @@ msgstr "보내기"
 msgid "Server"
 msgid "Server"
 msgstr "서버"
 msgstr "서버"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "서버 오류"
 msgstr "서버 오류"
 
 
@@ -4370,6 +4418,14 @@ msgstr "ServerIdx 범위를 벗어남"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "세션을 찾을 수 없음"
 msgstr "세션을 찾을 수 없음"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "환경 설정 오류: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr "lego CNAME 지원 비활성화 환경 플래그 설정 오류: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4480,7 +4536,7 @@ msgstr "캐시 로더 반복 사이의 대기 시간"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "캐시 관리자 반복 간 대기 시간"
 msgstr "캐시 관리자 반복 간 대기 시간"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "SSL 인증서 내용"
 msgstr "SSL 인증서 내용"
 
 
@@ -4492,15 +4548,15 @@ msgstr "SSL 인증서 파일은 Nginx 구성 디렉터리 아래에 있어야 
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "SSL 인증서 파일을 찾을 수 없음"
 msgstr "SSL 인증서 파일을 찾을 수 없음"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "SSL 인증서키 콘텐츠"
 msgstr "SSL 인증서키 콘텐츠"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "SSL 인증서 키 경로"
 msgstr "SSL 인증서 키 경로"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL 인증서 경로"
 msgstr "SSL 인증서 경로"
@@ -4733,7 +4789,7 @@ msgstr "동기화 노드"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "동기화 전략"
 msgstr "동기화 전략"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "동기화 대상"
 msgstr "동기화 대상"
 
 
@@ -4804,11 +4860,11 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr "ICP 번호는 문자, 유니코드, 숫자, 하이픈, 대시, 콜론 및 점만 포함해야 합니다."
 msgstr "ICP 번호는 문자, 유니코드, 숫자, 하이픈, 대시, 콜론 및 점만 포함해야 합니다."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "입력이 SSL 인증서가 아닙니다"
 msgstr "입력이 SSL 인증서가 아닙니다"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "입력한 내용이 SSL 인증서 키가 아닙니다"
 msgstr "입력한 내용이 SSL 인증서 키가 아닙니다"
 
 
@@ -4839,11 +4895,11 @@ msgstr "노드 이름에는 문자, 유니코드, 숫자, 하이픈, 대시, 콜
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "server_name 매개변수가 필요합니다"
 msgstr "server_name 매개변수가 필요합니다"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "경로는 존재하지만 파일은 개인 키가 아닙니다"
 
 
@@ -4899,17 +4955,17 @@ msgstr ""
 "이 코드들은 비밀번호와 두 번째 요소를 잃어버린 경우 계정에 접근할 수 있는 최후의 수단입니다. 이 코드들을 찾을 수 없다면 계정에 "
 "이 코드들은 비밀번호와 두 번째 요소를 잃어버린 경우 계정에 접근할 수 있는 최후의 수단입니다. 이 코드들을 찾을 수 없다면 계정에 "
 "대한 접근 권한을 잃게 됩니다."
 "대한 접근 권한을 잃게 됩니다."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "이 자동 인증 항목이 유효하지 않습니다. 제거해주세요."
 msgstr "이 자동 인증 항목이 유효하지 않습니다. 제거해주세요."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "이 인증서는 Nginx UI에서 관리됩니다"
 msgstr "이 인증서는 Nginx UI에서 관리됩니다"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "이 필드는 필수입니다"
 msgstr "이 필드는 필수입니다"
 
 
@@ -5354,7 +5410,7 @@ msgstr "새로운 복구 코드를 생성할 때는 반드시 새 코드를 다
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "임시 파일을 작성할 때 임시 경로를 사용할지 여부"
 msgstr "임시 파일을 작성할 때 임시 경로를 사용할지 여부"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "와일드카드 인증서"
 msgstr "와일드카드 인증서"
 
 
@@ -5378,6 +5434,14 @@ msgstr "워커"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "작업 공간"
 msgstr "작업 공간"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "fullchain.cer 쓰기 오류: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "private.key 쓰기 오류: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 105 - 41
app/src/language/messages.pot

@@ -170,7 +170,7 @@ msgstr ""
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr ""
 msgstr ""
 
 
@@ -222,7 +222,7 @@ msgstr ""
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid "All selected subdomains must belong to the same DNS Provider, otherwise the certificate application will fail."
 msgid "All selected subdomains must belong to the same DNS Provider, otherwise the certificate application will fail."
 msgstr ""
 msgstr ""
 
 
@@ -401,7 +401,7 @@ msgstr ""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112
 #: src/views/config/ConfigList.vue:112
 #: src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:195
@@ -692,14 +692,14 @@ msgstr ""
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] ""
 msgstr[0] ""
 msgstr[1] ""
 msgstr[1] ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr ""
 msgstr ""
 
 
@@ -712,6 +712,10 @@ msgstr ""
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr ""
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr ""
 msgstr ""
@@ -1122,11 +1126,11 @@ msgstr ""
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -1443,11 +1447,11 @@ msgid_plural "Documents"
 msgstr[0] ""
 msgstr[0] ""
 msgstr[1] ""
 msgstr[1] ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 msgstr ""
 
 
@@ -1646,14 +1650,18 @@ msgstr ""
 msgid "End"
 msgid "End"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr ""
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr ""
 msgstr ""
@@ -1665,7 +1673,7 @@ msgid "Environments"
 msgstr ""
 msgstr ""
 
 
 #: src/constants/index.ts:22
 #: src/constants/index.ts:22
-#: src/views/config/InspectConfig.vue:49
+#: src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr ""
 msgstr ""
@@ -2135,10 +2143,18 @@ msgstr ""
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr ""
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr ""
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2243,7 +2259,7 @@ msgid "Import"
 msgstr ""
 msgstr ""
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -2384,7 +2400,7 @@ msgstr ""
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -2465,8 +2481,8 @@ msgstr ""
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr ""
 msgstr ""
 
 
@@ -2553,7 +2569,7 @@ msgstr ""
 msgid "Locations"
 msgid "Locations"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr ""
 msgstr ""
 
 
@@ -2602,6 +2618,10 @@ msgstr ""
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr ""
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid "Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort before obtaining the certificate."
 msgid "Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort before obtaining the certificate."
 msgstr ""
 msgstr ""
@@ -2750,7 +2770,7 @@ msgid "Modify"
 msgstr ""
 msgstr ""
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -2785,7 +2805,7 @@ msgstr ""
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2825,10 +2845,18 @@ msgstr ""
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr ""
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr ""
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr ""
 msgstr ""
@@ -2841,11 +2869,15 @@ msgstr ""
 msgid "New Path"
 msgid "New Path"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3173,6 +3205,10 @@ msgstr ""
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr ""
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr ""
 msgstr ""
@@ -3416,7 +3452,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr ""
 msgstr ""
 
 
@@ -3591,6 +3627,10 @@ msgstr ""
 msgid "Provider"
 msgid "Provider"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr ""
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr ""
 msgstr ""
@@ -3737,7 +3777,7 @@ msgstr ""
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr ""
 msgstr ""
@@ -3822,6 +3862,10 @@ msgstr ""
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr ""
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -3835,7 +3879,7 @@ msgstr ""
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr ""
 msgstr ""
@@ -3944,6 +3988,10 @@ msgstr ""
 msgid "Revoke"
 msgid "Revoke"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr ""
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr ""
 msgstr ""
@@ -4087,7 +4135,7 @@ msgstr ""
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/language/curd.ts:18
 #: src/language/curd.ts:18
-#: src/views/certificate/CertificateEditor.vue:264
+#: src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4143,7 +4191,7 @@ msgid "Save stream %{name} to %{node} successfully"
 msgstr ""
 msgstr ""
 
 
 #: src/language/curd.ts:35
 #: src/language/curd.ts:35
-#: src/views/certificate/store.ts:13
+#: src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr ""
 msgstr ""
@@ -4255,7 +4303,7 @@ msgstr ""
 msgid "Server"
 msgid "Server"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr ""
 msgstr ""
 
 
@@ -4283,6 +4331,14 @@ msgstr ""
 msgid "Session not found"
 msgid "Session not found"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr ""
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr ""
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 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 ""
@@ -4383,7 +4439,7 @@ msgstr ""
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr ""
 msgstr ""
 
 
@@ -4395,15 +4451,15 @@ msgstr ""
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr ""
 msgstr ""
@@ -4629,7 +4685,7 @@ msgstr ""
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr ""
 msgstr ""
 
 
@@ -4696,11 +4752,11 @@ msgstr ""
 msgid "The ICP Number should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgid "The ICP Number should only contain letters, unicode, numbers, hyphens, dashes, colons, and dots."
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr ""
 msgstr ""
 
 
@@ -4725,11 +4781,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 ""
 
 
@@ -4771,17 +4827,17 @@ msgstr ""
 msgid "These codes are the last resort for accessing your account in case you lose your password and second factors. If you cannot find these codes, you will lose access to your account."
 msgid "These codes are the last resort for accessing your account in case you lose your password and second factors. If you cannot find these codes, you will lose access to your account."
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr ""
 msgstr ""
 
 
@@ -5186,7 +5242,7 @@ msgstr ""
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr ""
 msgstr ""
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr ""
 msgstr ""
 
 
@@ -5211,6 +5267,14 @@ msgstr ""
 msgid "Workspace"
 msgid "Workspace"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr ""
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 105 - 41
app/src/language/pt_PT/app.po

@@ -181,7 +181,7 @@ msgstr "Adicionar Configuração"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "Adicionar Directiva Abaixo"
 msgstr "Adicionar Directiva Abaixo"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "Adicionar domínio"
 msgstr "Adicionar domínio"
 
 
@@ -234,7 +234,7 @@ msgstr "Todos"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Todos os Códigos de Recuperação Foram Utilizados"
 msgstr "Todos os Códigos de Recuperação Foram Utilizados"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -420,7 +420,7 @@ msgstr "\"AutoCert está em execução...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "Reinício Automático"
 msgstr "Reinício Automático"
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -721,14 +721,14 @@ msgstr "Certificado renovado com sucesso"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "Certificado revogado com sucesso"
 msgstr "Certificado revogado com sucesso"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Estado do Certificado"
 msgstr[0] "Estado do Certificado"
 msgstr[1] "Estado dos Certificados"
 msgstr[1] "Estado dos Certificados"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "Tipo de certificado"
 msgstr "Tipo de certificado"
 
 
@@ -741,6 +741,10 @@ msgstr "Certificados"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "Lista de Certificados"
 msgstr "Lista de Certificados"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "Erro de desafio: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "Método do Challenge"
 msgstr "Método do Challenge"
@@ -1222,11 +1226,11 @@ msgstr "Expressão cron personalizada"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "Diretório personalizado"
 msgstr "Diretório personalizado"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "Domínios personalizados"
 msgstr "Domínios personalizados"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "Certificado de Domínios Personalizados"
 msgstr "Certificado de Domínios Personalizados"
 
 
@@ -1539,11 +1543,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "Documento"
 msgstr[0] "Documento"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "Domínio"
 msgstr "Domínio"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "A lista de domínios está vazia, tente reabrir o Auto Cert para %{config}"
 msgstr "A lista de domínios está vazia, tente reabrir o Auto Cert para %{config}"
 
 
@@ -1746,14 +1750,18 @@ msgstr "Encriptar website com Let's Encrypt"
 msgid "End"
 msgid "End"
 msgstr "Fim"
 msgstr "Fim"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "Inserir nome de domínio"
 msgstr "Inserir nome de domínio"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "Insira o seu domínio"
 msgstr "Insira o seu domínio"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "A configuração do ambiente está vazia"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Variáveis de ambiente limpas"
 msgstr "Variáveis de ambiente limpas"
@@ -1764,7 +1772,7 @@ msgstr "Variáveis de ambiente limpas"
 msgid "Environments"
 msgid "Environments"
 msgstr "Ambientes"
 msgstr "Ambientes"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "Erro"
 msgstr "Erro"
@@ -2237,10 +2245,18 @@ msgstr "Códigos de recuperação gerados com sucesso"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "Gerar chave privada para registo de conta"
 msgstr "Gerar chave privada para registo de conta"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "Erro ao obter o utilizador ACME: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "Falha ao obter os dados"
 msgstr "Falha ao obter os dados"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "Erro ao obter credenciais DNS: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2358,7 +2374,7 @@ msgid "Import"
 msgstr "Importar"
 msgstr "Importar"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "Importar Certificados"
 msgstr "Importar Certificados"
 
 
@@ -2506,7 +2522,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "Emitir certificado"
 msgstr "Emitir certificado"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "Emitir certificado"
 msgstr "Emitir certificado"
 
 
@@ -2591,8 +2607,8 @@ msgstr "Deixar em branco se não quiser modificar"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "Deixe em branco se não precisar disto."
 msgstr "Deixe em branco se não precisar disto."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "Deixar em branco não vai mudar nada"
 msgstr "Deixar em branco não vai mudar nada"
 
 
@@ -2679,7 +2695,7 @@ msgstr "Localização"
 msgid "Locations"
 msgid "Locations"
 msgstr "Localizações"
 msgstr "Localizações"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "Log"
 msgstr "Log"
 
 
@@ -2744,6 +2760,10 @@ msgstr "Modo de manutenção desativado com sucesso"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Modo de manutenção ativado com sucesso"
 msgstr "Modo de manutenção ativado com sucesso"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "Erro ao criar diretório do certificado: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2893,7 +2913,7 @@ msgid "Modify"
 msgstr "Modificar"
 msgstr "Modificar"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "Modificar Certificado"
 msgstr "Modificar Certificado"
 
 
@@ -2928,7 +2948,7 @@ msgstr "Diretiva Multilinha"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2968,10 +2988,18 @@ msgstr "Receção Total da Rede"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Envio Total da Rede"
 msgstr "Envio Total da Rede"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "Erro no novo provedor de desafio DNS: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "Nova instalação"
 msgstr "Nova instalação"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "Erro no novo cliente lego: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "Novo nome"
 msgstr "Novo nome"
@@ -2984,11 +3012,15 @@ msgstr "Nova senha"
 msgid "New Path"
 msgid "New Path"
 msgstr "Novo Caminho"
 msgstr "Novo Caminho"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "Erro de transporte novo: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "Nova versão lançada"
 msgstr "Nova versão lançada"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3319,6 +3351,10 @@ msgstr "Número de ficheiros processados pelo gestor de cache de uma só vez"
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "Número de processos de trabalho"
 msgstr "Número de processos de trabalho"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "Erro ao obter certificado: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "Obter certificado"
 msgstr "Obter certificado"
@@ -3577,7 +3613,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "Por favor, insira um intervalo de portas válido"
 msgstr "Por favor, insira um intervalo de portas válido"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "Por favor, insira pelo menos um domínio"
 msgstr "Por favor, insira pelo menos um domínio"
 
 
@@ -3770,6 +3806,10 @@ msgstr "Equipe de Projecto"
 msgid "Provider"
 msgid "Provider"
 msgstr "Provedor"
 msgstr "Provedor"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "Fornecedor não encontrado: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy"
 msgstr "Proxy"
@@ -3922,7 +3962,7 @@ msgstr "Recarregando"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "Recarregando Nginx"
 msgstr "Recarregando Nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "Remover"
 msgstr "Remover"
@@ -4007,6 +4047,10 @@ msgstr "Renomeado com sucesso"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "Renomeado com sucesso"
 msgstr "Renomeado com sucesso"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "Erro ao renovar certificado: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -4020,7 +4064,7 @@ msgstr "Erro ao Renovar Certificado"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "Certificado Renovado com Sucesso"
 msgstr "Certificado Renovado com Sucesso"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "Renovado com Sucesso"
 msgstr "Renovado com Sucesso"
@@ -4134,6 +4178,10 @@ msgstr "Restaurado com sucesso"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "Revogar"
 msgstr "Revogar"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "Erro ao revogar certificado: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "Revogar certificado antigo"
 msgstr "Revogar certificado antigo"
@@ -4280,7 +4328,7 @@ msgstr "Sábado"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4335,7 +4383,7 @@ msgstr "Falha ao guardar o fluxo %{name} em %{node}"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Fluxo %{name} guardado em %{node} com sucesso"
 msgstr "Fluxo %{name} guardado em %{node} com sucesso"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Salvo com sucesso"
 msgstr "Salvo com sucesso"
@@ -4447,7 +4495,7 @@ msgstr "Enviar"
 msgid "Server"
 msgid "Server"
 msgstr "Servidor"
 msgstr "Servidor"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "Erro do servidor"
 msgstr "Erro do servidor"
 
 
@@ -4475,6 +4523,14 @@ msgstr "ServerIdx fora do intervalo"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Sessão não encontrada"
 msgstr "Sessão não encontrada"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "Erro ao definir ambiente: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr "Definir flag de ambiente para desativar suporte CNAME do lego erro: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4587,7 +4643,7 @@ msgstr "Tempo de espera entre iterações do carregador de cache"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "Tempo de espera entre iterações do gestor de cache"
 msgstr "Tempo de espera entre iterações do gestor de cache"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "Conteúdo do Certificado SSL"
 msgstr "Conteúdo do Certificado SSL"
 
 
@@ -4601,15 +4657,15 @@ msgstr ""
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "Ficheiro de certificado SSL não encontrado"
 msgstr "Ficheiro de certificado SSL não encontrado"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "Conteúdo da Chave do Certificado SSL"
 msgstr "Conteúdo da Chave do Certificado SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "Caminho para a Chave do Certificado SSL"
 msgstr "Caminho para a Chave do Certificado SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Caminho para o Certificado SSL"
 msgstr "Caminho para o Certificado SSL"
@@ -4848,7 +4904,7 @@ msgstr "Nós de sincronização"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "Estratégia de sincronização"
 msgstr "Estratégia de sincronização"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Sincronizar para"
 msgstr "Sincronizar para"
 
 
@@ -4924,11 +4980,11 @@ msgstr ""
 "O número ICP deve conter apenas letras, unicode, números, hífens, traços, "
 "O número ICP deve conter apenas letras, unicode, números, hífens, traços, "
 "dois pontos e pontos."
 "dois pontos e pontos."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "A valor introduzido não é um certificado SSL"
 msgstr "A valor introduzido não é um certificado SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "O valor introduzido não é uma Chave de Certificado SSL"
 msgstr "O valor introduzido não é uma Chave de Certificado SSL"
 
 
@@ -4967,11 +5023,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "O parâmetro de server_name é obrigatório"
 msgstr "O parâmetro de server_name é obrigatório"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 msgid "The path exists, but the file is not a certificate"
 msgid "The path exists, but the file is not a certificate"
 msgstr "O caminho existe, mas o ficheiro não é um certificado"
 msgstr "O caminho existe, mas o ficheiro não é um certificado"
 
 
-#: src/views/certificate/CertificateEditor.vue:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "O caminho existe, mas o ficheiro não é uma chave privada"
 msgstr "O caminho existe, mas o ficheiro não é uma chave privada"
 
 
@@ -5033,17 +5089,17 @@ msgstr ""
 "palavra-passe e os segundos fatores. Se não conseguir encontrar estes "
 "palavra-passe e os segundos fatores. Se não conseguir encontrar estes "
 "códigos, perderá o acesso à sua conta."
 "códigos, perderá o acesso à sua conta."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Este item Auto Cert é inválido, por favor remova-o."
 msgstr "Este item Auto Cert é inválido, por favor remova-o."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "Este certificado é gerido pelo Nginx UI"
 msgstr "Este certificado é gerido pelo Nginx UI"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "Este campo é mantatório"
 msgstr "Este campo é mantatório"
 
 
@@ -5522,7 +5578,7 @@ msgstr ""
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "Se deve usar um caminho temporário ao escrever ficheiros temporários"
 msgstr "Se deve usar um caminho temporário ao escrever ficheiros temporários"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "Certificado curinga"
 msgstr "Certificado curinga"
 
 
@@ -5546,6 +5602,14 @@ msgstr "Workers"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "Espaço de Trabalho"
 msgstr "Espaço de Trabalho"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "Erro ao escrever fullchain.cer: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "Erro ao escrever private.key: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 105 - 41
app/src/language/ru_RU/app.po

@@ -185,7 +185,7 @@ msgstr "Добавить конфигурацию"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "Добавить директиву ниже"
 msgstr "Добавить директиву ниже"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "Добавить домен"
 msgstr "Добавить домен"
 
 
@@ -236,7 +236,7 @@ msgstr "Все"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Все коды восстановления были использованы"
 msgstr "Все коды восстановления были использованы"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -422,7 +422,7 @@ msgstr "\"AutoCert выполняется...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"Автоматическая перезагрузка\""
 msgstr "\"Автоматическая перезагрузка\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -727,14 +727,14 @@ msgstr "Сертификат успешно продлен"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "Сертификат успешно отозван"
 msgstr "Сертификат успешно отозван"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Статус сертификата"
 msgstr[0] "Статус сертификата"
 msgstr[1] "Статус сертификатов"
 msgstr[1] "Статус сертификатов"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "Тип сертификата"
 msgstr "Тип сертификата"
 
 
@@ -747,6 +747,10 @@ msgstr "Сертификаты"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "Список сертификатов"
 msgstr "Список сертификатов"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "Ошибка проверки: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "Метод Challenge"
 msgstr "Метод Challenge"
@@ -1227,11 +1231,11 @@ msgstr "Пользовательское cron-выражение"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "Пользовательская директория"
 msgstr "Пользовательская директория"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "Пользовательские домены"
 msgstr "Пользовательские домены"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "Сертификат для пользовательских доменов"
 msgstr "Сертификат для пользовательских доменов"
 
 
@@ -1542,11 +1546,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "Документ"
 msgstr[0] "Документ"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "Домен"
 msgstr "Домен"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "Список доменов пуст, попробуйте заново создать авто-сертификат для %{config}"
 msgstr "Список доменов пуст, попробуйте заново создать авто-сертификат для %{config}"
 
 
@@ -1749,14 +1753,18 @@ msgstr "Использовать для сайта Let's Encrypt"
 msgid "End"
 msgid "End"
 msgstr "Конец"
 msgstr "Конец"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "Введите имя домена"
 msgstr "Введите имя домена"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "Введите ваш домен"
 msgstr "Введите ваш домен"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "Конфигурация среды пуста"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Переменные окружения очищены"
 msgstr "Переменные окружения очищены"
@@ -1767,7 +1775,7 @@ msgstr "Переменные окружения очищены"
 msgid "Environments"
 msgid "Environments"
 msgstr "Окружения"
 msgstr "Окружения"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "Ошибка"
 msgstr "Ошибка"
@@ -2240,10 +2248,18 @@ msgstr "Коды восстановления успешно сгенериро
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "Генерация приватного ключа для регистрации учетной записи"
 msgstr "Генерация приватного ключа для регистрации учетной записи"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "Ошибка получения пользователя ACME: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "Не удалось получить данные"
 msgstr "Не удалось получить данные"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "Ошибка получения учетных данных DNS: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2359,7 +2375,7 @@ msgid "Import"
 msgstr "Импорт"
 msgstr "Импорт"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "Импортировать сертификат"
 msgstr "Импортировать сертификат"
 
 
@@ -2507,7 +2523,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "Выдать сертификат"
 msgstr "Выдать сертификат"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "Выпустить сертификат"
 msgstr "Выпустить сертификат"
 
 
@@ -2592,8 +2608,8 @@ msgstr "Оставьте пустым, если не хотите изменят
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "Оставьте пустым без изменений."
 msgstr "Оставьте пустым без изменений."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "Если оставить пустым, ничего не изменится"
 msgstr "Если оставить пустым, ничего не изменится"
 
 
@@ -2680,7 +2696,7 @@ msgstr "Локация"
 msgid "Locations"
 msgid "Locations"
 msgstr "Локации"
 msgstr "Локации"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "Журнал"
 msgstr "Журнал"
 
 
@@ -2745,6 +2761,10 @@ msgstr "Режим обслуживания успешно отключен"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Режим обслуживания успешно включен"
 msgstr "Режим обслуживания успешно включен"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "Ошибка создания каталога сертификата: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2894,7 +2914,7 @@ msgid "Modify"
 msgstr "Изменить"
 msgstr "Изменить"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "Изменить сертификат"
 msgstr "Изменить сертификат"
 
 
@@ -2929,7 +2949,7 @@ msgstr "Многострочная директива"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2969,10 +2989,18 @@ msgstr "Всего получено"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Всего отправлено"
 msgstr "Всего отправлено"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "Ошибка нового поставщика DNS-проверки: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "Новая установка"
 msgstr "Новая установка"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "Ошибка нового клиента lego: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "Новое имя"
 msgstr "Новое имя"
@@ -2985,11 +3013,15 @@ msgstr "Новый пароль"
 msgid "New Path"
 msgid "New Path"
 msgstr "Новый путь"
 msgstr "Новый путь"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "Ошибка нового транспорта: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "Вышла новая версия"
 msgstr "Вышла новая версия"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3320,6 +3352,10 @@ msgstr "Количество файлов, обрабатываемых мене
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "Количество рабочих процессов"
 msgstr "Количество рабочих процессов"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "Ошибка получения сертификата: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "Получить сертификат"
 msgstr "Получить сертификат"
@@ -3578,7 +3614,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "Пожалуйста, введите допустимый диапазон портов"
 msgstr "Пожалуйста, введите допустимый диапазон портов"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "Пожалуйста, введите хотя бы один домен"
 msgstr "Пожалуйста, введите хотя бы один домен"
 
 
@@ -3776,6 +3812,10 @@ msgstr "Команда проекта"
 msgid "Provider"
 msgid "Provider"
 msgstr "Провайдер"
 msgstr "Провайдер"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "Поставщик не найден: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Прокси"
 msgstr "Прокси"
@@ -3928,7 +3968,7 @@ msgstr "Перезагружается"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "Перезагружается nginx"
 msgstr "Перезагружается nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "Удалить"
 msgstr "Удалить"
@@ -4011,6 +4051,10 @@ msgstr "Переименовано успешно"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "Успешно переименовано"
 msgstr "Успешно переименовано"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "Ошибка обновления сертификата: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -4024,7 +4068,7 @@ msgstr "Ошибка обновления сертификата"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "Успешное обновление сертификата"
 msgstr "Успешное обновление сертификата"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "Успешно обновлено"
 msgstr "Успешно обновлено"
@@ -4138,6 +4182,10 @@ msgstr "Успешно восстановлено"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "Аннулировать"
 msgstr "Аннулировать"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "Ошибка отзыва сертификата: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "Отозвать старый сертификат"
 msgstr "Отозвать старый сертификат"
@@ -4284,7 +4332,7 @@ msgstr "Суббота"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4339,7 +4387,7 @@ msgstr "Не удалось сохранить поток %{name} на %{node}"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Поток %{name} успешно сохранён на %{node}"
 msgstr "Поток %{name} успешно сохранён на %{node}"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Сохранено успешно"
 msgstr "Сохранено успешно"
@@ -4449,7 +4497,7 @@ msgstr "Отправлено"
 msgid "Server"
 msgid "Server"
 msgstr "Сервер"
 msgstr "Сервер"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "Ошибка сервера"
 msgstr "Ошибка сервера"
 
 
@@ -4477,6 +4525,14 @@ msgstr "ServerIdx вне диапазона"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Сессия не найдена"
 msgstr "Сессия не найдена"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "Ошибка установки окружения: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr "Установка флага окружения для отключения поддержки CNAME в lego ошибка: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4589,7 +4645,7 @@ msgstr "Время ожидания между итерациями загруз
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "Время ожидания между итерациями менеджера кеша"
 msgstr "Время ожидания между итерациями менеджера кеша"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "Содержимое SSL-сертификата"
 msgstr "Содержимое SSL-сертификата"
 
 
@@ -4601,15 +4657,15 @@ msgstr "Файл SSL-сертификата должен находиться в
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "Файл SSL-сертификата не найден"
 msgstr "Файл SSL-сертификата не найден"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "Содержимое ключа SSL-сертификата"
 msgstr "Содержимое ключа SSL-сертификата"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "Путь к ключу SSL-сертификата"
 msgstr "Путь к ключу SSL-сертификата"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Путь к SSL сертификату"
 msgstr "Путь к SSL сертификату"
@@ -4846,7 +4902,7 @@ msgstr "Синхронизированные узлы"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "Стратегия синхронизации"
 msgstr "Стратегия синхронизации"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Синхронизировать с"
 msgstr "Синхронизировать с"
 
 
@@ -4922,11 +4978,11 @@ msgstr ""
 "Номер ICP должен содержать только буквы, юникод, цифры, дефисы, тире, "
 "Номер ICP должен содержать только буквы, юникод, цифры, дефисы, тире, "
 "двоеточия и точки."
 "двоеточия и точки."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "Входные данные не являются SSL-сертификатом"
 msgstr "Входные данные не являются SSL-сертификатом"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "Введенные данные не являются ключом SSL сертификата"
 msgstr "Введенные данные не являются ключом SSL сертификата"
 
 
@@ -4965,11 +5021,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "Параметр server_name обязателен"
 msgstr "Параметр server_name обязателен"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "Путь существует, но файл не является приватным ключом"
 
 
@@ -5031,17 +5087,17 @@ msgstr ""
 "вы потеряете пароль и вторые факторы. Если вы не сможете найти эти коды, вы "
 "вы потеряете пароль и вторые факторы. Если вы не сможете найти эти коды, вы "
 "потеряете доступ к своему аккаунту."
 "потеряете доступ к своему аккаунту."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Этот элемент автосертификата недействителен, удалите его.."
 msgstr "Этот элемент автосертификата недействителен, удалите его.."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "Этот сертификат под управлением Nginx UI"
 msgstr "Этот сертификат под управлением Nginx UI"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "Это поле обязательно для заполнения"
 msgstr "Это поле обязательно для заполнения"
 
 
@@ -5521,7 +5577,7 @@ msgstr ""
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "Использовать ли временный путь при записи временных файлов"
 msgstr "Использовать ли временный путь при записи временных файлов"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "Сертификат с подстановочным знаком"
 msgstr "Сертификат с подстановочным знаком"
 
 
@@ -5545,6 +5601,14 @@ msgstr "Рабочие процессы"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "Рабочее пространство"
 msgstr "Рабочее пространство"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "Ошибка записи fullchain.cer: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "Ошибка записи private.key: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 107 - 41
app/src/language/tr_TR/app.po

@@ -181,7 +181,7 @@ msgstr "Yapılandırma Ekle"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "Direktifi Aşağıya Ekleyin"
 msgstr "Direktifi Aşağıya Ekleyin"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "Alan Adı Ekle"
 msgstr "Alan Adı Ekle"
 
 
@@ -232,7 +232,7 @@ msgstr "Tümü"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Tüm Kurtarma Kodları Kullanıldı"
 msgstr "Tüm Kurtarma Kodları Kullanıldı"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -418,7 +418,7 @@ msgstr "\"AutoCert çalışıyor...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"Otomatik Yeniden Başlatma\""
 msgstr "\"Otomatik Yeniden Başlatma\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -713,14 +713,14 @@ msgstr "Sertifika başarıyla yenilendi"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "Sertifika başarıyla iptal edildi"
 msgstr "Sertifika başarıyla iptal edildi"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Sertifika Durumu"
 msgstr[0] "Sertifika Durumu"
 msgstr[1] "Sertifikaların Durumu"
 msgstr[1] "Sertifikaların Durumu"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "Sertifika Türü"
 msgstr "Sertifika Türü"
 
 
@@ -733,6 +733,10 @@ msgstr "Sertifikalar"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "Sertifika Listesi"
 msgstr "Sertifika Listesi"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "Sorgulama hatası: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "Doğrulama Yöntemi"
 msgstr "Doğrulama Yöntemi"
@@ -1215,11 +1219,11 @@ msgstr "Özel cron ifadesi"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "Özel Dizin"
 msgstr "Özel Dizin"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "Özel Alan Adları"
 msgstr "Özel Alan Adları"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "Özel Alan Adı Sertifikası"
 msgstr "Özel Alan Adı Sertifikası"
 
 
@@ -1532,11 +1536,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "Belge"
 msgstr[0] "Belge"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "Alan Adı"
 msgstr "Alan Adı"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 msgstr ""
 "Alan adları listesi boş, %{config} için Otomatik Sertifikayı yeniden açmayı "
 "Alan adları listesi boş, %{config} için Otomatik Sertifikayı yeniden açmayı "
@@ -1741,14 +1745,18 @@ msgstr "Let's Encrypt ile web sitesini şifreleyin"
 msgid "End"
 msgid "End"
 msgstr "Son"
 msgstr "Son"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "Alan adını girin"
 msgstr "Alan adını girin"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "Alan adınızı girin"
 msgstr "Alan adınızı girin"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "Ortam yapılandırması boş"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Ortam değişkenleri temizlendi"
 msgstr "Ortam değişkenleri temizlendi"
@@ -1759,7 +1767,7 @@ msgstr "Ortam değişkenleri temizlendi"
 msgid "Environments"
 msgid "Environments"
 msgstr "Ortamlar"
 msgstr "Ortamlar"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "Hata"
 msgstr "Hata"
@@ -2232,10 +2240,18 @@ msgstr "Kurtarma kodları başarıyla oluşturuldu"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "Hesap kaydı için özel anahtar oluşturuluyor"
 msgstr "Hesap kaydı için özel anahtar oluşturuluyor"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "ACME kullanıcısı alınırken hata: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "Veri alınamadı"
 msgstr "Veri alınamadı"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "DNS kimlik bilgisi alınırken hata: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2355,7 +2371,7 @@ msgid "Import"
 msgstr "İçe Aktar"
 msgstr "İçe Aktar"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "Sertifika İçe Aktar"
 msgstr "Sertifika İçe Aktar"
 
 
@@ -2503,7 +2519,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "Sertifika ver"
 msgstr "Sertifika ver"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "Sertifika Düzenle"
 msgstr "Sertifika Düzenle"
 
 
@@ -2588,8 +2604,8 @@ msgstr "Değiştirmek istemiyorsanız boş bırakın"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "Buna ihtiyacınız yoksa boş bırakın."
 msgstr "Buna ihtiyacınız yoksa boş bırakın."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "Boş bırakmak hiçbir şeyi değiştirmeyecektir"
 msgstr "Boş bırakmak hiçbir şeyi değiştirmeyecektir"
 
 
@@ -2676,7 +2692,7 @@ msgstr "Konum"
 msgid "Locations"
 msgid "Locations"
 msgstr "Konumlar"
 msgstr "Konumlar"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "Günlük"
 msgstr "Günlük"
 
 
@@ -2740,6 +2756,10 @@ msgstr "Bakım modu başarıyla devre dışı bırakıldı"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Bakım modu başarıyla etkinleştirildi"
 msgstr "Bakım modu başarıyla etkinleştirildi"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "Sertifika dizini oluşturma hatası: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2889,7 +2909,7 @@ msgid "Modify"
 msgstr "Değiştir"
 msgstr "Değiştir"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "Sertifikayı Düzenle"
 msgstr "Sertifikayı Düzenle"
 
 
@@ -2924,7 +2944,7 @@ msgstr "Çok Satırlı Yönergeler"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2964,10 +2984,18 @@ msgstr "Toplam Ağ Alımı"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Toplam Ağ Gönderimi"
 msgstr "Toplam Ağ Gönderimi"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "Yeni DNS sorgulama sağlayıcı hatası: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "Yeni Kurulum"
 msgstr "Yeni Kurulum"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "Yeni lego istemci hatası: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "Yeni ad"
 msgstr "Yeni ad"
@@ -2980,11 +3008,15 @@ msgstr "Yeni Şifre"
 msgid "New Path"
 msgid "New Path"
 msgstr "Yeni Yol"
 msgstr "Yeni Yol"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "Yeni taşıma hatası: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "Yeni sürüm yayınlandı"
 msgstr "Yeni sürüm yayınlandı"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3315,6 +3347,10 @@ msgstr "Önbellek yöneticisi tarafından bir seferde işlenen dosya sayısı"
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "Çalışan işlem sayısı"
 msgstr "Çalışan işlem sayısı"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "Sertifika alma hatası: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "Sertifika al"
 msgstr "Sertifika al"
@@ -3572,7 +3608,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "Lütfen geçerli bir port aralığı girin"
 msgstr "Lütfen geçerli bir port aralığı girin"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "Lütfen en az bir alan adı girin"
 msgstr "Lütfen en az bir alan adı girin"
 
 
@@ -3766,6 +3802,10 @@ msgstr "Proje Ekibi"
 msgid "Provider"
 msgid "Provider"
 msgstr "Sağlayıcı"
 msgstr "Sağlayıcı"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "Sağlayıcı bulunamadı: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy"
 msgstr "Proxy"
@@ -3918,7 +3958,7 @@ msgstr "Yeniden Yükleniyor"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "nginx yeniden yükleniyor"
 msgstr "nginx yeniden yükleniyor"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "Kaldır"
 msgstr "Kaldır"
@@ -4011,6 +4051,10 @@ msgstr "Başarıyla yeniden adlandırıldı"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "Başarıyla yeniden adlandırıldı"
 msgstr "Başarıyla yeniden adlandırıldı"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "Sertifika yenileme hatası: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -4024,7 +4068,7 @@ msgstr "Sertifika Yenileme Hatası"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "Sertifika Yenileme Başarılı"
 msgstr "Sertifika Yenileme Başarılı"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "Başarıyla yenilendi"
 msgstr "Başarıyla yenilendi"
@@ -4137,6 +4181,10 @@ msgstr "Başarıyla geri yüklendi"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "İptal et"
 msgstr "İptal et"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "Sertifika iptal hatası: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "Eski Sertifikayı İptal Et"
 msgstr "Eski Sertifikayı İptal Et"
@@ -4283,7 +4331,7 @@ msgstr "Cumartesi"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4338,7 +4386,7 @@ msgstr "Akış %{name}, %{node} üzerine kaydedilemedi"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Akış %{name}, %{node} üzerine başarıyla kaydedildi"
 msgstr "Akış %{name}, %{node} üzerine başarıyla kaydedildi"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Başarıyla kaydedildi"
 msgstr "Başarıyla kaydedildi"
@@ -4446,7 +4494,7 @@ msgstr "Gönder"
 msgid "Server"
 msgid "Server"
 msgstr "Sunucu"
 msgstr "Sunucu"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "Sunucu hatası"
 msgstr "Sunucu hatası"
 
 
@@ -4474,6 +4522,16 @@ msgstr "ServerIdx aralık dışında"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Oturum bulunamadı"
 msgstr "Oturum bulunamadı"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "Ortam ayarlama hatası: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr ""
+"Lego CNAME desteğini devre dışı bırakmak için ortam bayrağı ayarlama "
+"hatası: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4586,7 +4644,7 @@ msgstr "Önbellek yükleyici tekrarları arasındaki bekleme süresi"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "Önbellek yöneticisi yinelemeleri arasındaki bekleme süresi"
 msgstr "Önbellek yöneticisi yinelemeleri arasındaki bekleme süresi"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "SSL Sertifika İçeriği"
 msgstr "SSL Sertifika İçeriği"
 
 
@@ -4598,15 +4656,15 @@ msgstr "SSL sertifika dosyası Nginx yapılandırma dizini altında olmalıdır:
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "SSL sertifika dosyası bulunamadı"
 msgstr "SSL sertifika dosyası bulunamadı"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "SSL Sertifika Anahtarı İçeriği"
 msgstr "SSL Sertifika Anahtarı İçeriği"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "SSL Sertifika Anahtar Yolu"
 msgstr "SSL Sertifika Anahtar Yolu"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL Sertifika Yolu"
 msgstr "SSL Sertifika Yolu"
@@ -4845,7 +4903,7 @@ msgstr "Senkronizasyon Düğümleri"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "Senkronizasyon stratejisi"
 msgstr "Senkronizasyon stratejisi"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Senkronize Et"
 msgstr "Senkronize Et"
 
 
@@ -4921,11 +4979,11 @@ msgstr ""
 "ICP Numarası yalnızca harfler, unicode, sayılar, kısa çizgiler, uzun "
 "ICP Numarası yalnızca harfler, unicode, sayılar, kısa çizgiler, uzun "
 "çizgiler, iki nokta üst üste ve noktalar içermelidir."
 "çizgiler, iki nokta üst üste ve noktalar içermelidir."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "Girdi bir SSL Sertifikası değil"
 msgstr "Girdi bir SSL Sertifikası değil"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "Girdi bir SSL Sertifika Anahtarı değil"
 msgstr "Girdi bir SSL Sertifika Anahtarı değil"
 
 
@@ -4964,11 +5022,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "server_name parametresi gereklidir"
 msgstr "server_name parametresi gereklidir"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 msgid "The path exists, but the file is not a certificate"
 msgid "The path exists, but the file is not a certificate"
 msgstr "Yol mevcut, ancak dosya bir sertifika değil"
 msgstr "Yol mevcut, ancak dosya bir sertifika değil"
 
 
-#: src/views/certificate/CertificateEditor.vue:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "Yol mevcut, ancak dosya bir özel anahtar değil"
 msgstr "Yol mevcut, ancak dosya bir özel anahtar değil"
 
 
@@ -5030,17 +5088,17 @@ msgstr ""
 "hesabınıza erişmek için son çaredir. Bu kodları bulamazsanız, hesabınıza "
 "hesabınıza erişmek için son çaredir. Bu kodları bulamazsanız, hesabınıza "
 "erişimi kaybedersiniz."
 "erişimi kaybedersiniz."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Bu Otomatik Sertifika öğesi geçersiz, lütfen kaldırın."
 msgstr "Bu Otomatik Sertifika öğesi geçersiz, lütfen kaldırın."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "Bu sertifika Nginx UI tarafından yönetilmektedir"
 msgstr "Bu sertifika Nginx UI tarafından yönetilmektedir"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "Bu alan zorunludur"
 msgstr "Bu alan zorunludur"
 
 
@@ -5520,7 +5578,7 @@ msgstr ""
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "Geçici dosyalar yazılırken geçici bir yol kullanılıp kullanılmayacağı"
 msgstr "Geçici dosyalar yazılırken geçici bir yol kullanılıp kullanılmayacağı"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "Wildcard Sertifikası"
 msgstr "Wildcard Sertifikası"
 
 
@@ -5544,6 +5602,14 @@ msgstr "Çalışanlar"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "Çalışma alanı"
 msgstr "Çalışma alanı"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "fullchain.cer yazma hatası: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "private.key yazma hatası: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 107 - 41
app/src/language/uk_UA/app.po

@@ -185,7 +185,7 @@ msgstr "Додати конфігурацію"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "Додайте директиву нижче"
 msgstr "Додайте директиву нижче"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "Додати домен"
 msgstr "Додати домен"
 
 
@@ -236,7 +236,7 @@ msgstr "Усі"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Усі коди відновлення використано"
 msgstr "Усі коди відновлення використано"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -422,7 +422,7 @@ msgstr "\"AutoCert виконується...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"Автоматичний перезапуск\""
 msgstr "\"Автоматичний перезапуск\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -724,13 +724,13 @@ msgstr "Сертифікат успішно поновлено"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "Сертифікат успішно відкликано"
 msgstr "Сертифікат успішно відкликано"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Стан сертифіката"
 msgstr[0] "Стан сертифіката"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "Тип сертифіката"
 msgstr "Тип сертифіката"
 
 
@@ -743,6 +743,10 @@ msgstr "Сертифікати"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "Список сертифікатів"
 msgstr "Список сертифікатів"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "Помилка перевірки: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "Метод перевірки"
 msgstr "Метод перевірки"
@@ -1257,11 +1261,11 @@ msgstr "Спеціальний cron вираз"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "Спеціальний каталог"
 msgstr "Спеціальний каталог"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "Користувацькі домени"
 msgstr "Користувацькі домени"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "Сертифікат користувацьких доменів"
 msgstr "Сертифікат користувацьких доменів"
 
 
@@ -1608,11 +1612,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "Документ"
 msgstr[0] "Документ"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "Домен"
 msgstr "Домен"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "Список доменів порожній, спробуйте знову відкрити Auto Cert для %{config}"
 msgstr "Список доменів порожній, спробуйте знову відкрити Auto Cert для %{config}"
 
 
@@ -1815,14 +1819,18 @@ msgstr "Зашифрувати вебсайт за допомогою Let's Encr
 msgid "End"
 msgid "End"
 msgstr "Кінець"
 msgstr "Кінець"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "Введіть ім’я домену"
 msgstr "Введіть ім’я домену"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "Введіть ваш домен"
 msgstr "Введіть ваш домен"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "Конфігурація середовища порожня"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Змінні середовища очищено"
 msgstr "Змінні середовища очищено"
@@ -1833,7 +1841,7 @@ msgstr "Змінні середовища очищено"
 msgid "Environments"
 msgid "Environments"
 msgstr "Середовища"
 msgstr "Середовища"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "Помилка"
 msgstr "Помилка"
@@ -2306,10 +2314,18 @@ msgstr "Коди відновлення успішно згенеровано"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "Генерація приватного ключа для реєстрації облікового запису"
 msgstr "Генерація приватного ключа для реєстрації облікового запису"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "Помилка отримання користувача ACME: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "Не вдалося отримати дані"
 msgstr "Не вдалося отримати дані"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "Помилка отримання облікових даних DNS: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2425,7 +2441,7 @@ msgid "Import"
 msgstr "Імпорт"
 msgstr "Імпорт"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "Імпортувати сертифікат"
 msgstr "Імпортувати сертифікат"
 
 
@@ -2573,7 +2589,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "Видати сертифікат"
 msgstr "Видати сертифікат"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "Видати сертифікат"
 msgstr "Видати сертифікат"
 
 
@@ -2658,8 +2674,8 @@ msgstr "Залиште порожнім, якщо не хочете змінюв
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "Залиште порожнім, якщо вам це не потрібно."
 msgstr "Залиште порожнім, якщо вам це не потрібно."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "Залишити порожнім — нічого не зміниться"
 msgstr "Залишити порожнім — нічого не зміниться"
 
 
@@ -2746,7 +2762,7 @@ msgstr "Розташування"
 msgid "Locations"
 msgid "Locations"
 msgstr "Розташування"
 msgstr "Розташування"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "Журнал"
 msgstr "Журнал"
 
 
@@ -2811,6 +2827,10 @@ msgstr "Режим обслуговування успішно вимкнено"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Режим обслуговування успішно ввімкнено"
 msgstr "Режим обслуговування успішно ввімкнено"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "Помилка створення каталогу сертифіката: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2960,7 +2980,7 @@ msgid "Modify"
 msgstr "Змінити"
 msgstr "Змінити"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "Редагувати сертифікат"
 msgstr "Редагувати сертифікат"
 
 
@@ -2995,7 +3015,7 @@ msgstr "Багаторядкова директива"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -3035,10 +3055,18 @@ msgstr "Загальний обсяг отриманих мережевих да
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Загальна кількість відправлених даних"
 msgstr "Загальна кількість відправлених даних"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "Помилка нового постачальника DNS-виклику: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "Нове встановлення"
 msgstr "Нове встановлення"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "Помилка нового клієнта lego: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "Нова назва"
 msgstr "Нова назва"
@@ -3051,11 +3079,15 @@ msgstr "Новий пароль"
 msgid "New Path"
 msgid "New Path"
 msgstr "Новий шлях"
 msgstr "Новий шлях"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "Помилка нового транспорту: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "Випущено нову версію"
 msgstr "Випущено нову версію"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3386,6 +3418,10 @@ msgstr "Кількість файлів, які обробляються мен
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "Кількість робочих процесів"
 msgstr "Кількість робочих процесів"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "Помилка отримання сертифіката: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "Отримати сертифікат"
 msgstr "Отримати сертифікат"
@@ -3644,7 +3680,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "Будь ласка, введіть дійсний діапазон портів"
 msgstr "Будь ласка, введіть дійсний діапазон портів"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "Будь ласка, введіть хоча б один домен"
 msgstr "Будь ласка, введіть хоча б один домен"
 
 
@@ -3838,6 +3874,10 @@ msgstr "Команда проекту"
 msgid "Provider"
 msgid "Provider"
 msgstr "Провайдер"
 msgstr "Провайдер"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "Постачальника не знайдено: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Проксі"
 msgstr "Проксі"
@@ -3993,7 +4033,7 @@ msgstr "Перезавантаження"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "Перезавантаження nginx"
 msgstr "Перезавантаження nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "Видалити"
 msgstr "Видалити"
@@ -4076,6 +4116,10 @@ msgstr "Успішно перейменовано"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "Успішно перейменовано"
 msgstr "Успішно перейменовано"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "Помилка поновлення сертифіката: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -4089,7 +4133,7 @@ msgstr "Помилка поновлення сертифіката"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "Успішне поновлення сертифіката"
 msgstr "Успішне поновлення сертифіката"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "Оновлення успішне"
 msgstr "Оновлення успішне"
@@ -4205,6 +4249,10 @@ msgstr "Успішно відновлено"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "Анулювати"
 msgstr "Анулювати"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "Помилка скасування сертифіката: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "Відкликати старий сертифікат"
 msgstr "Відкликати старий сертифікат"
@@ -4351,7 +4399,7 @@ msgstr "Субота"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4406,7 +4454,7 @@ msgstr "Не вдалося зберегти потік %{name} на %{node}"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Потік %{name} успішно збережено на %{node}"
 msgstr "Потік %{name} успішно збережено на %{node}"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Успішно збережено"
 msgstr "Успішно збережено"
@@ -4516,7 +4564,7 @@ msgstr "Надіслати"
 msgid "Server"
 msgid "Server"
 msgstr "Сервер"
 msgstr "Сервер"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "Помилка сервера"
 msgstr "Помилка сервера"
 
 
@@ -4544,6 +4592,16 @@ msgstr "ServerIdx поза діапазоном"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Сесію не знайдено"
 msgstr "Сесію не знайдено"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "Помилка встановлення середовища: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr ""
+"Встановити прапорець оточення для вимкнення підтримки CNAME у lego помилка: "
+"{0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4658,7 +4716,7 @@ msgstr "Час очікування між ітераціями завантаж
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "Час очікування між ітераціями менеджера кешу"
 msgstr "Час очікування між ітераціями менеджера кешу"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "Вміст SSL-сертифіката"
 msgstr "Вміст SSL-сертифіката"
 
 
@@ -4670,15 +4728,15 @@ msgstr "Файл SSL-сертифіката повинен знаходитис
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "Файл SSL-сертифіката не знайдено"
 msgstr "Файл SSL-сертифіката не знайдено"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "Вміст ключа SSL-сертифіката"
 msgstr "Вміст ключа SSL-сертифіката"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "Шлях до ключа SSL-сертифіката"
 msgstr "Шлях до ключа SSL-сертифіката"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Шлях до SSL-сертифікату"
 msgstr "Шлях до SSL-сертифікату"
@@ -4915,7 +4973,7 @@ msgstr "Синхронізовані вузли"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "Стратегія синхронізації"
 msgstr "Стратегія синхронізації"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Синхронізувати з"
 msgstr "Синхронізувати з"
 
 
@@ -4991,11 +5049,11 @@ msgstr ""
 "Номер ICP повинен містити лише літери, unicode, цифри, дефіси, тире, "
 "Номер ICP повинен містити лише літери, unicode, цифри, дефіси, тире, "
 "двокрапки та крапки."
 "двокрапки та крапки."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "Введені дані не є SSL-сертифікатом"
 msgstr "Введені дані не є SSL-сертифікатом"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "Введений текст не є ключем SSL-сертифіката"
 msgstr "Введений текст не є ключем SSL-сертифіката"
 
 
@@ -5034,11 +5092,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "Параметр server_name є обов'язковим"
 msgstr "Параметр server_name є обов'язковим"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "Шлях існує, але файл не є приватним ключем"
 
 
@@ -5100,19 +5158,19 @@ msgstr ""
 "втрати пароля та других факторів. Якщо ви не зможете знайти ці коди, ви "
 "втрати пароля та других факторів. Якщо ви не зможете знайти ці коди, ви "
 "втратите доступ до свого облікового запису."
 "втратите доступ до свого облікового запису."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr ""
 msgstr ""
 "Цей елемент автоматичного сертифікату є недійсним, будь ласка, видаліть "
 "Цей елемент автоматичного сертифікату є недійсним, будь ласка, видаліть "
 "його."
 "його."
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "Цей сертифікат керується Nginx UI"
 msgstr "Цей сертифікат керується Nginx UI"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "Це поле обов'язкове"
 msgstr "Це поле обов'язкове"
 
 
@@ -5589,7 +5647,7 @@ msgstr ""
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "Чи використовувати тимчасовий шлях під час запису тимчасових файлів"
 msgstr "Чи використовувати тимчасовий шлях під час запису тимчасових файлів"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "Сертифікат зі знаком підстановки"
 msgstr "Сертифікат зі знаком підстановки"
 
 
@@ -5613,6 +5671,14 @@ msgstr "Робочі процеси"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "Робоча область"
 msgstr "Робоча область"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "Помилка запису fullchain.cer: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "Помилка запису private.key: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 105 - 41
app/src/language/vi_VN/app.po

@@ -176,7 +176,7 @@ msgstr "Thêm cấu hình"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "Thêm Directive"
 msgstr "Thêm Directive"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "Thêm tên miền"
 msgstr "Thêm tên miền"
 
 
@@ -227,7 +227,7 @@ msgstr "Tất cả"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Tất cả mã khôi phục đã được sử dụng"
 msgstr "Tất cả mã khôi phục đã được sử dụng"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -409,7 +409,7 @@ msgstr "\"AutoCert đang chạy...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"Khởi động lại Tự động\""
 msgstr "\"Khởi động lại Tự động\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -704,13 +704,13 @@ msgstr "Gia hạn chứng chỉ thành công"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "Hủy chứng chỉ thành công"
 msgstr "Hủy chứng chỉ thành công"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "Trạng thái chứng chỉ"
 msgstr[0] "Trạng thái chứng chỉ"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "Loại chứng chỉ"
 msgstr "Loại chứng chỉ"
 
 
@@ -723,6 +723,10 @@ msgstr "Chứng chỉ"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "Danh sách chứng chỉ"
 msgstr "Danh sách chứng chỉ"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "Lỗi thử thách: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "Phương pháp xác thực"
 msgstr "Phương pháp xác thực"
@@ -1197,11 +1201,11 @@ msgstr "Biểu thức cron tùy chỉnh"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "Thư mục tùy chỉnh"
 msgstr "Thư mục tùy chỉnh"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "Tên miền tùy chỉnh"
 msgstr "Tên miền tùy chỉnh"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "Chứng chỉ Tên miền Tùy chỉnh"
 msgstr "Chứng chỉ Tên miền Tùy chỉnh"
 
 
@@ -1512,11 +1516,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "Tài liệu"
 msgstr[0] "Tài liệu"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "Tên miền"
 msgstr "Tên miền"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
 msgstr ""
 "Danh sách tên miền rỗng, hãy thử mở lại chức năng Tạo chứng chỉ tự động cho "
 "Danh sách tên miền rỗng, hãy thử mở lại chức năng Tạo chứng chỉ tự động cho "
@@ -1720,14 +1724,18 @@ msgstr "Bảo mật trang web với Let's Encrypt"
 msgid "End"
 msgid "End"
 msgstr "Kết thúc"
 msgstr "Kết thúc"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "Nhập tên miền"
 msgstr "Nhập tên miền"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "Nhập tên miền của bạn"
 msgstr "Nhập tên miền của bạn"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "Cấu hình môi trường trống"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Đã dọn dẹp biến môi trường"
 msgstr "Đã dọn dẹp biến môi trường"
@@ -1738,7 +1746,7 @@ msgstr "Đã dọn dẹp biến môi trường"
 msgid "Environments"
 msgid "Environments"
 msgstr "Môi trường"
 msgstr "Môi trường"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "Lỗi"
 msgstr "Lỗi"
@@ -2211,10 +2219,18 @@ msgstr "Tạo mã khôi phục thành công"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "Tạo khóa riêng để đăng ký tài khoản"
 msgstr "Tạo khóa riêng để đăng ký tài khoản"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "Lỗi khi lấy người dùng ACME: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "Không thể lấy dữ liệu"
 msgstr "Không thể lấy dữ liệu"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "Lỗi khi lấy thông tin xác thực DNS: {0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2329,7 +2345,7 @@ msgid "Import"
 msgstr "Nhập"
 msgstr "Nhập"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "Nhập chứng chỉ"
 msgstr "Nhập chứng chỉ"
 
 
@@ -2477,7 +2493,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "Cấp chứng chỉ"
 msgstr "Cấp chứng chỉ"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "Cấp chứng chỉ"
 msgstr "Cấp chứng chỉ"
 
 
@@ -2562,8 +2578,8 @@ msgstr "Để trống nếu không muốn thay đổi"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "Để trống nếu bạn không cần cái này."
 msgstr "Để trống nếu bạn không cần cái này."
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "Để trống sẽ không thay đổi bất cứ điều gì"
 msgstr "Để trống sẽ không thay đổi bất cứ điều gì"
 
 
@@ -2650,7 +2666,7 @@ msgstr "Location"
 msgid "Locations"
 msgid "Locations"
 msgstr "Locations"
 msgstr "Locations"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "Nhật ký"
 msgstr "Nhật ký"
 
 
@@ -2715,6 +2731,10 @@ msgstr "Đã tắt chế độ bảo trì thành công"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Đã bật chế độ bảo trì thành công"
 msgstr "Đã bật chế độ bảo trì thành công"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "Lỗi tạo thư mục chứng chỉ: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2864,7 +2884,7 @@ msgid "Modify"
 msgstr "Sửa đổi"
 msgstr "Sửa đổi"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "Sửa đổi chứng chỉ"
 msgstr "Sửa đổi chứng chỉ"
 
 
@@ -2899,7 +2919,7 @@ msgstr "Chỉ thị nhiều dòng"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2939,10 +2959,18 @@ msgstr "Tổng lưu lượng mạng đã nhận"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "Tổng lưu lượng mạng đã gửi"
 msgstr "Tổng lưu lượng mạng đã gửi"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "Lỗi nhà cung cấp thử thách DNS mới: {0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "Cài đặt mới"
 msgstr "Cài đặt mới"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "Lỗi máy khách lego mới: {0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "Tên mới"
 msgstr "Tên mới"
@@ -2955,11 +2983,15 @@ msgstr "Mật khẩu mới"
 msgid "New Path"
 msgid "New Path"
 msgstr "Đường dẫn mới"
 msgstr "Đường dẫn mới"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "Lỗi vận chuyển mới: {0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "Đã có phiên bản mới"
 msgstr "Đã có phiên bản mới"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3288,6 +3320,10 @@ msgstr "Số lượng tệp được xử lý bởi trình quản lý bộ nhớ
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "Số lượng tiến trình worker"
 msgstr "Số lượng tiến trình worker"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "Lỗi khi lấy chứng chỉ: {0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "Nhận chứng chỉ"
 msgstr "Nhận chứng chỉ"
@@ -3546,7 +3582,7 @@ msgstr ""
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "Vui lòng nhập một phạm vi cổng hợp lệ"
 msgstr "Vui lòng nhập một phạm vi cổng hợp lệ"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "Vui lòng nhập ít nhất một tên miền"
 msgstr "Vui lòng nhập ít nhất một tên miền"
 
 
@@ -3731,6 +3767,10 @@ msgstr "Đội ngũ phát triển"
 msgid "Provider"
 msgid "Provider"
 msgstr "Nhà cung cấp"
 msgstr "Nhà cung cấp"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "Không tìm thấy nhà cung cấp: {0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "Proxy"
 msgstr "Proxy"
@@ -3883,7 +3923,7 @@ msgstr "Đang tải lại"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "Tải lại nginx"
 msgstr "Tải lại nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "Xóa"
 msgstr "Xóa"
@@ -3966,6 +4006,10 @@ msgstr "Đổi tên thành công"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "Đổi tên thành công"
 msgstr "Đổi tên thành công"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "Lỗi gia hạn chứng chỉ: {0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -3979,7 +4023,7 @@ msgstr "Lỗi gia hạn chứng chỉ"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "Gia hạn chứng chỉ thành công"
 msgstr "Gia hạn chứng chỉ thành công"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "Gia hạn thành công"
 msgstr "Gia hạn thành công"
@@ -4093,6 +4137,10 @@ msgstr "Khôi phục thành công"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "Thu hồi"
 msgstr "Thu hồi"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "Lỗi thu hồi chứng chỉ: {0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "Thu hồi chứng chỉ cũ"
 msgstr "Thu hồi chứng chỉ cũ"
@@ -4239,7 +4287,7 @@ msgstr "Thứ Bảy"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4294,7 +4342,7 @@ msgstr "Lưu luồng %{name} vào %{node} thất bại"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Đã lưu luồng %{name} vào %{node} thành công"
 msgstr "Đã lưu luồng %{name} vào %{node} thành công"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "Lưu thành công"
 msgstr "Lưu thành công"
@@ -4402,7 +4450,7 @@ msgstr "Gửi"
 msgid "Server"
 msgid "Server"
 msgstr "Máy chủ"
 msgstr "Máy chủ"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "Lỗi máy chủ"
 msgstr "Lỗi máy chủ"
 
 
@@ -4430,6 +4478,14 @@ msgstr "ServerIdx nằm ngoài phạm vi"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "Không tìm thấy phiên"
 msgstr "Không tìm thấy phiên"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "Lỗi thiết lập môi trường: {0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr "Đặt cờ môi trường để tắt hỗ trợ CNAME của lego lỗi: {0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4542,7 +4598,7 @@ msgstr "Thời gian chờ giữa các lần lặp của bộ nạp bộ đệm"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "Thời gian chờ giữa các lần lặp của trình quản lý bộ nhớ đệm"
 msgstr "Thời gian chờ giữa các lần lặp của trình quản lý bộ nhớ đệm"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "Nội dung chứng chỉ SSL"
 msgstr "Nội dung chứng chỉ SSL"
 
 
@@ -4554,15 +4610,15 @@ msgstr "Tệp chứng chỉ SSL phải nằm trong thư mục cấu hình Nginx:
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "Không tìm thấy tệp chứng chỉ SSL"
 msgstr "Không tìm thấy tệp chứng chỉ SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "Nội dung khóa chứng chỉ SSL"
 msgstr "Nội dung khóa chứng chỉ SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "Đường dẫn khóa chứng chỉ SSL"
 msgstr "Đường dẫn khóa chứng chỉ SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "Đường dẫn chứng chỉ SSL"
 msgstr "Đường dẫn chứng chỉ SSL"
@@ -4799,7 +4855,7 @@ msgstr "Nút đồng bộ"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "Chiến lược đồng bộ hóa"
 msgstr "Chiến lược đồng bộ hóa"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Đồng bộ tới"
 msgstr "Đồng bộ tới"
 
 
@@ -4875,11 +4931,11 @@ msgstr ""
 "Số ICP chỉ được chứa chữ cái, unicode, số, dấu gạch ngang, dấu gạch dài, "
 "Số ICP chỉ được chứa chữ cái, unicode, số, dấu gạch ngang, dấu gạch dài, "
 "dấu hai chấm và dấu chấm."
 "dấu hai chấm và dấu chấm."
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "Đầu vào không phải là Chứng chỉ SSL"
 msgstr "Đầu vào không phải là Chứng chỉ SSL"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "Đầu vào không phải là Khóa Chứng chỉ SSL"
 msgstr "Đầu vào không phải là Khóa Chứng chỉ SSL"
 
 
@@ -4918,11 +4974,11 @@ msgstr ""
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "Tham số của server_name là bắt buộc"
 msgstr "Tham số của server_name là bắt buộc"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 msgid "The path exists, but the file is not a certificate"
 msgid "The path exists, but the file is not a certificate"
 msgstr "Đường dẫn tồn tại, nhưng tệp không phải là chứng chỉ"
 msgstr "Đường dẫn tồn tại, nhưng tệp không phải là chứng chỉ"
 
 
-#: src/views/certificate/CertificateEditor.vue:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "Đường dẫn tồn tại, nhưng tệp không phải là khóa riêng tư"
 msgstr "Đường dẫn tồn tại, nhưng tệp không phải là khóa riêng tư"
 
 
@@ -4984,17 +5040,17 @@ msgstr ""
 "trường hợp bạn mất mật khẩu và các yếu tố xác thực thứ hai. Nếu bạn không "
 "trường hợp bạn mất mật khẩu và các yếu tố xác thực thứ hai. Nếu bạn không "
 "thể tìm thấy những mã này, bạn sẽ mất quyền truy cập vào tài khoản."
 "thể tìm thấy những mã này, bạn sẽ mất quyền truy cập vào tài khoản."
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "Mục Chứng chỉ tự động này không hợp lệ, vui lòng xóa nó"
 msgstr "Mục Chứng chỉ tự động này không hợp lệ, vui lòng xóa nó"
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "Chứng chỉ này được quản lý bởi Nginx UI"
 msgstr "Chứng chỉ này được quản lý bởi Nginx UI"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "Trường này là bắt buộc"
 msgstr "Trường này là bắt buộc"
 
 
@@ -5471,7 +5527,7 @@ msgstr "Khi bạn tạo mã khôi phục mới, bạn phải tải xuống hoặ
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "Có sử dụng đường dẫn tạm thời khi ghi các tập tin tạm thời hay không"
 msgstr "Có sử dụng đường dẫn tạm thời khi ghi các tập tin tạm thời hay không"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "Chứng Chỉ Wildcard"
 msgstr "Chứng Chỉ Wildcard"
 
 
@@ -5495,6 +5551,14 @@ msgstr "Công nhân"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "Không gian làm việc"
 msgstr "Không gian làm việc"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "Lỗi ghi fullchain.cer: {0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "Lỗi ghi private.key: {0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"

+ 105 - 44
app/src/language/zh_CN/app.po

@@ -180,7 +180,7 @@ msgstr "添加配置"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "在下面添加指令"
 msgstr "在下面添加指令"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "添加域名"
 msgstr "添加域名"
 
 
@@ -231,7 +231,7 @@ msgstr "全部"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "所有恢复代码已用完"
 msgstr "所有恢复代码已用完"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -411,7 +411,7 @@ msgstr "AutoCert 正在运行..."
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"自动重启\""
 msgstr "\"自动重启\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -702,13 +702,13 @@ msgstr "证书更新成功"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "证书撤销成功"
 msgstr "证书撤销成功"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "证书状态"
 msgstr[0] "证书状态"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "证书类型"
 msgstr "证书类型"
 
 
@@ -721,6 +721,10 @@ msgstr "证书"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "证书列表"
 msgstr "证书列表"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "验证错误:{0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "挑战方法"
 msgstr "挑战方法"
@@ -1175,11 +1179,11 @@ msgstr "自定义 cron 表达式"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "自定义目录"
 msgstr "自定义目录"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "自定义域名"
 msgstr "自定义域名"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "自定义域名证书"
 msgstr "自定义域名证书"
 
 
@@ -1490,11 +1494,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "文档"
 msgstr[0] "文档"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "域名"
 msgstr "域名"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "域名列表为空,请尝试为 %{config} 重新打开证书自动续期"
 msgstr "域名列表为空,请尝试为 %{config} 重新打开证书自动续期"
 
 
@@ -1694,14 +1698,18 @@ msgstr "用 Let's Encrypt 对网站进行加密"
 msgid "End"
 msgid "End"
 msgstr "结束"
 msgstr "结束"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "输入域名"
 msgstr "输入域名"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "输入您的域名"
 msgstr "输入您的域名"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "环境配置为空"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "环境变量已清理"
 msgstr "环境变量已清理"
@@ -1712,7 +1720,7 @@ msgstr "环境变量已清理"
 msgid "Environments"
 msgid "Environments"
 msgstr "环境"
 msgstr "环境"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "错误"
 msgstr "错误"
@@ -2183,10 +2191,18 @@ msgstr "成功生成恢复代码"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "正在生成私钥用于注册账户"
 msgstr "正在生成私钥用于注册账户"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "获取 ACME 用户错误: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "获取数据失败"
 msgstr "获取数据失败"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "获取 DNS 凭证错误:{0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2297,7 +2313,7 @@ msgid "Import"
 msgstr "导入"
 msgstr "导入"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "导入证书"
 msgstr "导入证书"
 
 
@@ -2441,7 +2457,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "签发证书"
 msgstr "签发证书"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "签发证书"
 msgstr "签发证书"
 
 
@@ -2524,8 +2540,8 @@ msgstr "如果不想修改,请留空"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "如果不需要,请留空。"
 msgstr "如果不需要,请留空。"
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "留空不做任何更改"
 msgstr "留空不做任何更改"
 
 
@@ -2612,7 +2628,7 @@ msgstr "Location"
 msgid "Locations"
 msgid "Locations"
 msgstr "Locations"
 msgstr "Locations"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "日志"
 msgstr "日志"
 
 
@@ -2672,6 +2688,10 @@ msgstr "成功禁用维护模式"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "成功启用维护模式"
 msgstr "成功启用维护模式"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "创建证书目录错误:{0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2819,7 +2839,7 @@ msgid "Modify"
 msgstr "修改"
 msgstr "修改"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "修改证书"
 msgstr "修改证书"
 
 
@@ -2854,7 +2874,7 @@ msgstr "多行指令"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2894,10 +2914,18 @@ msgstr "下载流量"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "上传流量"
 msgstr "上传流量"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "新建DNS验证提供程序错误:{0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "新安装"
 msgstr "新安装"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "新建 lego 客户端错误:{0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "新名称"
 msgstr "新名称"
@@ -2910,11 +2938,15 @@ msgstr "新密码"
 msgid "New Path"
 msgid "New Path"
 msgstr "新路径"
 msgstr "新路径"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "新建传输错误:{0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "新版本发布"
 msgstr "新版本发布"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3239,6 +3271,10 @@ msgstr "缓存管理器一次处理的文件数量"
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "工作进程数量"
 msgstr "工作进程数量"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "获取证书错误:{0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "获取证书"
 msgstr "获取证书"
@@ -3487,7 +3523,7 @@ msgstr "请为您要创建的 Passkey 输入一个名称,然后单击下面的
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "请输入有效的端口范围"
 msgstr "请输入有效的端口范围"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "请输入至少一个域名"
 msgstr "请输入至少一个域名"
 
 
@@ -3668,6 +3704,10 @@ msgstr "项目团队"
 msgid "Provider"
 msgid "Provider"
 msgstr "提供商"
 msgstr "提供商"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "未找到提供商:{0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "代理"
 msgstr "代理"
@@ -3816,7 +3856,7 @@ msgstr "重载中"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "正在重载 Nginx"
 msgstr "正在重载 Nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "删除"
 msgstr "删除"
@@ -3899,6 +3939,10 @@ msgstr "重命名成功"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "重命名成功"
 msgstr "重命名成功"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "续签证书错误:{0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -3912,7 +3956,7 @@ msgstr "证书续期错误"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "证书续期成功"
 msgstr "证书续期成功"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "更新成功"
 msgstr "更新成功"
@@ -4023,6 +4067,10 @@ msgstr "恢复成功"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "撤销"
 msgstr "撤销"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "吊销证书错误:{0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "撤销旧证书"
 msgstr "撤销旧证书"
@@ -4167,7 +4215,7 @@ msgstr "星期六"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4222,7 +4270,7 @@ msgstr "部署 %{name} 到 %{node} 失败"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "保存成功"
 msgstr "保存成功"
@@ -4330,7 +4378,7 @@ msgstr "上传"
 msgid "Server"
 msgid "Server"
 msgstr "服务器"
 msgstr "服务器"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "服务器错误"
 msgstr "服务器错误"
 
 
@@ -4358,6 +4406,14 @@ msgstr "Server Index 超出范围"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "未找到会话"
 msgstr "未找到会话"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "设置环境错误:{0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr "设置环境标志以禁用 lego CNAME 支持错误:{0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4468,7 +4524,7 @@ msgstr "缓存加载器迭代之间的休眠时间"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "缓存管理器迭代之间的休眠时间"
 msgstr "缓存管理器迭代之间的休眠时间"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "SSL 证书内容"
 msgstr "SSL 证书内容"
 
 
@@ -4480,15 +4536,15 @@ msgstr "SSL 证书文件必须位于 Nginx 配置目录下:{0}"
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "未找到 SSL 证书文件"
 msgstr "未找到 SSL 证书文件"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "SSL 证书密钥内容"
 msgstr "SSL 证书密钥内容"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "SSL证书密钥路径"
 msgstr "SSL证书密钥路径"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL证书路径"
 msgstr "SSL证书路径"
@@ -4719,7 +4775,7 @@ msgstr "同步节点"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "同步策略"
 msgstr "同步策略"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "同步到"
 msgstr "同步到"
 
 
@@ -4790,11 +4846,11 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr "ICP 备案号只能包含字母、单码、数字、连字符、破折号、冒号和点。"
 msgstr "ICP 备案号只能包含字母、单码、数字、连字符、破折号、冒号和点。"
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "输入的内容不是 SSL 证书"
 msgstr "输入的内容不是 SSL 证书"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "输入的内容不是 SSL 证书密钥"
 msgstr "输入的内容不是 SSL 证书密钥"
 
 
@@ -4825,11 +4881,11 @@ msgstr "节点名称只能包含字母、统一码、数字、连字符、破折
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "必须为 server_name 指令指明参数"
 msgstr "必须为 server_name 指令指明参数"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "路径存在,但文件不是私钥"
 
 
@@ -4881,17 +4937,17 @@ msgid ""
 "lose access to your account."
 "lose access to your account."
 msgstr "这些代码是在您丢失密码和双重身份验证方式时,访问账户的最后手段。如果找不到这些代码,您将无法再访问您的账户。"
 msgstr "这些代码是在您丢失密码和双重身份验证方式时,访问账户的最后手段。如果找不到这些代码,您将无法再访问您的账户。"
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "这个证书自动续期项目是无效的,请删除。"
 msgstr "这个证书自动续期项目是无效的,请删除。"
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "该证书由 Nginx UI 托管"
 msgstr "该证书由 Nginx UI 托管"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "此字段必填"
 msgstr "此字段必填"
 
 
@@ -5332,7 +5388,7 @@ msgstr "当您生成新的恢复代码时,必须下载或打印新的代码。
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "写入临时文件时是否使用临时路径"
 msgstr "写入临时文件时是否使用临时路径"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "通配符证书"
 msgstr "通配符证书"
 
 
@@ -5356,6 +5412,14 @@ msgstr "Workers"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "工作区"
 msgstr "工作区"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "写入 fullchain.cer 错误:{0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "写入 private.key 错误:{0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"
@@ -5872,9 +5936,6 @@ msgstr "你的 Passkeys"
 #~ msgid "Do you want to change the template to support the TLS?"
 #~ msgid "Do you want to change the template to support the TLS?"
 #~ msgstr "你想要改变模板以支持 TLS 吗?"
 #~ msgstr "你想要改变模板以支持 TLS 吗?"
 
 
-#~ msgid "Edit Configuration File"
-#~ msgstr "编辑配置文件"
-
 #~ msgid "Getting Certificate from Let's Encrypt"
 #~ msgid "Getting Certificate from Let's Encrypt"
 #~ msgstr "从 Let's Encrypt 获取证书"
 #~ msgstr "从 Let's Encrypt 获取证书"
 
 

+ 105 - 44
app/src/language/zh_TW/app.po

@@ -184,7 +184,7 @@ msgstr "新增設定"
 msgid "Add Directive Below"
 msgid "Add Directive Below"
 msgstr "在下方新增指令"
 msgstr "在下方新增指令"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:151
+#: src/views/certificate/components/DNSIssueCertificate.vue:153
 msgid "Add Domain"
 msgid "Add Domain"
 msgstr "添加域名"
 msgstr "添加域名"
 
 
@@ -235,7 +235,7 @@ msgstr "全部"
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "所有恢復代碼已用完"
 msgstr "所有恢復代碼已用完"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:156
+#: src/views/certificate/components/DNSIssueCertificate.vue:158
 msgid ""
 msgid ""
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "All selected subdomains must belong to the same DNS Provider, otherwise the "
 "certificate application will fail."
 "certificate application will fail."
@@ -415,7 +415,7 @@ msgstr "\"AutoCert 正在運行...\""
 msgid "Automatic Restart"
 msgid "Automatic Restart"
 msgstr "\"自動重啟\""
 msgstr "\"自動重啟\""
 
 
-#: src/views/certificate/CertificateEditor.vue:257
+#: src/views/certificate/CertificateEditor.vue:256
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/components/ConfigLeftPanel.vue:273
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/config/ConfigList.vue:112 src/views/config/ConfigList.vue:195
 #: src/views/nginx_log/NginxLog.vue:174
 #: src/views/nginx_log/NginxLog.vue:174
@@ -706,13 +706,13 @@ msgstr "憑證更新成功"
 msgid "Certificate revoked successfully"
 msgid "Certificate revoked successfully"
 msgstr "證書撤銷成功"
 msgstr "證書撤銷成功"
 
 
-#: src/views/certificate/CertificateEditor.vue:126
+#: src/views/certificate/CertificateEditor.vue:125
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 #: src/views/site/site_edit/components/Cert/Cert.vue:58
 msgid "Certificate Status"
 msgid "Certificate Status"
 msgid_plural "Certificates Status"
 msgid_plural "Certificates Status"
 msgstr[0] "憑證狀態"
 msgstr[0] "憑證狀態"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:104
+#: src/views/certificate/components/DNSIssueCertificate.vue:106
 msgid "Certificate Type"
 msgid "Certificate Type"
 msgstr "證書類型"
 msgstr "證書類型"
 
 
@@ -725,6 +725,10 @@ msgstr "憑證"
 msgid "Certificates List"
 msgid "Certificates List"
 msgstr "憑證列表"
 msgstr "憑證列表"
 
 
+#: src/constants/errors/cert.ts:17
+msgid "Challenge error: {0}"
+msgstr "驗證錯誤:{0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 #: src/components/AutoCertForm/AutoCertForm.vue:65
 msgid "Challenge Method"
 msgid "Challenge Method"
 msgstr "驗證方式"
 msgstr "驗證方式"
@@ -1179,11 +1183,11 @@ msgstr "自訂 cron 表達式"
 msgid "Custom Directory"
 msgid "Custom Directory"
 msgstr "自訂目錄"
 msgstr "自訂目錄"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:126
+#: src/views/certificate/components/DNSIssueCertificate.vue:128
 msgid "Custom Domains"
 msgid "Custom Domains"
 msgstr "自訂網域"
 msgstr "自訂網域"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:110
+#: src/views/certificate/components/DNSIssueCertificate.vue:112
 msgid "Custom Domains Certificate"
 msgid "Custom Domains Certificate"
 msgstr "自訂網域證書"
 msgstr "自訂網域證書"
 
 
@@ -1494,11 +1498,11 @@ msgid "Document"
 msgid_plural "Documents"
 msgid_plural "Documents"
 msgstr[0] "檔案"
 msgstr[0] "檔案"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:116
+#: src/views/certificate/components/DNSIssueCertificate.vue:118
 msgid "Domain"
 msgid "Domain"
 msgstr "網域"
 msgstr "網域"
 
 
-#: src/views/certificate/CertificateEditor.vue:110
+#: src/views/certificate/CertificateEditor.vue:109
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr "網域列表為空,請嘗試重新開啟 %{config} 的自動憑證"
 msgstr "網域列表為空,請嘗試重新開啟 %{config} 的自動憑證"
 
 
@@ -1698,14 +1702,18 @@ msgstr "用 Let's Encrypt 對網站進行加密"
 msgid "End"
 msgid "End"
 msgstr "結束"
 msgstr "結束"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:135
+#: src/views/certificate/components/DNSIssueCertificate.vue:137
 msgid "Enter domain name"
 msgid "Enter domain name"
 msgstr "輸入網域名稱"
 msgstr "輸入網域名稱"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:120
+#: src/views/certificate/components/DNSIssueCertificate.vue:122
 msgid "Enter your domain"
 msgid "Enter your domain"
 msgstr "輸入您的域名"
 msgstr "輸入您的域名"
 
 
+#: src/constants/errors/cert.ts:16
+msgid "Environment configuration is empty"
+msgstr "環境配置為空"
+
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "環境變數已清理"
 msgstr "環境變數已清理"
@@ -1716,7 +1724,7 @@ msgstr "環境變數已清理"
 msgid "Environments"
 msgid "Environments"
 msgstr "環境"
 msgstr "環境"
 
 
-#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:49
+#: src/constants/index.ts:22 src/views/config/InspectConfig.vue:50
 #: src/views/notification/notificationColumns.tsx:14
 #: src/views/notification/notificationColumns.tsx:14
 msgid "Error"
 msgid "Error"
 msgstr "錯誤"
 msgstr "錯誤"
@@ -2187,10 +2195,18 @@ msgstr "成功生成復原代碼"
 msgid "Generating private key for registering account"
 msgid "Generating private key for registering account"
 msgstr "產生註冊帳號的私鑰"
 msgstr "產生註冊帳號的私鑰"
 
 
+#: src/constants/errors/cert.ts:9
+msgid "Get acme user error: {0}"
+msgstr "獲取 ACME 用戶錯誤: {0}"
+
 #: src/views/dashboard/NginxDashBoard.vue:138
 #: src/views/dashboard/NginxDashBoard.vue:138
 msgid "Get data failed"
 msgid "Get data failed"
 msgstr "取得資料失敗"
 msgstr "取得資料失敗"
 
 
+#: src/constants/errors/cert.ts:12
+msgid "Get dns credential error: {0}"
+msgstr "獲取 DNS 憑證錯誤:{0}"
+
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/environments/list/BatchUpgrader.vue:177
 #: src/views/system/Upgrade.vue:188
 #: src/views/system/Upgrade.vue:188
 msgid "Get release information error"
 msgid "Get release information error"
@@ -2301,7 +2317,7 @@ msgid "Import"
 msgstr "匯入"
 msgstr "匯入"
 
 
 #: src/routes/modules/certificates.ts:46
 #: src/routes/modules/certificates.ts:46
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Import Certificate"
 msgid "Import Certificate"
 msgstr "匯入憑證"
 msgstr "匯入憑證"
 
 
@@ -2445,7 +2461,7 @@ msgstr "IP"
 msgid "Issue certificate"
 msgid "Issue certificate"
 msgstr "簽發證書"
 msgstr "簽發證書"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:95
+#: src/views/certificate/components/DNSIssueCertificate.vue:97
 msgid "Issue Certificate"
 msgid "Issue Certificate"
 msgstr "簽發證書"
 msgstr "簽發證書"
 
 
@@ -2528,8 +2544,8 @@ msgstr "留空表示不修改"
 msgid "Leave blank if you don't need this."
 msgid "Leave blank if you don't need this."
 msgstr "留空表示不需要此項目。"
 msgstr "留空表示不需要此項目。"
 
 
-#: src/views/certificate/CertificateEditor.vue:221
-#: src/views/certificate/CertificateEditor.vue:235
+#: src/views/certificate/CertificateEditor.vue:220
+#: src/views/certificate/CertificateEditor.vue:234
 msgid "Leave blank will not change anything"
 msgid "Leave blank will not change anything"
 msgstr "留空將不會改變任何內容"
 msgstr "留空將不會改變任何內容"
 
 
@@ -2616,7 +2632,7 @@ msgstr "Location"
 msgid "Locations"
 msgid "Locations"
 msgstr "Locations"
 msgstr "Locations"
 
 
-#: src/views/certificate/CertificateEditor.vue:245
+#: src/views/certificate/CertificateEditor.vue:244
 msgid "Log"
 msgid "Log"
 msgstr "日誌"
 msgstr "日誌"
 
 
@@ -2676,6 +2692,10 @@ msgstr "維護模式已成功停用"
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "維護模式已成功啟用"
 msgstr "維護模式已成功啟用"
 
 
+#: src/constants/errors/cert.ts:20
+msgid "Make certificate dir error: {0}"
+msgstr "建立憑證目錄錯誤:{0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 #: src/components/AutoCertForm/AutoCertForm.vue:52
 msgid ""
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "Make sure you have configured a reverse proxy for .well-known directory to "
@@ -2823,7 +2843,7 @@ msgid "Modify"
 msgstr "修改"
 msgstr "修改"
 
 
 #: src/routes/modules/certificates.ts:36
 #: src/routes/modules/certificates.ts:36
-#: src/views/certificate/CertificateEditor.vue:83
+#: src/views/certificate/CertificateEditor.vue:82
 msgid "Modify Certificate"
 msgid "Modify Certificate"
 msgstr "修改憑證"
 msgstr "修改憑證"
 
 
@@ -2858,7 +2878,7 @@ msgstr "多行指令"
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/components/NgxConfigEditor/NgxUpstream.vue:199
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/backup/AutoBackup/AutoBackup.vue:11
 #: src/views/certificate/ACMEUser.vue:11
 #: src/views/certificate/ACMEUser.vue:11
-#: src/views/certificate/CertificateEditor.vue:160
+#: src/views/certificate/CertificateEditor.vue:159
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/CertificateList/certColumns.tsx:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/certificate/DNSCredential.vue:9
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
 #: src/views/config/components/ConfigRightPanel/Basic.vue:34
@@ -2898,10 +2918,18 @@ msgstr "下載流量"
 msgid "Network Total Send"
 msgid "Network Total Send"
 msgstr "上傳流量"
 msgstr "上傳流量"
 
 
+#: src/constants/errors/cert.ts:15
+msgid "New dns challenge provider error: {0}"
+msgstr "新建DNS驗證提供程序錯誤:{0}"
+
 #: src/views/install/components/InstallView.vue:109
 #: src/views/install/components/InstallView.vue:109
 msgid "New Installation"
 msgid "New Installation"
 msgstr "新安裝"
 msgstr "新安裝"
 
 
+#: src/constants/errors/cert.ts:11
+msgid "New lego client error: {0}"
+msgstr "新建 lego 客戶端錯誤:{0}"
+
 #: src/views/config/components/Rename.vue:74
 #: src/views/config/components/Rename.vue:74
 msgid "New name"
 msgid "New name"
 msgstr "新名稱"
 msgstr "新名稱"
@@ -2914,11 +2942,15 @@ msgstr "新密碼"
 msgid "New Path"
 msgid "New Path"
 msgstr "新路徑"
 msgstr "新路徑"
 
 
+#: src/constants/errors/cert.ts:10
+msgid "New transport error: {0}"
+msgstr "新建傳輸錯誤:{0}"
+
 #: src/views/system/Upgrade.vue:230
 #: src/views/system/Upgrade.vue:230
 msgid "New version released"
 msgid "New version released"
 msgstr "新版本發布"
 msgstr "新版本發布"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:181
+#: src/views/certificate/components/DNSIssueCertificate.vue:183
 #: src/views/install/components/InstallView.vue:96
 #: src/views/install/components/InstallView.vue:96
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_add/SiteAdd.vue:132
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
@@ -3243,6 +3275,10 @@ msgstr "快取管理器每次處理的檔案數量"
 msgid "Number of worker processes"
 msgid "Number of worker processes"
 msgstr "worker 行程數"
 msgstr "worker 行程數"
 
 
+#: src/constants/errors/cert.ts:23
+msgid "Obtain cert error: {0}"
+msgstr "獲取證書錯誤:{0}"
+
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:185
 msgid "Obtain certificate"
 msgid "Obtain certificate"
 msgstr "取得憑證"
 msgstr "取得憑證"
@@ -3493,7 +3529,7 @@ msgstr "請輸入您希望建立的通行金鑰名稱,並點選下面的確定
 msgid "Please enter a valid port range"
 msgid "Please enter a valid port range"
 msgstr "請輸入有效的端口範圍"
 msgstr "請輸入有效的端口範圍"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:74
+#: src/views/certificate/components/DNSIssueCertificate.vue:76
 msgid "Please enter at least one domain"
 msgid "Please enter at least one domain"
 msgstr "請輸入至少一個域名"
 msgstr "請輸入至少一個域名"
 
 
@@ -3674,6 +3710,10 @@ msgstr "專案團隊"
 msgid "Provider"
 msgid "Provider"
 msgstr "供應商"
 msgstr "供應商"
 
 
+#: src/constants/errors/cert.ts:13
+msgid "Provider not found: {0}"
+msgstr "未找到提供者:{0}"
+
 #: src/views/certificate/ACMEUser.vue:48
 #: src/views/certificate/ACMEUser.vue:48
 msgid "Proxy"
 msgid "Proxy"
 msgstr "代理伺服器"
 msgstr "代理伺服器"
@@ -3822,7 +3862,7 @@ msgstr "重新載入中"
 msgid "Reloading nginx"
 msgid "Reloading nginx"
 msgstr "正在重新載入 Nginx"
 msgstr "正在重新載入 Nginx"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:144
+#: src/views/certificate/components/DNSIssueCertificate.vue:146
 #: src/views/preference/tabs/AuthSettings.vue:137
 #: src/views/preference/tabs/AuthSettings.vue:137
 msgid "Remove"
 msgid "Remove"
 msgstr "移除"
 msgstr "移除"
@@ -3905,6 +3945,10 @@ msgstr "重新命名成功"
 msgid "Renamed successfully"
 msgid "Renamed successfully"
 msgstr "重新命名成功"
 msgstr "重新命名成功"
 
 
+#: src/constants/errors/cert.ts:19
+msgid "Renew cert error: {0}"
+msgstr "續簽證書錯誤:{0}"
+
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:48
 #: src/views/certificate/components/RenewCert.vue:55
 #: src/views/certificate/components/RenewCert.vue:55
 msgid "Renew Certificate"
 msgid "Renew Certificate"
@@ -3918,7 +3962,7 @@ msgstr "更新憑證錯誤"
 msgid "Renew Certificate Success"
 msgid "Renew Certificate Success"
 msgstr "更新憑證成功"
 msgstr "更新憑證成功"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:84
+#: src/views/certificate/components/DNSIssueCertificate.vue:86
 #: src/views/certificate/components/RenewCert.vue:30
 #: src/views/certificate/components/RenewCert.vue:30
 msgid "Renew successfully"
 msgid "Renew successfully"
 msgstr "更新成功"
 msgstr "更新成功"
@@ -4029,6 +4073,10 @@ msgstr "恢復成功"
 msgid "Revoke"
 msgid "Revoke"
 msgstr "撤銷"
 msgstr "撤銷"
 
 
+#: src/constants/errors/cert.ts:24
+msgid "Revoke cert error: {0}"
+msgstr "吊銷證書錯誤:{0}"
+
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 #: src/components/AutoCertForm/AutoCertForm.vue:113
 msgid "Revoke Old Certificate"
 msgid "Revoke Old Certificate"
 msgstr "撤銷舊憑證"
 msgstr "撤銷舊憑證"
@@ -4173,7 +4221,7 @@ msgstr "星期六"
 
 
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/ChatGPT/ChatMessage.vue:215
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
 #: src/components/NgxConfigEditor/directive/DirectiveEditorItem.vue:129
-#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:264
+#: src/language/curd.ts:18 src/views/certificate/CertificateEditor.vue:263
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigLeftPanel.vue:282
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/config/components/ConfigName.vue:59
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
 #: src/views/preference/components/AuthSettings/Passkey.vue:130
@@ -4228,7 +4276,7 @@ msgstr "儲存串流 %{name} 至 %{node} 失敗"
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "串流 %{name} 成功儲存至 %{node}"
 msgstr "串流 %{name} 成功儲存至 %{node}"
 
 
-#: src/language/curd.ts:35 src/views/certificate/store.ts:13
+#: src/language/curd.ts:35 src/views/certificate/store.ts:14
 #: src/views/preference/store/index.ts:118
 #: src/views/preference/store/index.ts:118
 msgid "Save successfully"
 msgid "Save successfully"
 msgstr "儲存成功"
 msgstr "儲存成功"
@@ -4336,7 +4384,7 @@ msgstr "傳送"
 msgid "Server"
 msgid "Server"
 msgstr "伺服器"
 msgstr "伺服器"
 
 
-#: src/views/certificate/CertificateEditor.vue:55
+#: src/views/certificate/CertificateEditor.vue:54
 msgid "Server error"
 msgid "Server error"
 msgstr "伺服器錯誤"
 msgstr "伺服器錯誤"
 
 
@@ -4364,6 +4412,14 @@ msgstr "伺服器索引超出範圍"
 msgid "Session not found"
 msgid "Session not found"
 msgstr "找不到工作階段"
 msgstr "找不到工作階段"
 
 
+#: src/constants/errors/cert.ts:14
+msgid "Set env error: {0}"
+msgstr "設定環境錯誤:{0}"
+
+#: src/constants/errors/cert.ts:18
+msgid "Set env flag to disable lego CNAME support error: {0}"
+msgstr "設定環境標誌以停用 lego CNAME 支援錯誤:{0}"
+
 #: src/views/preference/tabs/CertSettings.vue:36
 #: src/views/preference/tabs/CertSettings.vue:36
 msgid ""
 msgid ""
 "Set the recursive nameservers to override the systems nameservers for the "
 "Set the recursive nameservers to override the systems nameservers for the "
@@ -4474,7 +4530,7 @@ msgstr "快取載入器迭代間的休眠時間"
 msgid "Sleep time between cache manager iterations"
 msgid "Sleep time between cache manager iterations"
 msgstr "快取管理器迭代間的休眠時間"
 msgstr "快取管理器迭代間的休眠時間"
 
 
-#: src/views/certificate/CertificateEditor.vue:211
+#: src/views/certificate/CertificateEditor.vue:210
 msgid "SSL Certificate Content"
 msgid "SSL Certificate Content"
 msgstr "SSL 憑證內容"
 msgstr "SSL 憑證內容"
 
 
@@ -4486,15 +4542,15 @@ msgstr "SSL 憑證檔案必須位於 Nginx 設定目錄下:{0}"
 msgid "SSL certificate file not found"
 msgid "SSL certificate file not found"
 msgstr "SSL 憑證檔案未找到"
 msgstr "SSL 憑證檔案未找到"
 
 
-#: src/views/certificate/CertificateEditor.vue:225
+#: src/views/certificate/CertificateEditor.vue:224
 msgid "SSL Certificate Key Content"
 msgid "SSL Certificate Key Content"
 msgstr "SSL 憑證金鑰內容"
 msgstr "SSL 憑證金鑰內容"
 
 
-#: src/views/certificate/CertificateEditor.vue:190
+#: src/views/certificate/CertificateEditor.vue:189
 msgid "SSL Certificate Key Path"
 msgid "SSL Certificate Key Path"
 msgstr "SSL 憑證金鑰路徑"
 msgstr "SSL 憑證金鑰路徑"
 
 
-#: src/views/certificate/CertificateEditor.vue:175
+#: src/views/certificate/CertificateEditor.vue:174
 #: src/views/preference/tabs/ServerSettings.vue:37
 #: src/views/preference/tabs/ServerSettings.vue:37
 msgid "SSL Certificate Path"
 msgid "SSL Certificate Path"
 msgstr "SSL 憑證路徑"
 msgstr "SSL 憑證路徑"
@@ -4725,7 +4781,7 @@ msgstr "同步節點"
 msgid "Sync strategy"
 msgid "Sync strategy"
 msgstr "同步策略"
 msgstr "同步策略"
 
 
-#: src/views/certificate/CertificateEditor.vue:204
+#: src/views/certificate/CertificateEditor.vue:203
 msgid "Sync to"
 msgid "Sync to"
 msgstr "同步到"
 msgstr "同步到"
 
 
@@ -4796,11 +4852,11 @@ msgid ""
 "dashes, colons, and dots."
 "dashes, colons, and dots."
 msgstr "ICP 編號僅能包含字母、Unicode 字元、數字、連字號、破折號、冒號和句點。"
 msgstr "ICP 編號僅能包含字母、Unicode 字元、數字、連字號、破折號、冒號和句點。"
 
 
-#: src/views/certificate/CertificateEditor.vue:214
+#: src/views/certificate/CertificateEditor.vue:213
 msgid "The input is not a SSL Certificate"
 msgid "The input is not a SSL Certificate"
 msgstr "輸入的不是 SSL 憑證"
 msgstr "輸入的不是 SSL 憑證"
 
 
-#: src/views/certificate/CertificateEditor.vue:228
+#: src/views/certificate/CertificateEditor.vue:227
 msgid "The input is not a SSL Certificate Key"
 msgid "The input is not a SSL Certificate Key"
 msgstr "輸入的不是 SSL 憑證金鑰"
 msgstr "輸入的不是 SSL 憑證金鑰"
 
 
@@ -4831,11 +4887,11 @@ msgstr "節點名稱僅能包含字母、Unicode 字元、數字、連字號、
 msgid "The parameter of server_name is required"
 msgid "The parameter of server_name is required"
 msgstr "必須提供 server_name 參數"
 msgstr "必須提供 server_name 參數"
 
 
-#: src/views/certificate/CertificateEditor.vue:179
+#: src/views/certificate/CertificateEditor.vue:178
 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:194
+#: src/views/certificate/CertificateEditor.vue:193
 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 "路徑存在,但檔案不是金鑰"
 
 
@@ -4887,17 +4943,17 @@ msgid ""
 "lose access to your account."
 "lose access to your account."
 msgstr "這些代碼是您在遺失密碼和第二重驗證因素時,存取帳戶的最後手段。如果您找不到這些代碼,您將無法再存取您的帳戶。"
 msgstr "這些代碼是您在遺失密碼和第二重驗證因素時,存取帳戶的最後手段。如果您找不到這些代碼,您將無法再存取您的帳戶。"
 
 
-#: src/views/certificate/CertificateEditor.vue:100
+#: src/views/certificate/CertificateEditor.vue:99
 msgid "This Auto Cert item is invalid, please remove it."
 msgid "This Auto Cert item is invalid, please remove it."
 msgstr "此自動憑證項目無效,請將其移除。"
 msgstr "此自動憑證項目無效,請將其移除。"
 
 
-#: src/views/certificate/CertificateEditor.vue:90
+#: src/views/certificate/CertificateEditor.vue:89
 msgid "This certificate is managed by Nginx UI"
 msgid "This certificate is managed by Nginx UI"
 msgstr "此憑證由 Nginx UI 管理"
 msgstr "此憑證由 Nginx UI 管理"
 
 
-#: src/views/certificate/CertificateEditor.vue:163
-#: src/views/certificate/CertificateEditor.vue:177
-#: src/views/certificate/CertificateEditor.vue:192
+#: src/views/certificate/CertificateEditor.vue:162
+#: src/views/certificate/CertificateEditor.vue:176
+#: src/views/certificate/CertificateEditor.vue:191
 msgid "This field is required"
 msgid "This field is required"
 msgstr "此欄位為必填項"
 msgstr "此欄位為必填項"
 
 
@@ -5338,7 +5394,7 @@ msgstr "當您產生新的復原碼時,必須下載或列印新的代碼。"
 msgid "Whether to use a temporary path when writing temporary files"
 msgid "Whether to use a temporary path when writing temporary files"
 msgstr "寫入暫存檔案時是否使用暫存路徑"
 msgstr "寫入暫存檔案時是否使用暫存路徑"
 
 
-#: src/views/certificate/components/DNSIssueCertificate.vue:107
+#: src/views/certificate/components/DNSIssueCertificate.vue:109
 msgid "Wildcard Certificate"
 msgid "Wildcard Certificate"
 msgstr "萬用字元憑證"
 msgstr "萬用字元憑證"
 
 
@@ -5362,6 +5418,14 @@ msgstr "worker"
 msgid "Workspace"
 msgid "Workspace"
 msgstr "工作區"
 msgstr "工作區"
 
 
+#: src/constants/errors/cert.ts:21
+msgid "Write fullchain.cer error: {0}"
+msgstr "寫入 fullchain.cer 錯誤:{0}"
+
+#: src/constants/errors/cert.ts:22
+msgid "Write private.key error: {0}"
+msgstr "寫入 private.key 錯誤:{0}"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
 msgid "Writes"
@@ -5811,9 +5875,6 @@ msgstr "您的通行金鑰"
 #~ msgid "Do you want to change the template to support the TLS?"
 #~ msgid "Do you want to change the template to support the TLS?"
 #~ msgstr "你想要改變範本以支援 TLS 嗎?"
 #~ msgstr "你想要改變範本以支援 TLS 嗎?"
 
 
-#~ msgid "Edit Configuration File"
-#~ msgstr "編輯設定檔案"
-
 #~ msgid "Getting Certificate from Let's Encrypt"
 #~ msgid "Getting Certificate from Let's Encrypt"
 #~ msgstr "從 Let's Encrypt 取得憑證"
 #~ msgstr "從 Let's Encrypt 取得憑證"
 
 

+ 1 - 1
app/src/version.json

@@ -1 +1 @@
-{"version":"2.1.2","build_id":1,"total_build":430}
+{"version":"2.1.3","build_id":1,"total_build":431}