Răsfoiți Sursa

chore: update lodash imports to specific methods for better performance

Jacky 1 săptămână în urmă
părinte
comite
5166d5fa49

+ 2 - 2
app/src/components/StdDesign/StdDataDisplay/StdCurdDetail.vue

@@ -3,7 +3,7 @@ import type { Column } from '@/components/StdDesign/types'
 import type { ComputedRef } from 'vue'
 import { CustomRender } from '@/components/StdDesign/StdDataDisplay/components/CustomRender'
 import { labelRender } from '@/components/StdDesign/StdDataEntry'
-import _ from 'lodash'
+import { get } from 'lodash'
 
 const props = defineProps<{
   columns: Column[]
@@ -26,7 +26,7 @@ const displayColumns: ComputedRef<Column[]> = computed(() => {
       :key="index"
       :label="labelRender(c.title)"
     >
-      <CustomRender v-bind="{ column: c, record: data, index, text: _.get(data, c.dataIndex!), isDetail: true }" />
+      <CustomRender v-bind="{ column: c, record: data, index, text: get(data, c.dataIndex!), isDetail: true }" />
     </ADescriptionsItem>
   </ADescriptions>
 </template>

+ 2 - 2
app/src/components/StdDesign/StdDataDisplay/StdTable.vue

@@ -14,7 +14,7 @@ import StdBulkActions from '@/components/StdDesign/StdDataDisplay/StdBulkActions
 import StdDataEntry, { labelRender } from '@/components/StdDesign/StdDataEntry'
 import { HolderOutlined } from '@ant-design/icons-vue'
 import { message } from 'ant-design-vue'
-import _ from 'lodash'
+import { debounce } from 'lodash'
 import StdPagination from './StdPagination.vue'
 
 const props = withDefaults(defineProps<StdTableProps<T>>(), {
@@ -145,7 +145,7 @@ const radioColumns = computed(() => {
   return props.columns?.filter(column => column.radio) || []
 })
 
-const get_list = _.debounce(_get_list, 100, {
+const get_list = debounce(_get_list, 100, {
   leading: false,
   trailing: true,
 })

+ 2 - 2
app/src/components/StdDesign/StdDataDisplay/components/CustomRender.tsx

@@ -1,9 +1,9 @@
 import type { CustomRender } from '@/components/StdDesign/StdDataDisplay/StdTableTransformer'
-import _ from 'lodash'
+import { get } from 'lodash'
 
 // eslint-disable-next-line ts/no-redeclare
 export function CustomRender(props: CustomRender) {
   return props.column.customRender
     ? props.column.customRender(props)
-    : _.get(props.record, props.column.dataIndex!)
+    : get(props.record, props.column.dataIndex!)
 }

+ 3 - 3
app/src/components/StdDesign/StdDataDisplay/methods/exportCsv.ts

@@ -3,7 +3,7 @@ import type { Column, StdTableResponse } from '@/components/StdDesign/types'
 import type { ComputedRef } from 'vue'
 import { downloadCsv } from '@/lib/helper'
 import dayjs from 'dayjs'
-import _ from 'lodash'
+import { get, set } from 'lodash'
 
 async function exportCsv(props: StdTableProps, pithyColumns: ComputedRef<Column[]>) {
   const header: { title?: string, key: Column['dataIndex'] }[] = []
@@ -52,11 +52,11 @@ async function exportCsv(props: StdTableProps, pithyColumns: ComputedRef<Column[
     const obj: Record<string, any> = {}
 
     headerKeys.forEach(key => {
-      let _data = _.get(row, key)
+      let _data = get(row, key)
       const c = showColumnsMap[key]
 
       _data = c?.customRender?.({ text: _data }) ?? _data
-      _.set(obj, c.dataIndex as string, _data)
+      set(obj, c.dataIndex as string, _data)
     })
     data.push(obj)
   })

+ 5 - 5
app/src/components/StdDesign/StdDataEntry/components/StdSelector.vue

@@ -4,7 +4,7 @@ import type { Column } from '@/components/StdDesign/types'
 import StdTable from '@/components/StdDesign/StdDataDisplay/StdTable.vue'
 import { CloseCircleFilled } from '@ant-design/icons-vue'
 import { watchOnce } from '@vueuse/core'
-import _ from 'lodash'
+import { clone } from 'lodash'
 
 const props = defineProps<{
   placeholder?: string
@@ -102,7 +102,7 @@ const selectedKeyBuffer = ref()
 const selectedBuffer: Ref<any[]> = ref([])
 
 watch(selectedKey, () => {
-  selectedKeyBuffer.value = _.clone(selectedKey.value)
+  selectedKeyBuffer.value = clone(selectedKey.value)
 })
 
 watch(records, v => {
@@ -111,8 +111,8 @@ watch(records, v => {
 })
 
 onMounted(() => {
-  selectedKeyBuffer.value = _.clone(selectedKey.value)
-  selectedBuffer.value = _.clone(records.value)
+  selectedKeyBuffer.value = clone(selectedKey.value)
+  selectedBuffer.value = clone(records.value)
 })
 
 const computedSelectedKeys = computed({
@@ -132,7 +132,7 @@ async function ok() {
   selectedKey.value = selectedKeyBuffer.value
   records.value = selectedBuffer.value
   await nextTick()
-  M_values.value = _.clone(records.value)
+  M_values.value = clone(records.value)
 }
 
 function clear() {

+ 3 - 3
app/src/components/StdDesign/StdDetail/StdDetail.vue

@@ -7,7 +7,7 @@ import type { DataIndex } from 'ant-design-vue/es/vc-table/interface'
 import { labelRender } from '@/components/StdDesign/StdDataEntry'
 import { message } from 'ant-design-vue'
 
-import _, { get } from 'lodash'
+import { cloneDeep, get } from 'lodash'
 
 const props = defineProps<{
   title?: string
@@ -56,7 +56,7 @@ const route = useRoute()
 
 onMounted(() => {
   if (props?.useOutsideData) {
-    editModel.value = _.cloneDeep(props.dataSource)
+    editModel.value = cloneDeep(props.dataSource)
     return
   }
 
@@ -66,7 +66,7 @@ onMounted(() => {
 })
 
 function clickEdit() {
-  editModel.value = _.cloneDeep(detail.value)
+  editModel.value = cloneDeep(detail.value)
   editStatus.value = true
 }
 </script>

+ 97 - 74
app/src/language/ar/app.po

@@ -4,10 +4,10 @@ msgid ""
 msgstr ""
 "PO-Revision-Date: 2024-10-29 14:39+0000\n"
 "Last-Translator: mosaati <mohammed.saati@gmail.com>\n"
-"Language-Team: Arabic "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/ar/>\n"
+"Language-Team: Arabic <https://weblate.nginxui.com/projects/nginx-ui/"
+"frontend/ar/>\n"
 "Language: ar\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
 "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
@@ -245,7 +245,7 @@ msgstr "اطلب المساعدة من ChatGPT"
 msgid "Assistant"
 msgstr "المساعد"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 #, fuzzy
 msgid "Attempt to fix"
 msgstr "محاولات"
@@ -608,6 +608,12 @@ msgstr "قناة"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "تحقق مرة أخرى"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "تحقق مرة أخرى"
@@ -615,8 +621,8 @@ msgstr "تحقق مرة أخرى"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -645,8 +651,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 
 #: src/constants/errors/crypto.ts:3
@@ -1279,8 +1285,8 @@ msgid ""
 "Due to the security policies of some browsers, you cannot use passkeys on "
 "non-HTTPS websites, except when running on localhost."
 msgstr ""
-"نظرًا لسياسات الأمان لبعض المتصفحات، لا يمكنك استخدام مفاتيح المرور على "
-"مواقع الويب غير HTTPS، إلا عند التشغيل على localhost."
+"نظرًا لسياسات الأمان لبعض المتصفحات، لا يمكنك استخدام مفاتيح المرور على مواقع "
+"الويب غير HTTPS، إلا عند التشغيل على localhost."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: src/views/site/site_list/SiteList.vue:117
@@ -2031,8 +2037,8 @@ msgstr "إذا تُرك فارغًا، سيتم استخدام دليل CA ال
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -2132,7 +2138,7 @@ msgstr "تثبيت"
 msgid "Install successfully"
 msgstr "تم التثبيت بنجاح"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "تثبيت"
@@ -2389,7 +2395,7 @@ msgstr "تسجيل الدخول"
 msgid "Login successful"
 msgstr "تم تسجيل الدخول بنجاح"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "تم تسجيل الخروج بنجاح"
 
@@ -2399,19 +2405,19 @@ msgstr "تدوير السجلات"
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
 msgstr ""
 "بشكل افتراضي، يتم تفعيل تدوير السجلات في معظم توزيعات لينكس الرئيسية "
 "للمستخدمين الذين يقومون بتثبيت واجهة Nginx UI على الجهاز المضيف، لذا لا "
-"تحتاج إلى تعديل معايير في هذه الصفحة. بالنسبة للمستخدمين الذين يقومون "
-"بتثبيت واجهة Nginx UI باستخدام حاويات Docker، يمكنك تمكين هذا الخيار "
-"يدويًا. سيقوم مجدول المهام crontab الخاص بواجهة Nginx UI بتنفيذ أمر تدوير "
-"السجلات في الفاصل الزمني الذي تحدده بالدقائق."
+"تحتاج إلى تعديل معايير في هذه الصفحة. بالنسبة للمستخدمين الذين يقومون بتثبيت "
+"واجهة Nginx UI باستخدام حاويات Docker، يمكنك تمكين هذا الخيار يدويًا. سيقوم "
+"مجدول المهام crontab الخاص بواجهة Nginx UI بتنفيذ أمر تدوير السجلات في "
+"الفاصل الزمني الذي تحدده بالدقائق."
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:68
@@ -2635,7 +2641,7 @@ msgstr "إجمالي استقبال الشبكة"
 msgid "Network Total Send"
 msgstr "إجمالي إرسال الشبكة"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "تثبيت"
@@ -2653,7 +2659,7 @@ msgid "New version released"
 msgstr "تم إصدار نسخة جديدة"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2836,8 +2842,8 @@ msgstr "خطأ في تحليل تكوين Nginx"
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 #, fuzzy
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "خطأ في تحليل تكوين Nginx"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3194,7 +3200,8 @@ msgstr ""
 msgid ""
 "Please enter a name for the passkey you wish to create and click the OK "
 "button below."
-msgstr "يرجى إدخال اسم لمفتاح المرور الذي ترغب في إنشائه ثم انقر على زر موافق أدناه."
+msgstr ""
+"يرجى إدخال اسم لمفتاح المرور الذي ترغب في إنشائه ثم انقر على زر موافق أدناه."
 
 #: src/components/TwoFA/Authorization.vue:85
 msgid "Please enter the OTP code:"
@@ -3231,8 +3238,8 @@ msgstr ""
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3268,16 +3275,17 @@ msgstr "يرجى إدخال كلمة المرور الخاصة بك!"
 msgid "Please input your username!"
 msgstr "يرجى إدخال اسم المستخدم الخاص بك!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr "يرجى ملاحظة أن تكوين وحدات الوقت أدناه كلها بالثواني."
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3383,7 +3391,7 @@ msgstr "يقرأ"
 msgid "Receive"
 msgstr "يستقبل"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3700,7 +3708,7 @@ msgstr "إعادة التشغيل"
 msgid "Restore completed successfully"
 msgstr "تم الحذف بنجاح"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "نظام"
@@ -3871,10 +3879,15 @@ msgstr ""
 msgid "Selector"
 msgstr "المحدد"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3937,17 +3950,17 @@ msgstr "تعيين موفر تحدي HTTP01"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4139,9 +4152,9 @@ msgstr "نجاح"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -4235,7 +4248,7 @@ msgstr "نظام"
 msgid "System Backup"
 msgstr "نظام"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "نظام"
@@ -4249,7 +4262,7 @@ msgstr "مستخدم النظام الأولي"
 msgid "System Restore"
 msgstr "نظام"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4305,8 +4318,7 @@ msgstr "المدخل ليس مفتاح شهادة SSL"
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4318,7 +4330,8 @@ msgid ""
 msgstr "يجب أن يحتوي اسم النموذج على حروف وأرقام ويونيكود وشرطات ونقاط فقط."
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4426,7 +4439,8 @@ msgid "This field should not be empty"
 msgstr "يجب ألا يكون هذا الحقل فارغًا"
 
 #: src/constants/form_errors.ts:6
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr "يجب أن يحتوي هذا الحقل على حروف وأحرف يونيكود وأرقام و-_. فقط."
 
 #: src/views/dashboard/NginxDashBoard.vue:153
@@ -4466,7 +4480,8 @@ msgid ""
 msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr "سيتم ترقية أو إعادة تثبيت Nginx UI على %{nodeNames} إلى %{version}."
 
 #: src/views/preference/tabs/AuthSettings.vue:124
@@ -4514,8 +4529,8 @@ msgstr ""
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
 "لضمان عمل تجديد الشهادة التلقائي بشكل طبيعي، نحتاج إلى إضافة موقع يمكنه "
@@ -4530,8 +4545,8 @@ msgid ""
 "local API."
 msgstr ""
 "لاستخدام نموذج كبير محلي، قم بنشره باستخدام vllm أو lmdeploy. فهي توفر نقطة "
-"نهاية API متوافقة مع OpenAI، لذا قم فقط بتعيين baseUrl إلىAPI المحلية "
-"الخاصة بك."
+"نهاية API متوافقة مع OpenAI، لذا قم فقط بتعيين baseUrl إلىAPI المحلية الخاصة "
+"بك."
 
 #: src/views/dashboard/NginxDashBoard.vue:57
 #, fuzzy
@@ -4610,7 +4625,7 @@ msgstr "نوع"
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4714,7 +4729,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "تحقق من متطلبات النظام"
 
@@ -4778,8 +4793,8 @@ msgstr "سنضيف سجل أو أكثر من سجلات TXT إلى سجلات DN
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
 msgstr ""
 "سنقوم بإزالة تكوين HTTPChallenge من هذا الملف وإعادة تحميل Nginx. هل أنت "
 "متأكد أنك تريد المتابعة؟"
@@ -4842,7 +4857,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -4871,8 +4886,8 @@ msgstr "نعم"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -4898,7 +4913,8 @@ msgid ""
 msgstr "لم تقم بتكوين إعدادات Webauthn، لذا لا يمكنك إضافة مفتاح مرور."
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -4928,8 +4944,8 @@ msgstr "مفاتيح المرور الخاصة بك"
 
 #, fuzzy
 #~ msgid ""
-#~ "When you enable/disable, delete, or save this stream, the nodes set in the "
-#~ "Node Group and the nodes selected below will be synchronized."
+#~ "When you enable/disable, delete, or save this stream, the nodes set in "
+#~ "the Node Group and the nodes selected below will be synchronized."
 #~ msgstr ""
 #~ "عند تفعيل/تعطيل، حذف، أو حفظ هذا الموقع، سيتم مزامنة العقد المحددة في فئة "
 #~ "الموقع والعقد المحددة أدناه."
@@ -4996,12 +5012,15 @@ msgstr "مفاتيح المرور الخاصة بك"
 #~ msgid "Please upgrade the remote Nginx UI to the latest version"
 #~ msgstr "يرجى ترقية واجهة Nginx البعيدة إلى أحدث إصدار"
 
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
 #~ msgstr ""
 #~ "فشل إعادة تسمية %{orig_path} إلى %{new_path} على %{env_name}، الاستجابة: "
 #~ "%{resp}"
 
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
 #~ msgstr ""
 #~ "خطأ في إعادة تسمية الموقع %{site} إلى %{new_site} على %{node}، الاستجابة: "
 #~ "%{resp}"
@@ -5016,18 +5035,20 @@ msgstr "مفاتيح المرور الخاصة بك"
 #~ "فشل مزامنة الشهادة %{cert_name} إلى %{env_name}، يرجى ترقية واجهة Nginx "
 #~ "البعيدة إلى أحدث إصدار"
 
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr "فشل مزامنة الشهادة %{cert_name} إلى %{env_name}، الاستجابة: %{resp}"
 
 #~ msgid "Sync config %{config_name} to %{env_name} failed, response: %{resp}"
-#~ msgstr "فشل مزامنة التكوين %{config_name} إلى %{env_name}، الاستجابة: %{resp}"
+#~ msgstr ""
+#~ "فشل مزامنة التكوين %{config_name} إلى %{env_name}، الاستجابة: %{resp}"
 
 #~ msgid "Target"
 #~ msgstr "الهدف"
 
 #~ msgid ""
-#~ "If you lose your mobile phone, you can use the recovery code to reset your "
-#~ "2FA."
+#~ "If you lose your mobile phone, you can use the recovery code to reset "
+#~ "your 2FA."
 #~ msgstr ""
 #~ "إذا فقدت هاتفك المحمول، يمكنك استخدام رمز الاسترداد لإعادة تعيين المصادقة "
 #~ "الثنائية."
@@ -5035,7 +5056,8 @@ msgstr "مفاتيح المرور الخاصة بك"
 #~ msgid "Recovery Code:"
 #~ msgstr "رمز الاسترداد:"
 
-#~ msgid "The recovery code is only displayed once, please save it in a safe place."
+#~ msgid ""
+#~ "The recovery code is only displayed once, please save it in a safe place."
 #~ msgstr "رمز الاسترداد يُعرض مرة واحدة فقط، يرجى حفظه في مكان آمن."
 
 #~ msgid "Can't scan? Use text key binding"
@@ -5051,4 +5073,5 @@ msgstr "مفاتيح المرور الخاصة بك"
 #~ msgstr "اسم المستخدم أو كلمة المرور غير صحيحة"
 
 #~ msgid "Too many login failed attempts, please try again later"
-#~ msgstr "عدد كبير جدًا من محاولات تسجيل الدخول الفاشلة، يرجى المحاولة مرة أخرى لاحقًا"
+#~ msgstr ""
+#~ "عدد كبير جدًا من محاولات تسجيل الدخول الفاشلة، يرجى المحاولة مرة أخرى لاحقًا"

+ 125 - 99
app/src/language/de_DE/app.po

@@ -5,7 +5,7 @@ msgstr ""
 "Language-Team: none\n"
 "Language: de_DE\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
@@ -259,7 +259,7 @@ msgstr "Frage ChatGPT um Hilfe"
 msgid "Assistant"
 msgstr "Assistent"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 #, fuzzy
 msgid "Attempt to fix"
 msgstr "Versuche"
@@ -404,7 +404,8 @@ msgstr "Stapel-Upgrade"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:70
 msgid "Belows are selected items that you want to batch modify"
-msgstr "Hier sind die ausgewählten Elemente, die Sie stapelweise ändern möchten"
+msgstr ""
+"Hier sind die ausgewählten Elemente, die Sie stapelweise ändern möchten"
 
 #: src/constants/errors/nginx.ts:2
 msgid "Block is nil"
@@ -624,6 +625,12 @@ msgstr "Kanal"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "Erneut prüfen"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "Erneut prüfen"
@@ -631,8 +638,8 @@ msgstr "Erneut prüfen"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -661,8 +668,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 
 #: src/constants/errors/crypto.ts:3
@@ -957,7 +964,8 @@ msgstr "Benutzerdefiniert"
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "indicator."
-msgstr "Name des lokalen Knotens anpassen, der im Umgebungsindikator angezeigt wird."
+msgstr ""
+"Name des lokalen Knotens anpassen, der im Umgebungsindikator angezeigt wird."
 
 #: src/routes/modules/dashboard.ts:10 src/views/config/ConfigEditor.vue:110
 #: src/views/config/ConfigEditor.vue:161 src/views/config/ConfigList.vue:67
@@ -1312,9 +1320,9 @@ msgid ""
 "Due to the security policies of some browsers, you cannot use passkeys on "
 "non-HTTPS websites, except when running on localhost."
 msgstr ""
-"Aufgrund der Sicherheitsrichtlinien einiger Browser kannst du Passkeys "
-"nicht auf Nicht-HTTPS-Websites verwenden, außer wenn sie auf localhost "
-"ausgeführt werden."
+"Aufgrund der Sicherheitsrichtlinien einiger Browser kannst du Passkeys nicht "
+"auf Nicht-HTTPS-Websites verwenden, außer wenn sie auf localhost ausgeführt "
+"werden."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: src/views/site/site_list/SiteList.vue:117
@@ -2073,8 +2081,8 @@ msgstr "Wenn leer, wird das Standard-CA-Verzeichnis verwendet."
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -2179,7 +2187,7 @@ msgstr "Installieren"
 msgid "Install successfully"
 msgstr "Aktualisierung erfolgreich"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "Installieren"
@@ -2447,7 +2455,7 @@ msgstr "Login"
 msgid "Login successful"
 msgstr "Login erfolgreich"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "Logout erfolgreich"
 
@@ -2457,19 +2465,19 @@ msgstr "Logrotate"
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
-msgstr ""
-"Logrotate ist standardmäßig in den meisten gängigen Linux-Distributionen "
-"für Benutzer aktiviert, die Nginx UI auf dem Host-Rechner installieren, "
-"sodass du die Parameter auf dieser Seite nicht ändern musst. Wenn du Nginx "
-"UI mit Docker-Containern installierst, kannst du diese Option manuell "
-"aktivieren. Der Crontab-Aufgabenplaner von Nginx UI führt den "
-"Logrotate-Befehl in dem von dir in Minuten festgelegten Intervall aus."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
+msgstr ""
+"Logrotate ist standardmäßig in den meisten gängigen Linux-Distributionen für "
+"Benutzer aktiviert, die Nginx UI auf dem Host-Rechner installieren, sodass "
+"du die Parameter auf dieser Seite nicht ändern musst. Wenn du Nginx UI mit "
+"Docker-Containern installierst, kannst du diese Option manuell aktivieren. "
+"Der Crontab-Aufgabenplaner von Nginx UI führt den Logrotate-Befehl in dem "
+"von dir in Minuten festgelegten Intervall aus."
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:68
@@ -2702,7 +2710,7 @@ msgstr "Gesamter Netzwerkempfang"
 msgid "Network Total Send"
 msgstr "Gesamter Netzwerkversand"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "Installieren"
@@ -2722,7 +2730,7 @@ msgid "New version released"
 msgstr "Neue Version veröffentlicht"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2909,8 +2917,8 @@ msgstr "Name der Konfiguration"
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 #, fuzzy
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Name der Konfiguration"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3003,8 +3011,8 @@ msgid ""
 "certificates, please synchronize them to the remote nodes in advance."
 msgstr ""
 "Hinweis: Wenn die Konfigurationsdatei andere Konfigurationen oder "
-"Zertifikate enthält, synchronisiere sie bitte im Voraus mit den "
-"Remote-Knoten."
+"Zertifikate enthält, synchronisiere sie bitte im Voraus mit den Remote-"
+"Knoten."
 
 #: src/views/notification/Notification.vue:28
 #, fuzzy
@@ -3107,7 +3115,8 @@ msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:59
 msgid "Once the verification is complete, the records will be removed."
-msgstr "Sobaöd die Überprüfung abgeschlossen ist, werden die Einträge entfernt."
+msgstr ""
+"Sobaöd die Überprüfung abgeschlossen ist, werden die Einträge entfernt."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:162
 #: src/components/NodeSelector/NodeSelector.vue:103
@@ -3296,8 +3305,8 @@ msgid ""
 "Please fill in the API authentication credentials provided by your DNS "
 "provider."
 msgstr ""
-"Bitte fülle die API-Authentifizierungsdaten aus, die dir von deinem "
-"DNS-Provider zur Verfügung gestellt wurden."
+"Bitte fülle die API-Authentifizierungsdaten aus, die dir von deinem DNS-"
+"Provider zur Verfügung gestellt wurden."
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:106
 msgid "Please fill in the required fields"
@@ -3308,15 +3317,15 @@ msgid ""
 "Please first add credentials in Certification > DNS Credentials, and then "
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
-"Bitte füge zuerst Anmeldeinformationen in Zertifikation > "
-"DNS-Anmeldeinformationen hinzu und wähle dann eine der unten aufgeführten "
+"Bitte füge zuerst Anmeldeinformationen in Zertifikation > DNS-"
+"Anmeldeinformationen hinzu und wähle dann eine der unten aufgeführten "
 "Anmeldeinformationen aus, um die API des DNS-Anbieters anzufordern."
 
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3358,18 +3367,19 @@ msgstr "Bitte gib dein Passwort ein!"
 msgid "Please input your username!"
 msgstr "Bitte gib deinen Benutzernamen ein!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr ""
-"Bitte beachte, dass die Zeiteinheiten der unten aufgeführten "
-"Konfigurationen alle in Sekunden angegeben sind."
+"Bitte beachte, dass die Zeiteinheiten der unten aufgeführten Konfigurationen "
+"alle in Sekunden angegeben sind."
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3475,7 +3485,7 @@ msgstr "Aufrufe"
 msgid "Receive"
 msgstr "Empfangen"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3813,7 +3823,7 @@ msgstr "Starte neu"
 msgid "Restore completed successfully"
 msgstr "Erfolgreich deaktiviert"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "System"
@@ -3960,7 +3970,8 @@ msgstr "Speichern erfolgreich"
 
 #: src/views/preference/components/AuthSettings/TOTP.vue:69
 msgid "Scan the QR code with your mobile phone to add the account to the app."
-msgstr "Scanne den QR-Code mit deinem Handy, um das Konto zur App hinzuzufügen."
+msgstr ""
+"Scanne den QR-Code mit deinem Handy, um das Konto zur App hinzuzufügen."
 
 #: src/views/certificate/DNSChallenge.vue:90
 msgid "SDK"
@@ -3988,10 +3999,15 @@ msgstr ""
 msgid "Selector"
 msgstr "Auswähler"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -4054,17 +4070,17 @@ msgstr "Setze HTTP01-Challengeanbieter"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4259,9 +4275,9 @@ msgstr "Erfolg"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -4362,7 +4378,7 @@ msgstr "System"
 msgid "System Backup"
 msgstr "System"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "System"
@@ -4376,7 +4392,7 @@ msgstr "System-Startbenutzer"
 msgid "System Restore"
 msgstr "System"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4433,8 +4449,7 @@ msgstr "Zertifikatsstatus"
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4447,7 +4462,8 @@ msgstr ""
 "Doppelpunkte und Punkte enthalten."
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4486,9 +4502,9 @@ msgid ""
 "version. To avoid potential errors, please upgrade the remote Nginx UI to "
 "match the local version."
 msgstr ""
-"Die Version vom entfernten Nginx-UI ist nicht mit der lokalen "
-"Nginx-UI-Version kompatibel. Um potenzielle Fehler zu vermeiden, "
-"aktualisiere bitte das entfernte Nginx-UI, um die lokale Version anzupassen."
+"Die Version vom entfernten Nginx-UI ist nicht mit der lokalen Nginx-UI-"
+"Version kompatibel. Um potenzielle Fehler zu vermeiden, aktualisiere bitte "
+"das entfernte Nginx-UI, um die lokale Version anzupassen."
 
 #: src/components/AutoCertForm/AutoCertForm.vue:43
 #, fuzzy
@@ -4496,8 +4512,8 @@ msgid ""
 "The server_name in the current configuration must be the domain name you "
 "need to get the certificate, supportmultiple domains."
 msgstr ""
-"Beachten: Der server_name in der aktuellen Konfiguration muss der "
-"Domainname sein, für den das Zertifikat benötigt wird."
+"Beachten: Der server_name in der aktuellen Konfiguration muss der Domainname "
+"sein, für den das Zertifikat benötigt wird."
 
 #: src/views/preference/tabs/CertSettings.vue:22
 #: src/views/preference/tabs/HTTPSettings.vue:14
@@ -4556,8 +4572,10 @@ msgid "This field should not be empty"
 msgstr "Dieses Feld darf nicht leer sein"
 
 #: src/constants/form_errors.ts:6
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
-msgstr "Dieses Feld sollte nur Buchstaben, Unicode-Zeichen, Zahlen und -_ enthalten."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
+msgstr ""
+"Dieses Feld sollte nur Buchstaben, Unicode-Zeichen, Zahlen und -_ enthalten."
 
 #: src/views/dashboard/NginxDashBoard.vue:153
 msgid ""
@@ -4596,7 +4614,8 @@ msgid ""
 msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr ""
 "Dies wird das Nginx UI auf %{nodeNames} auf %{version} aktualisieren oder "
 "neu installieren."
@@ -4648,8 +4667,8 @@ msgstr ""
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
 "Um sicherzustellen, dass die automatische Zertifikatserneuerung normal "
@@ -4661,9 +4680,9 @@ msgid ""
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "local API."
 msgstr ""
-"Um ein lokales großes Modell zu verwenden, implementiere es mit ollama, "
-"vllm oder lmdeploy. Sie bieten einen OpenAI-kompatiblen API-Endpunkt, also "
-"setze die baseUrl auf deine lokale API."
+"Um ein lokales großes Modell zu verwenden, implementiere es mit ollama, vllm "
+"oder lmdeploy. Sie bieten einen OpenAI-kompatiblen API-Endpunkt, also setze "
+"die baseUrl auf deine lokale API."
 
 #: src/views/dashboard/NginxDashBoard.vue:57
 #, fuzzy
@@ -4716,8 +4735,8 @@ msgid ""
 "TOTP is a two-factor authentication method that uses a time-based one-time "
 "password algorithm."
 msgstr ""
-"TOTP ist eine Zwei-Faktor-Authentifizierungsmethode, die einen "
-"zeitbasierten Einmalpasswortalgorithmus verwendet."
+"TOTP ist eine Zwei-Faktor-Authentifizierungsmethode, die einen zeitbasierten "
+"Einmalpasswortalgorithmus verwendet."
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:197
 msgid "Trash"
@@ -4738,7 +4757,7 @@ msgstr "Typ"
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4847,7 +4866,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "Überprüfen Sie die Systemanforderungen"
 
@@ -4915,8 +4934,8 @@ msgstr ""
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
 msgstr ""
 "Wir werden die HTTPChallenge-Konfiguration aus dieser Datei entfernen und "
 "das Nginx neu laden. Möchtest du fortfahren?"
@@ -4951,9 +4970,8 @@ msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
 msgstr ""
-"Wenn du diese Seite aktivierst/deaktivierst, löschst oder speicherst, "
-"werden die Knoten, die in der Seitenkategorie festgelegt sind, und die "
-"unten "
+"Wenn du diese Seite aktivierst/deaktivierst, löschst oder speicherst, werden "
+"die Knoten, die in der Seitenkategorie festgelegt sind, und die unten "
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:140
 msgid ""
@@ -4981,7 +4999,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -5010,8 +5028,8 @@ msgstr "Ja"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -5039,7 +5057,8 @@ msgstr ""
 "keinen Passkey hinzufügen."
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -5066,12 +5085,13 @@ msgstr "Deine Passkeys"
 #~ msgstr "Fehler beim Speichern %{msg}"
 
 #~ msgid "Failed to save, syntax error(s) was detected in the configuration."
-#~ msgstr "Fehler beim Speichern, Syntaxfehler wurden in der Konfiguration erkannt."
+#~ msgstr ""
+#~ "Fehler beim Speichern, Syntaxfehler wurden in der Konfiguration erkannt."
 
 #, fuzzy
 #~ msgid ""
-#~ "When you enable/disable, delete, or save this stream, the nodes set in the "
-#~ "Node Group and the nodes selected below will be synchronized."
+#~ "When you enable/disable, delete, or save this stream, the nodes set in "
+#~ "the Node Group and the nodes selected below will be synchronized."
 #~ msgstr ""
 #~ "Wenn du diese Seite aktivierst/deaktivierst, löschst oder speicherst, "
 #~ "werden die Knoten, die in der Seitenkategorie festgelegt sind, und die "
@@ -5144,11 +5164,14 @@ msgstr "Deine Passkeys"
 #~ msgstr "Speichern erfolgreich"
 
 #, fuzzy
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
 #~ msgstr "Speichern erfolgreich"
 
 #, fuzzy
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
 #~ msgstr "Speichern erfolgreich"
 
 #, fuzzy
@@ -5162,7 +5185,8 @@ msgstr "Deine Passkeys"
 #~ msgstr "Speichern erfolgreich"
 
 #, fuzzy
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr "Speichern erfolgreich"
 
 #, fuzzy
@@ -5182,8 +5206,8 @@ msgstr "Deine Passkeys"
 #~ msgstr "Datei"
 
 #~ msgid ""
-#~ "If you lose your mobile phone, you can use the recovery code to reset your "
-#~ "2FA."
+#~ "If you lose your mobile phone, you can use the recovery code to reset "
+#~ "your 2FA."
 #~ msgstr ""
 #~ "Wenn du dein Handy verlierst, kannst du den Wiederherstellungscode "
 #~ "verwenden, um dein 2FA zurückzusetzen."
@@ -5197,13 +5221,15 @@ msgstr "Deine Passkeys"
 #~ msgid "Server error"
 #~ msgstr "Serverfehler"
 
-#~ msgid "The recovery code is only displayed once, please save it in a safe place."
+#~ msgid ""
+#~ "The recovery code is only displayed once, please save it in a safe place."
 #~ msgstr ""
 #~ "Der Wiederherstellungscode wird nur einmal angezeigt, bitte speichere ihn "
 #~ "an einem sicheren Ort."
 
 #~ msgid "Too many login failed attempts, please try again later"
-#~ msgstr "Zu viele fehlgeschlagene Anmeldeversuche, bitte versuche es später erneut"
+#~ msgstr ""
+#~ "Zu viele fehlgeschlagene Anmeldeversuche, bitte versuche es später erneut"
 
 #, fuzzy
 #~ msgid ""

+ 26 - 16
app/src/language/en/app.po

@@ -257,7 +257,7 @@ msgstr ""
 msgid "Assistant"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr ""
 
@@ -618,6 +618,11 @@ msgstr ""
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+msgid "Check"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr ""
@@ -2158,7 +2163,7 @@ msgstr "Install"
 msgid "Install successfully"
 msgstr "Enabled successfully"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "Install"
@@ -2428,7 +2433,7 @@ msgstr "Login"
 msgid "Login successful"
 msgstr "Login successful"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "Logout successful"
 
@@ -2676,7 +2681,7 @@ msgstr "Network Total Receive"
 msgid "Network Total Send"
 msgstr "Network Total Send"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "Install"
@@ -2696,7 +2701,7 @@ msgid "New version released"
 msgstr ""
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -3307,7 +3312,7 @@ msgstr "Please input your password!"
 msgid "Please input your username!"
 msgstr "Please input your username!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
@@ -3317,7 +3322,7 @@ msgid ""
 "Please note that the unit of time configurations below are all in seconds."
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3421,7 +3426,7 @@ msgstr "Reads"
 msgid "Receive"
 msgstr "Receive"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3757,7 +3762,7 @@ msgstr ""
 msgid "Restore completed successfully"
 msgstr "Disabled successfully"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "Created at"
@@ -3933,10 +3938,15 @@ msgstr ""
 msgid "Selector"
 msgstr "Directive"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -4007,7 +4017,7 @@ msgid ""
 "com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4309,7 +4319,7 @@ msgstr ""
 msgid "System Backup"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 msgid "System Check"
 msgstr ""
 
@@ -4321,7 +4331,7 @@ msgstr ""
 msgid "System Restore"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4663,7 +4673,7 @@ msgstr ""
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4773,7 +4783,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr ""
 
@@ -4896,7 +4906,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""

+ 130 - 105
app/src/language/es/app.po

@@ -7,11 +7,11 @@ msgstr ""
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2024-11-06 18:26+0000\n"
 "Last-Translator: Kcho <kcholoren@gmail.com>\n"
-"Language-Team: Spanish "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/es/>\n"
+"Language-Team: Spanish <https://weblate.nginxui.com/projects/nginx-ui/"
+"frontend/es/>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 5.6.2\n"
@@ -250,7 +250,7 @@ msgstr "Preguntar por ayuda a ChatGPT"
 msgid "Assistant"
 msgstr "Asistente"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 #, fuzzy
 msgid "Attempt to fix"
 msgstr "Intentos"
@@ -607,6 +607,12 @@ msgstr "Canal"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "Intentar nuevamente"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "Intentar nuevamente"
@@ -614,8 +620,8 @@ msgstr "Intentar nuevamente"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -644,8 +650,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 
 #: src/constants/errors/crypto.ts:3
@@ -1257,8 +1263,8 @@ msgstr "Dominio"
 #: src/views/certificate/components/CertificateEditor.vue:112
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
 msgstr ""
-"La lista de dominios está vacía, intente reabrir la certificación "
-"automática para %{config}"
+"La lista de dominios está vacía, intente reabrir la certificación automática "
+"para %{config}"
 
 #: src/language/constants.ts:27
 msgid "Download latest release error"
@@ -1279,8 +1285,8 @@ msgid ""
 "non-HTTPS websites, except when running on localhost."
 msgstr ""
 "Debido a las políticas de seguridad de algunos navegadores, no es posible "
-"utilizar claves de acceso en sitios web que no sean HTTPS, excepto cuando "
-"se ejecutan en el host local."
+"utilizar claves de acceso en sitios web que no sean HTTPS, excepto cuando se "
+"ejecutan en el host local."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: src/views/site/site_list/SiteList.vue:117
@@ -2031,8 +2037,8 @@ msgstr "Si se deja en blanco, se utilizará el directorio CA predeterminado."
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -2055,7 +2061,8 @@ msgstr ""
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:70
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
-msgstr "Si su navegador admite WebAuthn Passkey, aparecerá un cuadro de diálogo."
+msgstr ""
+"Si su navegador admite WebAuthn Passkey, aparecerá un cuadro de diálogo."
 
 #: src/components/AutoCertForm/AutoCertForm.vue:107
 msgid ""
@@ -2133,7 +2140,7 @@ msgstr "Instalar"
 msgid "Install successfully"
 msgstr "Instalación exitosa"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "Instalar"
@@ -2389,7 +2396,7 @@ msgstr "Acceso"
 msgid "Login successful"
 msgstr "Acceso exitoso"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "Cierre de sesión exitoso"
 
@@ -2399,20 +2406,20 @@ msgstr "Rotación de logs"
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
 msgstr ""
 "Logrotate, de forma predeterminada, está habilitado en la mayoría de las "
 "distribuciones de Linux para los usuarios que instalan Nginx UI en la "
 "máquina host, por lo que no es necesario modificar los parámetros en esta "
 "página. Para los usuarios que instalan Nginx UI usando contenedores Docker, "
 "pueden habilitar esta opción manualmente. El programador de tareas crontab "
-"de Nginx UI ejecutará el comando logrotate en el intervalo que establezca "
-"en minutos."
+"de Nginx UI ejecutará el comando logrotate en el intervalo que establezca en "
+"minutos."
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:68
@@ -2435,8 +2442,8 @@ msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort before obtaining the certificate."
 msgstr ""
-"Asegúrese de haber configurado un proxy reverso para el directorio "
-".well-known en HTTPChallengePort antes de obtener el certificado."
+"Asegúrese de haber configurado un proxy reverso para el directorio .well-"
+"known en HTTPChallengePort antes de obtener el certificado."
 
 #: src/routes/modules/config.ts:10 src/views/config/ConfigEditor.vue:115
 #: src/views/config/ConfigEditor.vue:166 src/views/config/ConfigList.vue:72
@@ -2636,7 +2643,7 @@ msgstr "Total recibido por la red"
 msgid "Network Total Send"
 msgstr "Total enviado por la red"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "Instalar"
@@ -2654,7 +2661,7 @@ msgid "New version released"
 msgstr "Se liberó una nueva versión"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2840,8 +2847,8 @@ msgstr "Error de análisis de configuración de Nginx"
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 #, fuzzy
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Error de análisis de configuración de Nginx"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3126,8 +3133,8 @@ msgid ""
 msgstr ""
 "Las llaves de acceso son credenciales de autenticación web que validan su "
 "identidad mediante el tacto, el reconocimiento facial, una contraseña de "
-"dispositivo o un PIN. Se pueden utilizar como reemplazo de contraseña o "
-"como método de autenticación de dos factores."
+"dispositivo o un PIN. Se pueden utilizar como reemplazo de contraseña o como "
+"método de autenticación de dos factores."
 
 #: src/views/other/Login.vue:183 src/views/user/userColumns.tsx:18
 msgid "Password"
@@ -3225,8 +3232,8 @@ msgid ""
 "Please fill in the API authentication credentials provided by your DNS "
 "provider."
 msgstr ""
-"Por favor, complete las credenciales de autenticación API proporcionadas "
-"por su proveedor de DNS."
+"Por favor, complete las credenciales de autenticación API proporcionadas por "
+"su proveedor de DNS."
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:106
 msgid "Please fill in the required fields"
@@ -3238,14 +3245,14 @@ msgid ""
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 "Primero agregue las credenciales en Certificación > Credenciales de DNS y "
-"luego seleccione una de las credenciales de aquí debajo para llamar a la "
-"API del proveedor de DNS."
+"luego seleccione una de las credenciales de aquí debajo para llamar a la API "
+"del proveedor de DNS."
 
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3285,18 +3292,19 @@ msgstr "¡Por favor ingrese su contraseña!"
 msgid "Please input your username!"
 msgstr "¡Por favor ingrese su nombre de usuario!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr ""
 "Tenga en cuenta que las siguientes configuraciones de unidades de tiempo "
 "están todas en segundos."
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3403,7 +3411,7 @@ msgstr "Lecturas"
 msgid "Receive"
 msgstr "Recibido"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3727,7 +3735,7 @@ msgstr "Reiniciando"
 msgid "Restore completed successfully"
 msgstr "Borrado exitoso"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "Sistema"
@@ -3902,10 +3910,15 @@ msgstr ""
 msgid "Selector"
 msgstr "Seleccionador"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3968,17 +3981,17 @@ msgstr "Usando el proveedor de desafíos HTTP01"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4167,9 +4180,9 @@ msgstr "Éxito"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -4265,7 +4278,7 @@ msgstr "Sistema"
 msgid "System Backup"
 msgstr "Sistema"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "Sistema"
@@ -4279,7 +4292,7 @@ msgstr "Usuario inicial del sistema"
 msgid "System Restore"
 msgstr "Sistema"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4315,7 +4328,8 @@ msgstr ""
 
 #: src/views/install/components/InstallForm.vue:48
 msgid "The filename cannot contain the following characters: %{c}"
-msgstr "El nombre del archivo no puede contener los siguientes caracteres: %{c}"
+msgstr ""
+"El nombre del archivo no puede contener los siguientes caracteres: %{c}"
 
 #: src/views/preference/tabs/NodeSettings.vue:37
 #, fuzzy
@@ -4336,8 +4350,7 @@ msgstr "La entrada no es una clave de certificado SSL"
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4351,7 +4364,8 @@ msgstr ""
 "rayas y puntos."
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4382,8 +4396,8 @@ msgid ""
 "The Public Security Number should only contain letters, unicode, numbers, "
 "hyphens, dashes, colons, and dots."
 msgstr ""
-"El nombre del servidor solo debe contener letras, Unicode, números, "
-"guiones, rayas y puntos."
+"El nombre del servidor solo debe contener letras, Unicode, números, guiones, "
+"rayas y puntos."
 
 #: src/views/dashboard/Environments.vue:148
 msgid ""
@@ -4463,7 +4477,8 @@ msgstr "Este campo no debe estar vacío"
 
 #: src/constants/form_errors.ts:6
 #, fuzzy
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr ""
 "El nombre del modelo solo debe contener letras, unicode, números, guiones, "
 "rayas y puntos."
@@ -4505,7 +4520,8 @@ msgid ""
 msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr ""
 "Esto actualizará o reinstalará la interfaz de usuario de Nginx en "
 "%{nodeNames} a %{version}."
@@ -4549,21 +4565,21 @@ msgid ""
 "and restart Nginx UI."
 msgstr ""
 "Para garantizar la seguridad, no se puede agregar la configuración de "
-"Webauthn a través de la UI. Configure manualmente lo siguiente en el "
-"archivo de configuración app.ini y reinicie Nginx UI."
+"Webauthn a través de la UI. Configure manualmente lo siguiente en el archivo "
+"de configuración app.ini y reinicie Nginx UI."
 
 #: src/views/site/site_edit/components/Cert/IssueCert.vue:33
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
-"Para garantizar que la renovación automática del certificado pueda "
-"funcionar con normalidad, debemos agregar una ubicación para transmitir la "
-"solicitud de la autoridad al backend, y debemos guardar este archivo y "
-"volver a cargar Nginx. ¿Estás seguro de que quieres continuar?"
+"Para garantizar que la renovación automática del certificado pueda funcionar "
+"con normalidad, debemos agregar una ubicación para transmitir la solicitud "
+"de la autoridad al backend, y debemos guardar este archivo y volver a cargar "
+"Nginx. ¿Estás seguro de que quieres continuar?"
 
 #: src/views/preference/tabs/OpenAISettings.vue:36
 #, fuzzy
@@ -4649,7 +4665,7 @@ msgstr "Tipo"
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4754,7 +4770,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "Verificar los requisitos del sistema"
 
@@ -4820,8 +4836,8 @@ msgstr ""
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
 msgstr ""
 "Eliminaremos la configuración de HTTPChallenge de este archivo y "
 "recargaremos Nginx. ¿Estás seguro de que quieres continuar?"
@@ -4885,7 +4901,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -4914,8 +4930,8 @@ msgstr "Si"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -4943,7 +4959,8 @@ msgstr ""
 "llave de acceso."
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -4969,12 +4986,14 @@ msgstr "Sus llaves de acceso"
 #~ msgstr "Error de formato %{msg}"
 
 #~ msgid "Failed to save, syntax error(s) was detected in the configuration."
-#~ msgstr "No se pudo guardar, se detectó un error(es) de sintaxis en la configuración."
+#~ msgstr ""
+#~ "No se pudo guardar, se detectó un error(es) de sintaxis en la "
+#~ "configuración."
 
 #, fuzzy
 #~ msgid ""
-#~ "When you enable/disable, delete, or save this stream, the nodes set in the "
-#~ "Node Group and the nodes selected below will be synchronized."
+#~ "When you enable/disable, delete, or save this stream, the nodes set in "
+#~ "the Node Group and the nodes selected below will be synchronized."
 #~ msgstr ""
 #~ "Cuando habilite/deshabilite, elimine o guarde este sitio, los nodos "
 #~ "configurados en la categoría del sitio y los nodos seleccionados a "
@@ -5016,7 +5035,8 @@ msgstr "Sus llaves de acceso"
 #~ msgstr "Desplegado con éxito"
 
 #~ msgid "Disable site %{site} on %{node} error, response: %{resp}"
-#~ msgstr "Error al deshabilitar el sitio %{site} en %{node}, respuesta: %{resp}"
+#~ msgstr ""
+#~ "Error al deshabilitar el sitio %{site} en %{node}, respuesta: %{resp}"
 
 #~ msgid "Do you want to deploy this file to remote server?"
 #~ msgid_plural "Do you want to deploy this file to remote servers?"
@@ -5039,23 +5059,26 @@ msgstr "Sus llaves de acceso"
 #~ msgid "Please upgrade the remote Nginx UI to the latest version"
 #~ msgstr ""
 #~ "Sincronización de la configuración %{cert_name} a %{env_name} falló, por "
-#~ "favor actualiza la interfaz de usuario de Nginx en el servidor remoto a la "
-#~ "última versión"
+#~ "favor actualiza la interfaz de usuario de Nginx en el servidor remoto a "
+#~ "la última versión"
 
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
 #~ msgstr ""
 #~ "Renombrar %{orig_path} a %{new_path} en %{env_name} falló, respuesta: "
 #~ "%{resp}"
 
 #, fuzzy
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
 #~ msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
 #, fuzzy
 #~ msgid "Save site %{site} to %{node} error, response: %{resp}"
 #~ msgstr ""
-#~ "Sincronización del Certificado %{cert_name} a %{env_name} falló, respuesta: "
-#~ "%{resp}"
+#~ "Sincronización del Certificado %{cert_name} a %{env_name} falló, "
+#~ "respuesta: %{resp}"
 
 #~ msgid ""
 #~ "Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the "
@@ -5064,10 +5087,11 @@ msgstr "Sus llaves de acceso"
 #~ "Sincronización del Certificado %{cert_name} a %{env_name} fallida, por "
 #~ "favor actualice la interfaz de Nginx remota a la última versión"
 
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr ""
-#~ "Sincronización del Certificado %{cert_name} a %{env_name} falló, respuesta: "
-#~ "%{resp}"
+#~ "Sincronización del Certificado %{cert_name} a %{env_name} falló, "
+#~ "respuesta: %{resp}"
 
 #~ msgid "Sync config %{config_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr ""
@@ -5084,8 +5108,8 @@ msgstr "Sus llaves de acceso"
 #~ msgstr "Archivo"
 
 #~ msgid ""
-#~ "If you lose your mobile phone, you can use the recovery code to reset your "
-#~ "2FA."
+#~ "If you lose your mobile phone, you can use the recovery code to reset "
+#~ "your 2FA."
 #~ msgstr ""
 #~ "Si pierde su teléfono móvil, puede usar el código de recuperación para "
 #~ "restablecer su 2FA."
@@ -5099,10 +5123,11 @@ msgstr "Sus llaves de acceso"
 #~ msgid "Server error"
 #~ msgstr "Error del servidor"
 
-#~ msgid "The recovery code is only displayed once, please save it in a safe place."
+#~ msgid ""
+#~ "The recovery code is only displayed once, please save it in a safe place."
 #~ msgstr ""
-#~ "El código de recuperación se muestra solo una vez, por favor guárdalo en un "
-#~ "lugar seguro."
+#~ "El código de recuperación se muestra solo una vez, por favor guárdalo en "
+#~ "un lugar seguro."
 
 #~ msgid "Too many login failed attempts, please try again later"
 #~ msgstr ""
@@ -5183,9 +5208,9 @@ msgstr "Sus llaves de acceso"
 #~ "Once the verification is complete, the records will be removed.\n"
 #~ "Please note that the unit of time configurations below are all in seconds."
 #~ msgstr ""
-#~ "Complete las credenciales de autenticación de la API proporcionadas por su "
-#~ "proveedor de DNS. Agregaremos uno o más registros TXT a los registros DNS "
-#~ "de su dominio para verificar la propiedad. Una vez que se complete la "
+#~ "Complete las credenciales de autenticación de la API proporcionadas por "
+#~ "su proveedor de DNS. Agregaremos uno o más registros TXT a los registros "
+#~ "DNS de su dominio para verificar la propiedad. Una vez que se complete la "
 #~ "verificación, se eliminarán los registros. Tenga en cuenta que las "
 #~ "configuraciones de tiempo que aparecen debajo están todas en segundos."
 
@@ -5208,13 +5233,13 @@ msgstr "Sus llaves de acceso"
 #~ msgstr "Sincronización de operaciones"
 
 #~ msgid ""
-#~ "Such as Reload and Configs, regex can configure as "
-#~ "`/api/nginx/reload|/api/nginx/test|/api/config/.+`, please see system api"
+#~ "Such as Reload and Configs, regex can configure as `/api/nginx/reload|/"
+#~ "api/nginx/test|/api/config/.+`, please see system api"
 #~ msgstr ""
 #~ "Las reglas de sincronización de operación de `Recarga` y `Gestión de "
-#~ "Configuración` se pueden configurar como "
-#~ "`/api/nginx/reload|/api/nginx/test|/api/config/.+`, consulte la API del "
-#~ "sistema para obtener más detalles"
+#~ "Configuración` se pueden configurar como `/api/nginx/reload|/api/nginx/"
+#~ "test|/api/config/.+`, consulte la API del sistema para obtener más "
+#~ "detalles"
 
 #~ msgid "SyncApiRegex"
 #~ msgstr "Expresión Regular de la API"

+ 95 - 72
app/src/language/fr_FR/app.po

@@ -5,11 +5,11 @@ msgstr ""
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2025-02-13 01:42+0000\n"
 "Last-Translator: Picman <laforgejames@gmail.com>\n"
-"Language-Team: French "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/fr/>\n"
+"Language-Team: French <https://weblate.nginxui.com/projects/nginx-ui/"
+"frontend/fr/>\n"
 "Language: fr_FR\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n > 1;\n"
 "X-Generator: Weblate 5.9.2\n"
@@ -122,7 +122,8 @@ msgstr "Mode avancé"
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:99
 msgid "Afterwards, refresh this page and click add passkey again."
-msgstr "Après, rechargez la page et cliquez de nouveau sur ajouter une clé d'accès."
+msgstr ""
+"Après, rechargez la page et cliquez de nouveau sur ajouter une clé d'accès."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
@@ -262,7 +263,7 @@ msgstr "Modèle ChatGPT"
 msgid "Assistant"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr "Tenter de corriger"
 
@@ -406,7 +407,8 @@ msgstr "Mettre à niveau"
 
 #: src/components/StdDesign/StdDataDisplay/StdBatchEdit.vue:70
 msgid "Belows are selected items that you want to batch modify"
-msgstr "Ci-dessous sont sélectionnés les éléments que vous voulez modifier en masse"
+msgstr ""
+"Ci-dessous sont sélectionnés les éléments que vous voulez modifier en masse"
 
 #: src/constants/errors/nginx.ts:2
 msgid "Block is nil"
@@ -625,6 +627,12 @@ msgstr "Canal"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "Revérifier"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "Revérifier"
@@ -632,8 +640,8 @@ msgstr "Revérifier"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -665,8 +673,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 "Vérifie si les répertoires streams-available et strams-enabled sont dans le "
 "répertoire de configuration nginx."
@@ -963,7 +971,8 @@ msgstr "Custom"
 msgid ""
 "Customize the name of local node to be displayed in the environment "
 "indicator."
-msgstr "Personnaliser le nom du nœud local affiché dans l'indicateur d'environnement"
+msgstr ""
+"Personnaliser le nom du nœud local affiché dans l'indicateur d'environnement"
 
 #: src/routes/modules/dashboard.ts:10 src/views/config/ConfigEditor.vue:110
 #: src/views/config/ConfigEditor.vue:161 src/views/config/ConfigList.vue:67
@@ -1238,7 +1247,8 @@ msgstr "DNS01"
 
 #: src/components/AutoCertForm/AutoCertForm.vue:97
 msgid "Do not enable this option unless you are sure that you need it."
-msgstr "N'activez pas cette option sauf si vous êtes sûr d'en avoir avez besoin."
+msgstr ""
+"N'activez pas cette option sauf si vous êtes sûr d'en avoir avez besoin."
 
 #: src/views/site/components/SiteStatusSegmented.vue:93
 #, fuzzy
@@ -2089,8 +2099,8 @@ msgstr "Si vide, le répertoire CA sera utilisé."
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -2109,8 +2119,8 @@ msgid ""
 "If you want to automatically revoke the old certificate, please enable this "
 "option."
 msgstr ""
-"Si votre domaine possède des entrées CNAME et que vous ne pouvez pas "
-"obtenir de certificats, activez cette option."
+"Si votre domaine possède des entrées CNAME et que vous ne pouvez pas obtenir "
+"de certificats, activez cette option."
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:70
 #, fuzzy
@@ -2124,8 +2134,8 @@ msgid ""
 "If your domain has CNAME records and you cannot obtain certificates, you "
 "need to enable this option."
 msgstr ""
-"Si votre domaine possède des entrées CNAME et que vous ne pouvez pas "
-"obtenir de certificats, activez cette option."
+"Si votre domaine possède des entrées CNAME et que vous ne pouvez pas obtenir "
+"de certificats, activez cette option."
 
 #: src/views/certificate/CertificateList/Certificate.vue:22
 #, fuzzy
@@ -2197,7 +2207,7 @@ msgstr "Installer"
 msgid "Install successfully"
 msgstr "Installé avec succès"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "Installer"
@@ -2468,7 +2478,7 @@ msgstr "Connexion"
 msgid "Login successful"
 msgstr "Connexion réussie"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "Déconnexion réussie"
 
@@ -2478,12 +2488,12 @@ msgstr ""
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
 msgstr ""
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
@@ -2508,8 +2518,8 @@ msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort before obtaining the certificate."
 msgstr ""
-"Assurez vous d'avoir configuré un reverse proxy pour le répertoire "
-".well-known vers HTTPChallengePort avant d'obtenir le certificat."
+"Assurez vous d'avoir configuré un reverse proxy pour le répertoire .well-"
+"known vers HTTPChallengePort avant d'obtenir le certificat."
 
 #: src/routes/modules/config.ts:10 src/views/config/ConfigEditor.vue:115
 #: src/views/config/ConfigEditor.vue:166 src/views/config/ConfigList.vue:72
@@ -2714,7 +2724,7 @@ msgstr "Réception totale du réseau"
 msgid "Network Total Send"
 msgstr "Envoi total réseau"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "Installer"
@@ -2734,7 +2744,7 @@ msgid "New version released"
 msgstr "Nouvelle version publiée"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2920,8 +2930,8 @@ msgstr "Erreur d'analyse de configuration Nginx"
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 #, fuzzy
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Erreur d'analyse de configuration Nginx"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3311,8 +3321,8 @@ msgstr ""
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3352,16 +3362,17 @@ msgstr "Veuillez saisir votre mot de passe !"
 msgid "Please input your username!"
 msgstr "Veuillez saisir votre nom d'utilisateur !"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3469,7 +3480,7 @@ msgstr "Lectures"
 msgid "Receive"
 msgstr "Recevoir"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3807,7 +3818,7 @@ msgstr "Redémarrage"
 msgid "Restore completed successfully"
 msgstr "Désactivé avec succès"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "Système"
@@ -3980,10 +3991,15 @@ msgstr ""
 msgid "Selector"
 msgstr "Sélecteur"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -4046,17 +4062,17 @@ msgstr "Utilisation du fournisseur de challenge HTTP01"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4252,9 +4268,9 @@ msgstr ""
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -4357,7 +4373,7 @@ msgstr "Système"
 msgid "System Backup"
 msgstr "Système"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "Système"
@@ -4371,7 +4387,7 @@ msgstr ""
 msgid "System Restore"
 msgstr "Système"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4427,8 +4443,7 @@ msgstr "Chemin de la clé du certificat SSL"
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4439,7 +4454,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4546,7 +4562,8 @@ msgid "This field should not be empty"
 msgstr ""
 
 #: src/constants/form_errors.ts:6
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr ""
 
 #: src/views/dashboard/NginxDashBoard.vue:153
@@ -4587,7 +4604,8 @@ msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
 #, fuzzy
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr "Dupliqué avec succès"
 
 #: src/views/preference/tabs/AuthSettings.vue:124
@@ -4631,12 +4649,12 @@ msgstr ""
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
-"Pour nous assurer que le renouvellement automatique de la certification "
-"peut fonctionner normalement, nous devons ajouter un emplacement qui peut "
+"Pour nous assurer que le renouvellement automatique de la certification peut "
+"fonctionner normalement, nous devons ajouter un emplacement qui peut "
 "transmettre la demande de l'autorité au backend, et nous devons enregistrer "
 "ce fichier et recharger le Nginx. Êtes-vous sûr de vouloir continuer?"
 
@@ -4718,7 +4736,7 @@ msgstr "Type"
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4825,7 +4843,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "Vérifiez les exigences du système"
 
@@ -4891,8 +4909,8 @@ msgstr ""
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
 msgstr ""
 "Nous allons supprimer la configuration HTTPChallenge de ce fichier et "
 "recharger le Nginx. Êtes-vous sûr de vouloir continuer?"
@@ -4949,7 +4967,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -4978,8 +4996,8 @@ msgstr "Oui"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -5005,7 +5023,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -5100,11 +5119,14 @@ msgstr ""
 #~ msgstr "Dupliqué avec succès"
 
 #, fuzzy
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
 #~ msgstr "Dupliqué avec succès"
 
 #, fuzzy
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
 #~ msgstr "Dupliqué avec succès"
 
 #, fuzzy
@@ -5118,7 +5140,8 @@ msgstr ""
 #~ msgstr "Dupliqué avec succès"
 
 #, fuzzy
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr "Dupliqué avec succès"
 
 #, fuzzy
@@ -5207,8 +5230,8 @@ msgstr ""
 #~ "Please note that the unit of time configurations below are all in seconds."
 #~ msgstr ""
 #~ "Veuillez remplir les identifiants d'authentification de l'API fournis par "
-#~ "votre fournisseur DNS. Nous ajouterons un ou plusieurs enregistrements TXT "
-#~ "aux enregistrements DNS de votre domaine pour la vérification de la "
+#~ "votre fournisseur DNS. Nous ajouterons un ou plusieurs enregistrements "
+#~ "TXT aux enregistrements DNS de votre domaine pour la vérification de la "
 #~ "propriété. Une fois la vérification terminée, les enregistrements seront "
 #~ "supprimés. Veuillez noter que les configurations de temps ci-dessous sont "
 #~ "toutes en secondes."

+ 102 - 71
app/src/language/ko_KR/app.po

@@ -5,11 +5,11 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "PO-Revision-Date: 2025-04-07 12:21+0000\n"
 "Last-Translator: jkh0kr <admin@jkh.kr>\n"
-"Language-Team: Korean "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/ko/>\n"
+"Language-Team: Korean <https://weblate.nginxui.com/projects/nginx-ui/"
+"frontend/ko/>\n"
 "Language: ko_KR\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Weblate 5.10.4\n"
@@ -241,7 +241,7 @@ msgstr "ChatGPT에게 도움 요청"
 msgid "Assistant"
 msgstr "어시스턴트"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr "수정 시도"
 
@@ -597,6 +597,12 @@ msgstr "채널"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "다시 확인"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "다시 확인"
@@ -604,8 +610,8 @@ msgstr "다시 확인"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -634,8 +640,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 
 #: src/constants/errors/crypto.ts:3
@@ -1248,7 +1254,8 @@ msgstr "도메인"
 
 #: src/views/certificate/components/CertificateEditor.vue:112
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
-msgstr "도메인 목록이 비어 있습니다. %{config}에 대한 자동 인증서를 다시 열어보세요"
+msgstr ""
+"도메인 목록이 비어 있습니다. %{config}에 대한 자동 인증서를 다시 열어보세요"
 
 #: src/language/constants.ts:27
 msgid "Download latest release error"
@@ -2022,8 +2029,8 @@ msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -2118,7 +2125,7 @@ msgstr "설치"
 msgid "Install successfully"
 msgstr "성공적으로 활성화됨"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "설치"
@@ -2383,7 +2390,7 @@ msgstr "로그인"
 msgid "Login successful"
 msgstr "로그인 성공"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "로그아웃 성공"
 
@@ -2393,16 +2400,18 @@ msgstr "로그관리"
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
-msgstr ""
-"Logrotate는 대부분의 주류 리눅스 배포판에서Nginx UI를 호스트 머신에 설치하는 사용자에게 기본적으로 활성화되어 있으므로이 "
-"페이지의 매개 변수를 수정할 필요가 없습니다. 도커 컨테이너를 사용하여 Nginx UI를 설치하는사용자는이 옵션을 수동으로 활성화할 수 "
-"있습니다. Nginx UI의 크론탭 작업 스케줄러는설정한 간격 (분 단위)에서 logrotate 명령을 실행합니다."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
+msgstr ""
+"Logrotate는 대부분의 주류 리눅스 배포판에서Nginx UI를 호스트 머신에 설치하는 "
+"사용자에게 기본적으로 활성화되어 있으므로이 페이지의 매개 변수를 수정할 필요"
+"가 없습니다. 도커 컨테이너를 사용하여 Nginx UI를 설치하는사용자는이 옵션을 수"
+"동으로 활성화할 수 있습니다. Nginx UI의 크론탭 작업 스케줄러는설정한 간격 "
+"(분 단위)에서 logrotate 명령을 실행합니다."
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:68
@@ -2426,8 +2435,8 @@ msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort before obtaining the certificate."
 msgstr ""
-"인증서를 획득하기 전에 .well-known 디렉토리에 대한역방향 프록시를 HTTPChallengePort(기본값: 9180)로 "
-"구성했는지 확인하세요."
+"인증서를 획득하기 전에 .well-known 디렉토리에 대한역방향 프록시를 "
+"HTTPChallengePort(기본값: 9180)로 구성했는지 확인하세요."
 
 #: src/routes/modules/config.ts:10 src/views/config/ConfigEditor.vue:115
 #: src/views/config/ConfigEditor.vue:166 src/views/config/ConfigList.vue:72
@@ -2634,7 +2643,7 @@ msgstr "네트워크 총 수신"
 msgid "Network Total Send"
 msgstr "네트워크 총 송신"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "설치"
@@ -2654,7 +2663,7 @@ msgid "New version released"
 msgstr "새 버전 출시"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2840,8 +2849,8 @@ msgstr "Nginx 구성 오류름"
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 #, fuzzy
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Nginx 구성 오류름"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3223,13 +3232,15 @@ msgstr ""
 msgid ""
 "Please first add credentials in Certification > DNS Credentials, and then "
 "select one of the credentialsbelow to request the API of the DNS provider."
-msgstr "먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청하려면 아래 자격 증명 중 하나를 선택해주세요."
+msgstr ""
+"먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청"
+"하려면 아래 자격 증명 중 하나를 선택해주세요."
 
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3268,16 +3279,17 @@ msgstr "비밀번호를 입력해주세요!"
 msgid "Please input your username!"
 msgstr "사용자 이름을 입력해주세요!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr "아래의 시간 설정 단위는 모두 초 단위임을 유의해주세요."
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3386,7 +3398,7 @@ msgstr "읽기"
 msgid "Receive"
 msgstr "수신"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3725,7 +3737,7 @@ msgstr "재시작 중"
 msgid "Restore completed successfully"
 msgstr "성공적으로 삭제됨"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "시스템"
@@ -3899,10 +3911,15 @@ msgstr ""
 msgid "Selector"
 msgstr "선택"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3963,17 +3980,17 @@ msgstr "HTTP01 공급자 설정"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4168,9 +4185,9 @@ msgstr "성공"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -4271,7 +4288,7 @@ msgstr "시스템"
 msgid "System Backup"
 msgstr "시스템"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "시스템"
@@ -4285,7 +4302,7 @@ msgstr ""
 msgid "System Restore"
 msgstr "시스템"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4315,7 +4332,9 @@ msgid ""
 "The certificate for the domain will be checked 30 minutes, and will be "
 "renewed if it has been more than 1 week or the period you set in settings "
 "since it was last issued."
-msgstr "도메인의 인증서는 매 시간 확인되며,마지막으로 발급된 지 1개월이 경과한 경우 갱신됩니다."
+msgstr ""
+"도메인의 인증서는 매 시간 확인되며,마지막으로 발급된 지 1개월이 경과한 경우 "
+"갱신됩니다."
 
 #: src/views/install/components/InstallForm.vue:48
 msgid "The filename cannot contain the following characters: %{c}"
@@ -4338,8 +4357,7 @@ msgstr "Certificate Status"
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4350,7 +4368,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4456,7 +4475,8 @@ msgid "This field should not be empty"
 msgstr "이 필드는 비워둘 수 없습니다"
 
 #: src/constants/form_errors.ts:6
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr ""
 
 #: src/views/dashboard/NginxDashBoard.vue:153
@@ -4496,7 +4516,8 @@ msgid ""
 msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:124
@@ -4540,12 +4561,13 @@ msgstr ""
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
-"인증서 자동 갱신이 정상적으로 작동하도록 하려면,권한에서 백엔드로 요청을 프록시할 수 있는 위치를 추가해야 하며,이 파일을 저장하고 "
-"Nginx를 다시로드해야 합니다.계속하시겠습니까?"
+"인증서 자동 갱신이 정상적으로 작동하도록 하려면,권한에서 백엔드로 요청을 프록"
+"시할 수 있는 위치를 추가해야 하며,이 파일을 저장하고 Nginx를 다시로드해야 합"
+"니다.계속하시겠습니까?"
 
 #: src/views/preference/tabs/OpenAISettings.vue:36
 msgid ""
@@ -4625,7 +4647,7 @@ msgstr "유형"
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4734,7 +4756,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "시스템 요구 사항을 확인하십시오"
 
@@ -4797,13 +4819,17 @@ msgstr ""
 msgid ""
 "We will add one or more TXT records to the DNS records of your domain for "
 "ownership verification."
-msgstr "도메인 소유권 검증을 위해 도메인의 DNS레코드에 하나 이상의 TXT 레코드를 추가할 것입니다."
+msgstr ""
+"도메인 소유권 검증을 위해 도메인의 DNS레코드에 하나 이상의 TXT 레코드를 추가"
+"할 것입니다."
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
-msgstr "이 파일에서 HTTPChallenge 구성을 제거하고 Nginx를 다시 로드할 예정입니다. 계속하시겠습니까?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
+msgstr ""
+"이 파일에서 HTTPChallenge 구성을 제거하고 Nginx를 다시 로드할 예정입니다. 계"
+"속하시겠습니까?"
 
 #: src/views/preference/tabs/AuthSettings.vue:97
 msgid "Webauthn"
@@ -4857,7 +4883,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -4886,8 +4912,8 @@ msgstr "예"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -4913,7 +4939,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -4998,11 +5025,14 @@ msgstr ""
 #~ msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 #, fuzzy
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
 #~ msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 #, fuzzy
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
 #~ msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 #, fuzzy
@@ -5016,7 +5046,8 @@ msgstr ""
 #~ msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 #, fuzzy
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 #, fuzzy

+ 26 - 16
app/src/language/messages.pot

@@ -230,7 +230,7 @@ msgstr ""
 msgid "Assistant"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr ""
 
@@ -567,6 +567,11 @@ msgstr ""
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+msgid "Check"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr ""
@@ -1962,7 +1967,7 @@ msgstr ""
 msgid "Install successfully"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 msgid "Installation"
 msgstr ""
 
@@ -2203,7 +2208,7 @@ msgstr ""
 msgid "Login successful"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr ""
 
@@ -2433,7 +2438,7 @@ msgstr ""
 msgid "Network Total Send"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 msgid "New Installation"
 msgstr ""
 
@@ -2450,7 +2455,7 @@ msgid "New version released"
 msgstr ""
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -3015,7 +3020,7 @@ msgstr ""
 msgid "Please input your username!"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
@@ -3024,7 +3029,7 @@ msgstr ""
 msgid "Please note that the unit of time configurations below are all in seconds."
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3126,7 +3131,7 @@ msgstr ""
 msgid "Receive"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3417,7 +3422,7 @@ msgstr ""
 msgid "Restore completed successfully"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 msgid "Restore from Backup"
 msgstr ""
 
@@ -3575,11 +3580,16 @@ msgstr ""
 msgid "Selector"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:50
+#: src/components/SelfCheck/SelfCheck.vue:16
 #: src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3642,7 +3652,7 @@ msgstr ""
 msgid "Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui.com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -3913,7 +3923,7 @@ msgstr ""
 msgid "System Backup"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 msgid "System Check"
 msgstr ""
 
@@ -3925,7 +3935,7 @@ msgstr ""
 msgid "System Restore"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 msgid "System restored successfully."
 msgstr ""
@@ -4203,7 +4213,7 @@ msgstr ""
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4310,7 +4320,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr ""
 
@@ -4414,7 +4424,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49
+#: src/layouts/HeaderLayout.vue:61
 #: src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"

+ 106 - 83
app/src/language/ru_RU/app.po

@@ -7,11 +7,11 @@ msgstr ""
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2025-03-28 02:45+0300\n"
 "Last-Translator: Artyom Isrofilov <artyom@isrofilov.ru>\n"
-"Language-Team: Russian "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/ru/>\n"
+"Language-Team: Russian <https://weblate.nginxui.com/projects/nginx-ui/"
+"frontend/ru/>\n"
 "Language: ru_RU\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 3.5\n"
@@ -245,7 +245,7 @@ msgstr "Обратитесь за помощью к ChatGPT"
 msgid "Assistant"
 msgstr "Ассистент"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr "Попытка исправить"
 
@@ -595,6 +595,12 @@ msgstr "Канал"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "Проверить повторно"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "Проверить повторно"
@@ -602,8 +608,8 @@ msgstr "Проверить повторно"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -632,8 +638,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 
 #: src/constants/errors/crypto.ts:3
@@ -1244,7 +1250,8 @@ msgstr "Домен"
 
 #: src/views/certificate/components/CertificateEditor.vue:112
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
-msgstr "Список доменов пуст, попробуйте заново создать авто-сертификат для %{config}"
+msgstr ""
+"Список доменов пуст, попробуйте заново создать авто-сертификат для %{config}"
 
 #: src/language/constants.ts:27
 msgid "Download latest release error"
@@ -1876,8 +1883,8 @@ msgid ""
 "Follow the instructions in the dialog to complete the passkey registration "
 "process."
 msgstr ""
-"Следуйте инструкциям в всплывающем окне, чтобы завершить процесс "
-"регистрации ключа доступа."
+"Следуйте инструкциям в всплывающем окне, чтобы завершить процесс регистрации "
+"ключа доступа."
 
 #: src/views/preference/tabs/NodeSettings.vue:42
 #: src/views/preference/tabs/NodeSettings.vue:54
@@ -2014,8 +2021,8 @@ msgstr "Если оставить пустым, будет использова
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -2038,7 +2045,8 @@ msgstr ""
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:70
 msgid "If your browser supports WebAuthn Passkey, a dialog box will appear."
-msgstr "Если ваш браузер поддерживает WebAuthn Passkey, появится диалоговое окно."
+msgstr ""
+"Если ваш браузер поддерживает WebAuthn Passkey, появится диалоговое окно."
 
 #: src/components/AutoCertForm/AutoCertForm.vue:107
 msgid ""
@@ -2116,7 +2124,7 @@ msgstr "Установить"
 msgid "Install successfully"
 msgstr "Установка прошла успешно"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "Установить"
@@ -2370,7 +2378,7 @@ msgstr "Логин"
 msgid "Login successful"
 msgstr "Авторизация успешна"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "Выход выполнен успешно"
 
@@ -2380,18 +2388,18 @@ msgstr "Прокрутка"
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
 msgstr ""
 "Logrotate по умолчанию включен в большинстве основных дистрибутивов Linux "
 "для пользователей, которые устанавливают Nginx UI на хост-машину, поэтому "
-"вам не нужно изменять параметры на этой странице. Для пользователей, "
-"которые устанавливают Nginx UI с использованием Docker-контейнеров, вы "
-"можете вручную включить эту опцию. Планировщик задач crontab Nginx UI будет "
+"вам не нужно изменять параметры на этой странице. Для пользователей, которые "
+"устанавливают Nginx UI с использованием Docker-контейнеров, вы можете "
+"вручную включить эту опцию. Планировщик задач crontab Nginx UI будет "
 "выполнять команду logrotate с интервалом, который вы установите в минутах."
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
@@ -2616,7 +2624,7 @@ msgstr "Всего получено"
 msgid "Network Total Send"
 msgstr "Всего отправлено"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "Установить"
@@ -2634,7 +2642,7 @@ msgid "New version released"
 msgstr "Вышла новая версия"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2819,8 +2827,8 @@ msgstr "Ошибка разбора конфигурации Nginx"
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 #, fuzzy
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Ошибка разбора конфигурации Nginx"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3195,8 +3203,8 @@ msgid ""
 "Please fill in the API authentication credentials provided by your DNS "
 "provider."
 msgstr ""
-"Пожалуйста, заполните учетные данные API, предоставленные вашим "
-"DNS-провайдером."
+"Пожалуйста, заполните учетные данные API, предоставленные вашим DNS-"
+"провайдером."
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:106
 msgid "Please fill in the required fields"
@@ -3214,8 +3222,8 @@ msgstr ""
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3255,18 +3263,19 @@ msgstr "Введите ваш пароль!"
 msgid "Please input your username!"
 msgstr "Введите ваше имя пользователя!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr ""
 "Обратите внимание, что единица измерения времени в конфигурациях ниже "
 "указана в секундах."
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3372,7 +3381,7 @@ msgstr "Чтение"
 msgid "Receive"
 msgstr "Принято"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3399,8 +3408,8 @@ msgid ""
 "Recovery codes are used to access your account when you lose access to your "
 "2FA device. Each code can only be used once."
 msgstr ""
-"Коды восстановления используются для доступа к аккаунту при утере "
-"2FA-устройства. Каждый код можно использовать только один раз."
+"Коды восстановления используются для доступа к аккаунту при утере 2FA-"
+"устройства. Каждый код можно использовать только один раз."
 
 #: src/views/preference/tabs/CertSettings.vue:40
 msgid "Recursive Nameservers"
@@ -3694,7 +3703,7 @@ msgstr "Перезапускается"
 msgid "Restore completed successfully"
 msgstr "Удалено успешно"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "Система"
@@ -3867,10 +3876,15 @@ msgstr ""
 msgid "Selector"
 msgstr "Выбор"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3932,17 +3946,17 @@ msgstr "Настройка провайдера проверки HTTP01"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4131,9 +4145,9 @@ msgstr "Успех"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -4229,7 +4243,7 @@ msgstr "Система"
 msgid "System Backup"
 msgstr "Система"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "Система"
@@ -4243,7 +4257,7 @@ msgstr "Первоначальный пользователь системы"
 msgid "System Restore"
 msgstr "Система"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4300,8 +4314,7 @@ msgstr "Введенные данные не являются ключом SSL 
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4315,7 +4328,8 @@ msgstr ""
 "точки."
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4364,8 +4378,8 @@ msgid ""
 "The server_name in the current configuration must be the domain name you "
 "need to get the certificate, supportmultiple domains."
 msgstr ""
-"server_name в текущей конфигурации должен быть доменным именем, для "
-"которого вам нужно получить сертификат, поддержка нескольких доменов."
+"server_name в текущей конфигурации должен быть доменным именем, для которого "
+"вам нужно получить сертификат, поддержка нескольких доменов."
 
 #: src/views/preference/tabs/CertSettings.vue:22
 #: src/views/preference/tabs/HTTPSettings.vue:14
@@ -4427,7 +4441,8 @@ msgstr "Это поле обязательно к заполнению"
 
 #: src/constants/form_errors.ts:6
 #, fuzzy
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr ""
 "Имя модели должно содержать только буквы, юникод, цифры, дефисы, тире и "
 "точки."
@@ -4469,7 +4484,8 @@ msgid ""
 msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr ""
 "Это обновит или переустановит интерфейс Nginx на %{nodeNames} до версии "
 "%{version}."
@@ -4517,8 +4533,8 @@ msgstr ""
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
 "Чтобы убедиться, что автоматическое обновление сертификата может работать "
@@ -4606,7 +4622,7 @@ msgstr "Тип"
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4711,7 +4727,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "Проверьте системные требования"
 
@@ -4778,11 +4794,11 @@ msgstr ""
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
 msgstr ""
-"Мы удалим конфигурацию HTTPChallenge из этого файла и перезагрузим Nginx. "
-"Вы уверены, что хотите продолжить?"
+"Мы удалим конфигурацию HTTPChallenge из этого файла и перезагрузим Nginx. Вы "
+"уверены, что хотите продолжить?"
 
 #: src/views/preference/tabs/AuthSettings.vue:97
 msgid "Webauthn"
@@ -4836,7 +4852,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -4865,8 +4881,8 @@ msgstr "Да"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -4892,7 +4908,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -4918,7 +4935,8 @@ msgstr ""
 #~ msgstr "Ошибка формата %{msg}"
 
 #~ msgid "Failed to save, syntax error(s) was detected in the configuration."
-#~ msgstr "Не удалось сохранить, обнаружены синтаксические ошибки в конфигурации."
+#~ msgstr ""
+#~ "Не удалось сохранить, обнаружены синтаксические ошибки в конфигурации."
 
 #, fuzzy
 #~ msgid "Access Token"
@@ -4981,13 +4999,16 @@ msgstr ""
 #~ "Синхронизация конфигурации %{cert_name} с %{env_name} не удалась, "
 #~ "пожалуйста, обновите удаленный Nginx UI до последней версии"
 
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
-#~ msgstr ""
-#~ "Переименование %{orig_path} в %{new_path} на %{env_name} не удалось, ответ: "
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
 #~ "%{resp}"
+#~ msgstr ""
+#~ "Переименование %{orig_path} в %{new_path} на %{env_name} не удалось, "
+#~ "ответ: %{resp}"
 
 #, fuzzy
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
 #~ msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 
 #, fuzzy
@@ -5003,15 +5024,16 @@ msgstr ""
 #~ "Синхронизация сертификата %{cert_name} с %{env_name} не удалась, "
 #~ "пожалуйста, обновите удаленный интерфейс Nginx до последней версии"
 
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr ""
 #~ "Синхронизация сертификата %{cert_name} с %{env_name} не удалась, ответ: "
 #~ "%{resp}"
 
 #~ msgid "Sync config %{config_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr ""
-#~ "Синхронизация конфигурации %{config_name} с %{env_name} не удалась, ответ: "
-#~ "%{resp}"
+#~ "Синхронизация конфигурации %{config_name} с %{env_name} не удалась, "
+#~ "ответ: %{resp}"
 
 #~ msgid "Target"
 #~ msgstr "Цель"
@@ -5020,8 +5042,8 @@ msgstr ""
 #~ msgstr "Файл"
 
 #~ msgid ""
-#~ "If you lose your mobile phone, you can use the recovery code to reset your "
-#~ "2FA."
+#~ "If you lose your mobile phone, you can use the recovery code to reset "
+#~ "your 2FA."
 #~ msgstr ""
 #~ "Если вы потеряете свой мобильный телефон, вы можете использовать код "
 #~ "восстановления для сброса 2FA."
@@ -5035,10 +5057,11 @@ msgstr ""
 #~ msgid "Server error"
 #~ msgstr "Ошибка сервера"
 
-#~ msgid "The recovery code is only displayed once, please save it in a safe place."
+#~ msgid ""
+#~ "The recovery code is only displayed once, please save it in a safe place."
 #~ msgstr ""
-#~ "Код восстановления отображается только один раз, пожалуйста, сохраните его "
-#~ "в безопасном месте."
+#~ "Код восстановления отображается только один раз, пожалуйста, сохраните "
+#~ "его в безопасном месте."
 
 #~ msgid "Too many login failed attempts, please try again later"
 #~ msgstr "Слишком много неудачных попыток входа, попробуйте позже"

+ 156 - 117
app/src/language/tr_TR/app.po

@@ -5,11 +5,11 @@ msgstr ""
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2025-04-08 18:26+0000\n"
 "Last-Translator: Ulaş <ozturkmuratulas@hotmail.com>\n"
-"Language-Team: Turkish "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/tr/>\n"
+"Language-Team: Turkish <https://weblate.nginxui.com/projects/nginx-ui/"
+"frontend/tr/>\n"
 "Language: tr_TR\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: Weblate 5.10.4\n"
@@ -116,7 +116,8 @@ msgstr "Gelişmiş Mod"
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:99
 msgid "Afterwards, refresh this page and click add passkey again."
-msgstr "Daha sonra, bu sayfayı yenileyin ve tekrar geçiş anahtarı ekle'ye tıklayın."
+msgstr ""
+"Daha sonra, bu sayfayı yenileyin ve tekrar geçiş anahtarı ekle'ye tıklayın."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
@@ -240,7 +241,7 @@ msgstr "ChatGPT'den Yardım İsteyin"
 msgid "Assistant"
 msgstr "Asistan"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 #, fuzzy
 msgid "Attempt to fix"
 msgstr "Girişimler"
@@ -595,6 +596,12 @@ msgstr "Kanal"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "Tekrar kontrol et"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "Tekrar kontrol et"
@@ -602,8 +609,8 @@ msgstr "Tekrar kontrol et"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -632,8 +639,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 
 #: src/constants/errors/crypto.ts:3
@@ -990,7 +997,8 @@ msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 #: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
-msgstr "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
+msgstr ""
+"%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 
 #: src/components/Notification/notifications.ts:74
 #, fuzzy
@@ -1004,7 +1012,8 @@ msgstr "Siteyi sil: %{site_name}"
 #: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
-msgstr "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
+msgstr ""
+"%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 
 #: src/components/Notification/notifications.ts:130
 #, fuzzy
@@ -1156,8 +1165,8 @@ msgstr ""
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr ""
-"%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme "
-"başarısız oldu"
+"%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
+"oldu"
 
 #: src/components/Notification/notifications.ts:138
 #, fuzzy
@@ -1400,8 +1409,8 @@ msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr ""
-"%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme "
-"başarısız oldu"
+"%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
+"oldu"
 
 #: src/components/Notification/notifications.ts:98
 #, fuzzy
@@ -1414,8 +1423,8 @@ msgstr ""
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr ""
-"%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme "
-"başarısız oldu"
+"%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
+"oldu"
 
 #: src/components/Notification/notifications.ts:90
 #, fuzzy
@@ -1428,8 +1437,8 @@ msgstr ""
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr ""
-"%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme "
-"başarısız oldu"
+"%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
+"oldu"
 
 #: src/components/Notification/notifications.ts:146
 #, fuzzy
@@ -2045,8 +2054,8 @@ msgstr "Boş bırakılırsa, varsayılan CA Dir kullanılır."
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -2149,7 +2158,7 @@ msgstr "Yükle"
 msgid "Install successfully"
 msgstr "Başarıyla yüklendi"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "Yükle"
@@ -2404,7 +2413,7 @@ msgstr "Giriş"
 msgid "Login successful"
 msgstr "Giriş Başarılı"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "Çıkış başarılı"
 
@@ -2414,19 +2423,19 @@ msgstr "Logrotate"
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
-msgstr ""
-"Logrotate, varsayılan olarak, Nginx UI'yi ana makineye yükleyen "
-"kullanıcılar için çoğu ana akım Linux dağıtımında etkinleştirilmiştir, bu "
-"yüzden bu sayfadaki parametreleri değiştirmenize gerek yoktur. Nginx UI'yi "
-"Docker konteynerlerini kullanarak yükleyen kullanıcılar, bu seçeneği manuel "
-"olarak etkinleştirebilir. Nginx UI'nin crontab görev zamanlayıcısı, "
-"belirlediğiniz dakika aralığında logrotate komutunu çalıştıracaktır."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
+msgstr ""
+"Logrotate, varsayılan olarak, Nginx UI'yi ana makineye yükleyen kullanıcılar "
+"için çoğu ana akım Linux dağıtımında etkinleştirilmiştir, bu yüzden bu "
+"sayfadaki parametreleri değiştirmenize gerek yoktur. Nginx UI'yi Docker "
+"konteynerlerini kullanarak yükleyen kullanıcılar, bu seçeneği manuel olarak "
+"etkinleştirebilir. Nginx UI'nin crontab görev zamanlayıcısı, belirlediğiniz "
+"dakika aralığında logrotate komutunu çalıştıracaktır."
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:68
@@ -2671,7 +2680,7 @@ msgstr "Ağ Toplam Alım"
 msgid "Network Total Send"
 msgstr "Ağ Toplam Gönderme"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "Yükle"
@@ -2692,7 +2701,7 @@ msgid "New version released"
 msgstr "Yeni sürüm yayınlandı"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 #, fuzzy
@@ -2887,8 +2896,8 @@ msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 #, fuzzy
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3303,8 +3312,8 @@ msgid ""
 "Please fill in the API authentication credentials provided by your DNS "
 "provider."
 msgstr ""
-"Lütfen DNS sağlayıcınız tarafından sağlanan API kimlik doğrulama "
-"bilgilerini doldurun."
+"Lütfen DNS sağlayıcınız tarafından sağlanan API kimlik doğrulama bilgilerini "
+"doldurun."
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:106
 #, fuzzy
@@ -3317,15 +3326,15 @@ msgid ""
 "Please first add credentials in Certification > DNS Credentials, and then "
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
-"Lütfen önce Sertifikasyon > DNS Kimlik Bilgileri bölümüne kimlik "
-"bilgilerini ekleyin ve ardından DNS sağlayıcısının API'sini istemek için "
-"aşağıdaki kimlik bilgilerinden birini seçin."
+"Lütfen önce Sertifikasyon > DNS Kimlik Bilgileri bölümüne kimlik bilgilerini "
+"ekleyin ve ardından DNS sağlayıcısının API'sini istemek için aşağıdaki "
+"kimlik bilgilerinden birini seçin."
 
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3344,14 +3353,16 @@ msgstr "Lütfen bir klasör adı girin"
 msgid ""
 "Please input name, this will be used as the filename of the new "
 "configuration!"
-msgstr "Lütfen isim girin, bu yeni yapılandırmanın dosya adı olarak kullanılacaktır!"
+msgstr ""
+"Lütfen isim girin, bu yeni yapılandırmanın dosya adı olarak kullanılacaktır!"
 
 #: src/views/site/site_list/SiteDuplicate.vue:33
 #, fuzzy
 msgid ""
 "Please input name, this will be used as the filename of the new "
 "configuration."
-msgstr "Lütfen isim girin, bu yeni yapılandırmanın dosya adı olarak kullanılacaktır!"
+msgstr ""
+"Lütfen isim girin, bu yeni yapılandırmanın dosya adı olarak kullanılacaktır!"
 
 #: src/views/install/components/InstallForm.vue:26
 #, fuzzy
@@ -3368,19 +3379,20 @@ msgstr "Lütfen şifrenizi girin!"
 msgid "Please input your username!"
 msgstr "Lütfen kullanıcı adınızı girin!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
 #, fuzzy
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr ""
 "Lütfen aşağıdaki zaman birimi konfigürasyonlarının tümünün saniye cinsinden "
 "olduğunu unutmayın."
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3497,7 +3509,7 @@ msgstr "Okumalar"
 msgid "Receive"
 msgstr "Teslim almak"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3675,12 +3687,14 @@ msgstr "Yeniden Adlandır"
 #: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
-msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
+msgstr ""
+"2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
 #: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
-msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
+msgstr ""
+"2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
 #: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 #, fuzzy
@@ -3717,22 +3731,26 @@ msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 #: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
-msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
+msgstr ""
+"2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
 #: src/components/Notification/notifications.ts:114
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
-msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
+msgstr ""
+"2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
 #: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
-msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
+msgstr ""
+"2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
 #: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
-msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
+msgstr ""
+"2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
 #: src/views/config/components/Rename.vue:43
 #, fuzzy
@@ -3856,7 +3874,7 @@ msgstr "Yeniden Başlatma"
 msgid "Restore completed successfully"
 msgstr "Başarıyla silindi"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "Sistem"
@@ -3984,7 +4002,8 @@ msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 #: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
-msgstr "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
+msgstr ""
+"%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 
 #: src/components/Notification/notifications.ts:162
 #, fuzzy
@@ -4040,10 +4059,15 @@ msgstr ""
 msgid "Selector"
 msgstr "Selektör"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 #, fuzzy
@@ -4113,17 +4137,17 @@ msgstr "HTTP01 meydan okuma sağlayıcısını ayarlama"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4327,9 +4351,9 @@ msgstr "Başarılı"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -4437,7 +4461,7 @@ msgstr "Sistem"
 msgid "System Backup"
 msgstr "Sistem"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "Sistem"
@@ -4452,7 +4476,7 @@ msgstr "Sistem İlk Kullanıcısı"
 msgid "System Restore"
 msgstr "Sistem"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4486,8 +4510,8 @@ msgid ""
 "since it was last issued."
 msgstr ""
 "Etki alanı için sertifika 30 dakikada bir kontrol edilecek ve en son "
-"verilmesinden bu yana 1 haftadan veya ayarlarda belirlediğiniz süreden "
-"fazla zaman geçtiyse yenilenecektir."
+"verilmesinden bu yana 1 haftadan veya ayarlarda belirlediğiniz süreden fazla "
+"zaman geçtiyse yenilenecektir."
 
 #: src/views/install/components/InstallForm.vue:48
 #, fuzzy
@@ -4499,7 +4523,8 @@ msgstr "Dosya adı aşağıdaki karakterleri içeremez: %{c}"
 msgid ""
 "The ICP Number should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
-msgstr "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
+msgstr ""
+"Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
 
 #: src/views/certificate/components/CertificateEditor.vue:216
 #, fuzzy
@@ -4513,8 +4538,7 @@ msgstr "Girdi bir SSL Sertifika Anahtarı değil"
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4523,10 +4547,12 @@ msgstr ""
 msgid ""
 "The model name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
-msgstr "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
+msgstr ""
+"Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4534,7 +4560,8 @@ msgstr ""
 msgid ""
 "The node name should only contain letters, unicode, numbers, hyphens, "
 "dashes, colons, and dots."
-msgstr "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
+msgstr ""
+"Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
 
 #: src/views/site/site_add/SiteAdd.vue:95
 #, fuzzy
@@ -4647,8 +4674,10 @@ msgstr "Bu alan boş bırakılmamalıdır"
 
 #: src/constants/form_errors.ts:6
 #, fuzzy
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
-msgstr "Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
+msgstr ""
+"Model adı yalnızca harf, unicode, sayı, tire, çizgi ve nokta içermelidir."
 
 #: src/views/dashboard/NginxDashBoard.vue:153
 msgid ""
@@ -4688,7 +4717,8 @@ msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
 #, fuzzy
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr ""
 "Bu, %{nodeNames} üzerindeki Nginx kullanıcı arayüzünü %{version}'e "
 "yükseltecek veya yeniden yükleyecektir."
@@ -4735,21 +4765,21 @@ msgid ""
 "Please manually configure the following in the app.ini configuration file "
 "and restart Nginx UI."
 msgstr ""
-"Güvenliği sağlamak için, Webauthn yapılandırması kullanıcı arayüzü "
-"üzerinden eklenemez. Lütfen app.ini yapılandırma dosyasında aşağıdakileri "
-"manuel olarak yapılandırın ve Nginx UI'yi yeniden başlatın."
+"Güvenliği sağlamak için, Webauthn yapılandırması kullanıcı arayüzü üzerinden "
+"eklenemez. Lütfen app.ini yapılandırma dosyasında aşağıdakileri manuel "
+"olarak yapılandırın ve Nginx UI'yi yeniden başlatın."
 
 #: src/views/site/site_edit/components/Cert/IssueCert.vue:33
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 #, fuzzy
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
-"Otomatik sertifika yenilemenin normal şekilde çalıştığından emin olmak "
-"için, otoriteden arka uca isteği proxyleyebilecek bir konum eklememiz ve bu "
+"Otomatik sertifika yenilemenin normal şekilde çalıştığından emin olmak için, "
+"otoriteden arka uca isteği proxyleyebilecek bir konum eklememiz ve bu "
 "dosyayı kaydedip Nginx'i yeniden yüklememiz gerekir. Devam etmek "
 "istediğinizden emin misiniz?"
 
@@ -4760,9 +4790,9 @@ msgid ""
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "local API."
 msgstr ""
-"Yerel bir büyük model kullanmak için, vllm veya lmdeploy ile dağıtın. "
-"OpenAI uyumlu bir API uç noktası sağlarlar, bu nedenle baseUrl'yi yerel "
-"API'nize ayarlamanız yeterlidir."
+"Yerel bir büyük model kullanmak için, vllm veya lmdeploy ile dağıtın. OpenAI "
+"uyumlu bir API uç noktası sağlarlar, bu nedenle baseUrl'yi yerel API'nize "
+"ayarlamanız yeterlidir."
 
 #: src/views/dashboard/NginxDashBoard.vue:57
 #, fuzzy
@@ -4843,7 +4873,7 @@ msgstr "Tip"
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4963,7 +4993,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "Sistem Gereksinimlerini Doğrulun"
 
@@ -5037,8 +5067,8 @@ msgstr ""
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 #, fuzzy
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
 msgstr ""
 "HTTPChallenge yapılandırmasını bu dosyadan kaldıracağız ve Nginx'i yeniden "
 "yükleyeceğiz. Devam etmek istediğinizden emin misiniz?"
@@ -5099,7 +5129,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -5132,8 +5162,8 @@ msgstr "Evet"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -5164,7 +5194,8 @@ msgstr ""
 "ekleyemezsiniz."
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -5217,7 +5248,8 @@ msgstr "Geçiş anahtarlarınız"
 #~ msgstr "Yeniden Başlatma"
 
 #~ msgid "Deploy %{conf_name} to %{node_name} successfully"
-#~ msgstr "%{conf_name} yapılandırması başarıyla %{node_name} düğümüne dağıtıldı"
+#~ msgstr ""
+#~ "%{conf_name} yapılandırması başarıyla %{node_name} düğümüne dağıtıldı"
 
 #~ msgid "Deploy successfully"
 #~ msgstr "Başarıyla Dağıtıldı"
@@ -5225,8 +5257,8 @@ msgstr "Geçiş anahtarlarınız"
 #, fuzzy
 #~ msgid "Disable site %{site} on %{node} error, response: %{resp}"
 #~ msgstr ""
-#~ "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
-#~ "oldu"
+#~ "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme "
+#~ "başarılı oldu"
 
 #~ msgid "Do you want to deploy this file to remote server?"
 #~ msgid_plural "Do you want to deploy this file to remote servers?"
@@ -5241,8 +5273,8 @@ msgstr "Geçiş anahtarlarınız"
 
 #~ msgid "Enable %{conf_name} in %{node_name} successfully"
 #~ msgstr ""
-#~ "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
-#~ "oldu"
+#~ "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme "
+#~ "başarılı oldu"
 
 #~ msgid "Enable successfully"
 #~ msgstr "Başarıyla etkinleştirildi"
@@ -5254,14 +5286,18 @@ msgstr "Geçiş anahtarlarınız"
 #~ "Nginx kullanıcı arayüzünü en son sürüme yükseltin"
 
 #, fuzzy
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
 #~ msgstr ""
-#~ "2] üzerinde %{orig_path}'ı %{new_path} olarak yeniden adlandırma başarısız "
-#~ "oldu, yanıt: %{resp}"
+#~ "2] üzerinde %{orig_path}'ı %{new_path} olarak yeniden adlandırma "
+#~ "başarısız oldu, yanıt: %{resp}"
 
 #, fuzzy
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
-#~ msgstr "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgstr ""
+#~ "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
 #, fuzzy
 #~ msgid "Save site %{site} to %{node} error, response: %{resp}"
@@ -5278,7 +5314,8 @@ msgstr "Geçiş anahtarlarınız"
 #~ "lütfen uzak Nginx kullanıcı arayüzünü en son sürüme yükseltin"
 
 #, fuzzy
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr ""
 #~ "Sertifika %{cert_name} ile %{env_name} arasında senkronizasyon başarısız "
 #~ "oldu, yanıt: %{resp}"
@@ -5300,8 +5337,8 @@ msgstr "Geçiş anahtarlarınız"
 #~ msgstr "Dosya"
 
 #~ msgid ""
-#~ "If you lose your mobile phone, you can use the recovery code to reset your "
-#~ "2FA."
+#~ "If you lose your mobile phone, you can use the recovery code to reset "
+#~ "your 2FA."
 #~ msgstr ""
 #~ "Cep telefonunuzu kaybederseniz, 2FA'nızı sıfırlamak için kurtarma kodunu "
 #~ "kullanabilirsiniz."
@@ -5318,7 +5355,8 @@ msgstr "Geçiş anahtarlarınız"
 #~ msgstr "Server hatası"
 
 #, fuzzy
-#~ msgid "The recovery code is only displayed once, please save it in a safe place."
+#~ msgid ""
+#~ "The recovery code is only displayed once, please save it in a safe place."
 #~ msgstr ""
 #~ "Kurtarma kodu yalnızca bir kez görüntülenir, lütfen güvenli bir yere "
 #~ "kaydedin."
@@ -5334,8 +5372,9 @@ msgstr "Geçiş anahtarlarınız"
 #~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade "
 #~ "the remote Nginx UI to the latest version"
 #~ msgstr ""
-#~ "2] üzerinde %{orig_path}'ı %{new_path} olarak yeniden adlandırmak başarısız "
-#~ "oldu, lütfen uzak Nginx kullanıcı arayüzünü en son sürüme yükseltin"
+#~ "2] üzerinde %{orig_path}'ı %{new_path} olarak yeniden adlandırmak "
+#~ "başarısız oldu, lütfen uzak Nginx kullanıcı arayüzünü en son sürüme "
+#~ "yükseltin"
 
 #, fuzzy
 #~ msgid "Server Name"

+ 71 - 56
app/src/language/uk_UA/app.po

@@ -4,11 +4,11 @@ msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "PO-Revision-Date: 2025-04-16 15:12+0000\n"
 "Last-Translator: sergio_from_tauri <dedysobr@gmail.com>\n"
-"Language-Team: Ukrainian "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/uk/>\n"
+"Language-Team: Ukrainian <https://weblate.nginxui.com/projects/nginx-ui/"
+"frontend/uk/>\n"
 "Language: uk_UA\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
 "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
@@ -116,7 +116,8 @@ msgstr "Розширений режим"
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:99
 msgid "Afterwards, refresh this page and click add passkey again."
-msgstr "Після цього оновіть цю сторінку та знову натисніть «Додати ключ доступу»."
+msgstr ""
+"Після цього оновіть цю сторінку та знову натисніть «Додати ключ доступу»."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
@@ -240,7 +241,7 @@ msgstr "Запитати допомоги у ChatGPT"
 msgid "Assistant"
 msgstr "Помічник"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr "Спробувати виправити"
 
@@ -579,6 +580,11 @@ msgstr ""
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+msgid "Check"
+msgstr ""
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr ""
@@ -586,8 +592,8 @@ msgstr ""
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -616,8 +622,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 
 #: src/constants/errors/crypto.ts:3
@@ -1890,8 +1896,8 @@ msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -1984,7 +1990,7 @@ msgstr ""
 msgid "Install successfully"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 msgid "Installation"
 msgstr ""
 
@@ -2226,7 +2232,7 @@ msgstr ""
 msgid "Login successful"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr ""
 
@@ -2236,12 +2242,12 @@ msgstr ""
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
 msgstr ""
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
@@ -2457,7 +2463,7 @@ msgstr ""
 msgid "Network Total Send"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 msgid "New Installation"
 msgstr ""
 
@@ -2474,7 +2480,7 @@ msgid "New version released"
 msgstr ""
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2643,8 +2649,8 @@ msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr ""
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3016,8 +3022,8 @@ msgstr ""
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3053,16 +3059,17 @@ msgstr ""
 msgid "Please input your username!"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3162,7 +3169,7 @@ msgstr ""
 msgid "Receive"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3458,7 +3465,7 @@ msgstr ""
 msgid "Restore completed successfully"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 msgid "Restore from Backup"
 msgstr ""
 
@@ -3617,10 +3624,15 @@ msgstr ""
 msgid "Selector"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3678,17 +3690,17 @@ msgstr ""
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -3864,9 +3876,9 @@ msgstr ""
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -3956,7 +3968,7 @@ msgstr ""
 msgid "System Backup"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 msgid "System Check"
 msgstr ""
 
@@ -3968,7 +3980,7 @@ msgstr ""
 msgid "System Restore"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 msgid "System restored successfully."
 msgstr ""
@@ -4017,8 +4029,7 @@ msgstr ""
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4029,7 +4040,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4126,7 +4138,8 @@ msgid "This field should not be empty"
 msgstr ""
 
 #: src/constants/form_errors.ts:6
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr ""
 
 #: src/views/dashboard/NginxDashBoard.vue:153
@@ -4166,7 +4179,8 @@ msgid ""
 msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:124
@@ -4210,8 +4224,8 @@ msgstr ""
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
 
@@ -4293,7 +4307,7 @@ msgstr ""
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4396,7 +4410,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "Перевірте системні вимоги"
 
@@ -4458,8 +4472,8 @@ msgstr ""
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:97
@@ -4513,7 +4527,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -4542,8 +4556,8 @@ msgstr ""
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -4569,7 +4583,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94

+ 90 - 68
app/src/language/vi_VN/app.po

@@ -5,7 +5,7 @@ msgstr ""
 "Language-Team: none\n"
 "Language: vi_VN\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
@@ -256,7 +256,7 @@ msgstr "Hỏi ChatGPT"
 msgid "Assistant"
 msgstr "Trợ lý"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr ""
 
@@ -621,6 +621,12 @@ msgstr "Kênh"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "Kiểm tra lại"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "Kiểm tra lại"
@@ -628,8 +634,8 @@ msgstr "Kiểm tra lại"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
@@ -658,8 +664,8 @@ msgstr ""
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
 msgstr ""
 
 #: src/constants/errors/crypto.ts:3
@@ -2062,8 +2068,8 @@ msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:145
@@ -2159,7 +2165,7 @@ msgstr "Cài đặt"
 msgid "Install successfully"
 msgstr "Cài đặt thành công"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "Cài đặt"
@@ -2424,7 +2430,7 @@ msgstr "Đăng nhập"
 msgid "Login successful"
 msgstr "Đăng nhập thành công"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "Đã đăng xuất"
 
@@ -2434,12 +2440,12 @@ msgstr ""
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
 msgstr ""
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
@@ -2464,9 +2470,8 @@ msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort before obtaining the certificate."
 msgstr ""
-"Đảm bảo rằng bạn đã định cấu hình proxy ngược (reverse proxy) thư mục "
-".well-known tới HTTPChallengePort (default: 9180) trước khi ký chứng chỉ "
-"SSL."
+"Đảm bảo rằng bạn đã định cấu hình proxy ngược (reverse proxy) thư mục .well-"
+"known tới HTTPChallengePort (default: 9180) trước khi ký chứng chỉ SSL."
 
 #: src/routes/modules/config.ts:10 src/views/config/ConfigEditor.vue:115
 #: src/views/config/ConfigEditor.vue:166 src/views/config/ConfigList.vue:72
@@ -2672,7 +2677,7 @@ msgstr "Tổng lưu lượng mạng đã nhận"
 msgid "Network Total Send"
 msgstr "Tổng lưu lượng mạng đã gửi"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 #, fuzzy
 msgid "New Installation"
 msgstr "Cài đặt"
@@ -2692,7 +2697,7 @@ msgid "New version released"
 msgstr "Đã có phiên bản mới"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2874,8 +2879,8 @@ msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 #, fuzzy
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3247,7 +3252,8 @@ msgstr ""
 msgid ""
 "Please fill in the API authentication credentials provided by your DNS "
 "provider."
-msgstr "Vui lòng điền thông tin xác thực API do nhà cung cấp DNS của bạn cung cấp"
+msgstr ""
+"Vui lòng điền thông tin xác thực API do nhà cung cấp DNS của bạn cung cấp"
 
 #: src/components/StdDesign/StdDataDisplay/StdCurd.vue:106
 msgid "Please fill in the required fields"
@@ -3258,14 +3264,14 @@ msgid ""
 "Please first add credentials in Certification > DNS Credentials, and then "
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
-"Trước tiên, vui lòng thêm thông tin xác thực trong Chứng chỉ > Thông tin "
-"xác thực DNS, sau đó chọn nhà cung cấp DNS"
+"Trước tiên, vui lòng thêm thông tin xác thực trong Chứng chỉ > Thông tin xác "
+"thực DNS, sau đó chọn nhà cung cấp DNS"
 
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr ""
 
 #: src/views/config/components/Rename.vue:65
@@ -3283,14 +3289,16 @@ msgstr "Vui lòng nhập username!"
 msgid ""
 "Please input name, this will be used as the filename of the new "
 "configuration!"
-msgstr "Vui lòng nhập tên, tên này sẽ được sử dụng làm tên tệp của cấu hình mới!"
+msgstr ""
+"Vui lòng nhập tên, tên này sẽ được sử dụng làm tên tệp của cấu hình mới!"
 
 #: src/views/site/site_list/SiteDuplicate.vue:33
 #, fuzzy
 msgid ""
 "Please input name, this will be used as the filename of the new "
 "configuration."
-msgstr "Vui lòng nhập tên, tên này sẽ được sử dụng làm tên tệp của cấu hình mới!"
+msgstr ""
+"Vui lòng nhập tên, tên này sẽ được sử dụng làm tên tệp của cấu hình mới!"
 
 #: src/views/install/components/InstallForm.vue:26
 msgid "Please input your E-mail!"
@@ -3304,16 +3312,17 @@ msgstr "Vui lòng nhập mật khẩu!"
 msgid "Please input your username!"
 msgstr "Vui lòng nhập username!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr ""
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr "Lưu ý đơn vị cấu hình thời gian bên dưới được tính bằng giây."
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3417,7 +3426,7 @@ msgstr "Đọc"
 msgid "Receive"
 msgstr "Nhận"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr ""
 
@@ -3756,7 +3765,7 @@ msgstr "Đang khởi động lại"
 msgid "Restore completed successfully"
 msgstr "Đã xoá thành công"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 #, fuzzy
 msgid "Restore from Backup"
 msgstr "Thông tin"
@@ -3930,10 +3939,15 @@ msgstr ""
 msgid "Selector"
 msgstr "Bộ chọn"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3995,17 +4009,17 @@ msgstr "Sử dụng HTTP01 để xác thực SSL"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -4196,9 +4210,9 @@ msgstr "Thành công"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
@@ -4299,7 +4313,7 @@ msgstr "Thông tin"
 msgid "System Backup"
 msgstr "Thông tin"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "Thông tin"
@@ -4313,7 +4327,7 @@ msgstr ""
 msgid "System Restore"
 msgstr "Thông tin"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 #, fuzzy
 msgid "System restored successfully."
@@ -4367,8 +4381,7 @@ msgstr ""
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4379,7 +4392,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4419,7 +4433,8 @@ msgstr ""
 msgid ""
 "The server_name in the current configuration must be the domain name you "
 "need to get the certificate, supportmultiple domains."
-msgstr "Lưu ý: server_name trong cấu hình hiện tại phải là tên miền bạn muốn ký SSL."
+msgstr ""
+"Lưu ý: server_name trong cấu hình hiện tại phải là tên miền bạn muốn ký SSL."
 
 #: src/views/preference/tabs/CertSettings.vue:22
 #: src/views/preference/tabs/HTTPSettings.vue:14
@@ -4480,7 +4495,8 @@ msgid "This field should not be empty"
 msgstr "Trường này không được để trống"
 
 #: src/constants/form_errors.ts:6
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr ""
 
 #: src/views/dashboard/NginxDashBoard.vue:153
@@ -4520,7 +4536,8 @@ msgid ""
 msgstr ""
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr ""
 
 #: src/views/preference/tabs/AuthSettings.vue:124
@@ -4564,13 +4581,13 @@ msgstr ""
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
-"Để đảm bảo tính năng tự động gia hạn chứng chỉ có thể hoạt động bình "
-"thường, chúng tôi cần thêm một vị trí có thể ủy quyền yêu cầu từ cơ quan có "
-"thẩm quyền đến chương trình phụ trợ và chúng tôi cần lưu tệp này và tải lại "
+"Để đảm bảo tính năng tự động gia hạn chứng chỉ có thể hoạt động bình thường, "
+"chúng tôi cần thêm một vị trí có thể ủy quyền yêu cầu từ cơ quan có thẩm "
+"quyền đến chương trình phụ trợ và chúng tôi cần lưu tệp này và tải lại "
 "Nginx. Bạn có chắc chắn muốn Tiếp tục?"
 
 #: src/views/preference/tabs/OpenAISettings.vue:36
@@ -4651,7 +4668,7 @@ msgstr "Loại"
 msgid "Unknown"
 msgstr ""
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr ""
 
@@ -4760,7 +4777,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr ""
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "Xác minh các yêu cầu hệ thống"
 
@@ -4829,8 +4846,8 @@ msgstr ""
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
 msgstr ""
 "Chúng tôi sẽ xóa cấu hình HTTPChallenge khỏi tệp này và tải lại Nginx. Bạn "
 "có muốn tiếp tục không?"
@@ -4887,7 +4904,7 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr ""
@@ -4916,8 +4933,8 @@ msgstr "Có"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
 msgstr ""
 
 #: src/views/system/Upgrade.vue:202
@@ -4943,7 +4960,8 @@ msgid ""
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr ""
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -5029,11 +5047,14 @@ msgstr ""
 #~ msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
 #, fuzzy
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
 #~ msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
 #, fuzzy
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
 #~ msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
 #, fuzzy
@@ -5047,7 +5068,8 @@ msgstr ""
 #~ msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
 #, fuzzy
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
 #, fuzzy

+ 194 - 118
app/src/language/zh_CN/app.po

@@ -5,11 +5,11 @@ msgstr ""
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2025-04-22 22:15+0800\n"
 "Last-Translator: 0xJacky <me@jackyu.cn>\n"
-"Language-Team: Chinese (Simplified Han script) "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/zh_Hans/>\n"
+"Language-Team: Chinese (Simplified Han script) <https://weblate.nginxui.com/"
+"projects/nginx-ui/frontend/zh_Hans/>\n"
 "Language: zh_CN\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Poedit 3.6\n"
@@ -239,7 +239,7 @@ msgstr "与ChatGPT聊天"
 msgid "Assistant"
 msgstr "助手"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr "尝试修复"
 
@@ -436,7 +436,9 @@ msgstr "CADir"
 msgid ""
 "Calculated based on worker_processes * worker_connections. Actual "
 "performance depends on hardware, configuration, and workload"
-msgstr "根据 worker_processes * worker_connections 计算。实际性能取决于硬件、配置和工作量"
+msgstr ""
+"根据 worker_processes * worker_connections 计算。实际性能取决于硬件、配置和工"
+"作量"
 
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/NgxConfigEditor/NgxServer.vue:54
@@ -574,6 +576,12 @@ msgstr "通道"
 msgid "Chat"
 msgstr "聊天"
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "自我检查"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "重新检查"
@@ -581,17 +589,20 @@ msgstr "重新检查"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
-"检查 /var/run/docker.sock 是否存在。如果你使用的是 Nginx UI 官方 Docker Image,请确保 Docker "
-"Socket 像这样挂载:`-v /var/run/docker.sock:/var/run/docker.sock`."
+"检查 /var/run/docker.sock 是否存在。如果你使用的是 Nginx UI 官方 Docker "
+"Image,请确保 Docker Socket 像这样挂载:`-v /var/run/docker.sock:/var/run/"
+"docker.sock`."
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
 msgid ""
 "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and "
 "prevents using Passkeys and clipboard features."
-msgstr "检查是否启用了 HTTPS。在本地主机之外使用 HTTP 是不安全的,这也会导致无法使用 Passkey 和剪贴板功能。"
+msgstr ""
+"检查是否启用了 HTTPS。在本地主机之外使用 HTTP 是不安全的,这也会导致无法使用 "
+"Passkey 和剪贴板功能。"
 
 #: src/components/SelfCheck/tasks/backend/index.ts:26
 msgid "Check if the nginx.conf includes the conf.d directory."
@@ -613,9 +624,10 @@ msgstr "检查 sites-available 和 sites-enabled 目录是否位于 nginx 配置
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
-msgstr "检查 nginx 配置目录下是否有 streams-available 和 streams-enabled 目录。"
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
+msgstr ""
+"检查 nginx 配置目录下是否有 streams-available 和 streams-enabled 目录。"
 
 #: src/constants/errors/crypto.ts:3
 msgid "Cipher text is too short"
@@ -833,7 +845,8 @@ msgstr "创建文件夹"
 msgid ""
 "Create system backups including Nginx configuration and Nginx UI settings. "
 "Backup files will be automatically downloaded to your computer."
-msgstr "创建系统备份,包括 Nginx 配置和 Nginx UI 设置。备份文件将自动下载到你的电脑。"
+msgstr ""
+"创建系统备份,包括 Nginx 配置和 Nginx UI 设置。备份文件将自动下载到你的电脑。"
 
 #: src/views/environments/group/columns.ts:31
 #: src/views/notification/notificationColumns.tsx:59
@@ -1208,7 +1221,9 @@ msgstr "试运行模式已启动"
 msgid ""
 "Due to the security policies of some browsers, you cannot use passkeys on "
 "non-HTTPS websites, except when running on localhost."
-msgstr "由于某些浏览器的安全策略,除非在 localhost 上使用,否则不能在非 HTTPS 网站上使用 Passkey。"
+msgstr ""
+"由于某些浏览器的安全策略,除非在 localhost 上使用,否则不能在非 HTTPS 网站上"
+"使用 Passkey。"
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: src/views/site/site_list/SiteList.vue:117
@@ -1885,15 +1900,18 @@ msgstr "如果留空,则使用默认 CA Dir。"
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
-msgstr "如果日志未被索引,请检查日志文件是否位于 Nginx.LogDirWhiteList 中的目录下。"
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
+msgstr ""
+"如果日志未被索引,请检查日志文件是否位于 Nginx.LogDirWhiteList 中的目录下。"
 
 #: src/views/preference/tabs/AuthSettings.vue:145
 msgid ""
 "If the number of login failed attempts from a ip reach the max attempts in "
 "ban threshold minutes, the ip will be banned for a period of time."
-msgstr "如果某个 IP 的登录失败次数达到禁用阈值分钟内的最大尝试次数,该 IP 将被禁止登录一段时间。"
+msgstr ""
+"如果某个 IP 的登录失败次数达到禁用阈值分钟内的最大尝试次数,该 IP 将被禁止登"
+"录一段时间。"
 
 #: src/components/AutoCertForm/AutoCertForm.vue:116
 msgid ""
@@ -1979,7 +1997,7 @@ msgstr "安装"
 msgid "Install successfully"
 msgstr "安装成功"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "新安装"
@@ -2083,7 +2101,8 @@ msgstr "Jwt 密钥"
 msgid ""
 "Keep your recovery codes as safe as your password. We recommend saving them "
 "with a password manager."
-msgstr "请像保护密码一样安全地保管您的恢复代码。我们建议使用密码管理器保存它们。"
+msgstr ""
+"请像保护密码一样安全地保管您的恢复代码。我们建议使用密码管理器保存它们。"
 
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:60
 msgid "Keepalive Timeout"
@@ -2222,7 +2241,7 @@ msgstr "登录"
 msgid "Login successful"
 msgstr "登录成功"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "登出成功"
 
@@ -2232,16 +2251,17 @@ msgstr "Logrotate"
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
 msgstr ""
-"对于在宿主机上安装 Nginx UI 的用户,大多数主流 Linux 发行版都默认启用 logrotate "
-"定时任务,因此您无需修改本页面的参数。对于使用 Docker 容器安装 Nginx 用户界面的用户,您可以手动启用该选项。Nginx UI "
-"的定时任务任务调度器将按照您设置的时间间隔(以分钟为单位)执行 logrotate 命令。"
+"对于在宿主机上安装 Nginx UI 的用户,大多数主流 Linux 发行版都默认启用 "
+"logrotate 定时任务,因此您无需修改本页面的参数。对于使用 Docker 容器安装 "
+"Nginx 用户界面的用户,您可以手动启用该选项。Nginx UI 的定时任务任务调度器将按"
+"照您设置的时间间隔(以分钟为单位)执行 logrotate 命令。"
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:68
@@ -2261,7 +2281,9 @@ msgstr "成功启用维护模式"
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort before obtaining the certificate."
-msgstr "在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 HTTPChallengePort。"
+msgstr ""
+"在获取签发证书前,请确保配置文件中已将 .well-known 目录反向代理到 "
+"HTTPChallengePort。"
 
 #: src/routes/modules/config.ts:10 src/views/config/ConfigEditor.vue:115
 #: src/views/config/ConfigEditor.vue:166 src/views/config/ConfigList.vue:72
@@ -2456,7 +2478,7 @@ msgstr "下载流量"
 msgid "Network Total Send"
 msgstr "上传流量"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 msgid "New Installation"
 msgstr "新安装"
 
@@ -2473,7 +2495,7 @@ msgid "New version released"
 msgstr "新版本发布"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2642,8 +2664,8 @@ msgstr "Nginx 用户界面配置已恢复"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Nginx UI 配置已恢复,几秒钟后将自动重启。"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -2910,7 +2932,9 @@ msgid ""
 "Passkeys are webauthn credentials that validate your identity using touch, "
 "facial recognition, a device password, or a PIN. They can be used as a "
 "password replacement or as a 2FA method."
-msgstr "Passkey 是一种网络认证凭据,可通过指纹、面部识别、设备密码或 PIN 码验证身份。它们可用作密码替代品或二步验证方法。"
+msgstr ""
+"Passkey 是一种网络认证凭据,可通过指纹、面部识别、设备密码或 PIN 码验证身份。"
+"它们可用作密码替代品或二步验证方法。"
 
 #: src/views/other/Login.vue:183 src/views/user/userColumns.tsx:18
 msgid "Password"
@@ -3010,13 +3034,15 @@ msgstr "请填写必填字段"
 msgid ""
 "Please first add credentials in Certification > DNS Credentials, and then "
 "select one of the credentialsbelow to request the API of the DNS provider."
-msgstr "请首先在 “证书”> “DNS 凭证” 中添加凭证,然后在下方选择一个凭证,请求 DNS 提供商的 API。"
+msgstr ""
+"请首先在 “证书”> “DNS 凭证” 中添加凭证,然后在下方选择一个凭证,请求 DNS 提供"
+"商的 API。"
 
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr "请立即在偏好设置中生成新的恢复码,以防止无法访问您的账户。"
 
 #: src/views/config/components/Rename.vue:65
@@ -3052,16 +3078,17 @@ msgstr "请输入您的密码!"
 msgid "Please input your username!"
 msgstr "请输入您的用户名!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr "请登录。"
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr "请注意,下面的时间单位配置均以秒为单位。"
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3161,7 +3188,7 @@ msgstr "读"
 msgid "Receive"
 msgstr "下载"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr "重新检查"
 
@@ -3186,7 +3213,9 @@ msgstr "恢复代码"
 msgid ""
 "Recovery codes are used to access your account when you lose access to your "
 "2FA device. Each code can only be used once."
-msgstr "恢复代码用于在您无法访问双重身份验证设备时登录您的账户。每个代码只能使用一次。"
+msgstr ""
+"恢复代码用于在您无法访问双重身份验证设备时登录您的账户。每个代码只能使用一"
+"次。"
 
 #: src/views/preference/tabs/CertSettings.vue:40
 msgid "Recursive Nameservers"
@@ -3412,7 +3441,9 @@ msgid ""
 "Resident Set Size: Actual memory resident in physical memory, including all "
 "shared library memory, which will be repeated calculated for multiple "
 "processes"
-msgstr "驻留集大小:实际驻留在物理内存中的内存,包括所有共享库内存,将为多个进程重复计算"
+msgstr ""
+"驻留集大小:实际驻留在物理内存中的内存,包括所有共享库内存,将为多个进程重复"
+"计算"
 
 #: src/composables/usePerformanceMetrics.ts:109
 #: src/views/dashboard/components/PerformanceTablesCard.vue:68
@@ -3457,7 +3488,7 @@ msgstr "重启中"
 msgid "Restore completed successfully"
 msgstr "恢复成功"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 msgid "Restore from Backup"
 msgstr "从备份还原"
 
@@ -3616,10 +3647,15 @@ msgstr "选择同步后的操作"
 msgid "Selector"
 msgstr "选择器"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr "自我检查"
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3677,21 +3713,21 @@ msgstr "使用 HTTP01 challenge provider"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
-"Settings.NginxLogSettings.AccessLogPath 为空,更多信息请参阅 "
-"https://nginxui.com/guide/config-nginx.html"
+"Settings.NginxLogSettings.AccessLogPath 为空,更多信息请参阅 https://nginxui."
+"com/guide/config-nginx.html"
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
-"Settings.NginxLogSettings.ErrorLogPath为空,更多信息请参阅 "
-"https://nginxui.com/guide/config-nginx.html"
+"Settings.NginxLogSettings.ErrorLogPath为空,更多信息请参阅 https://nginxui."
+"com/guide/config-nginx.html"
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -3867,9 +3903,9 @@ msgstr "成功"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
 "支持通过 WebSocket 协议与后端通信,如果您正在使用 Nginx 反向代理了 Nginx UI "
 "请参考:https://nginxui.com/guide/nginx-proxy-example.html 编写配置文件"
@@ -3961,7 +3997,7 @@ msgstr "系统"
 msgid "System Backup"
 msgstr "系统备份"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "自我检查"
@@ -3974,7 +4010,7 @@ msgstr "系统初始用户"
 msgid "System Restore"
 msgstr "系统还原"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 msgid "System restored successfully."
 msgstr "系统恢复成功。"
@@ -4001,7 +4037,9 @@ msgid ""
 "The certificate for the domain will be checked 30 minutes, and will be "
 "renewed if it has been more than 1 week or the period you set in settings "
 "since it was last issued."
-msgstr "域名证书将在 30 分钟内接受检查,如果距离上次签发证书的时间超过 1 周或您在设置中设定的时间,证书将被更新。"
+msgstr ""
+"域名证书将在 30 分钟内接受检查,如果距离上次签发证书的时间超过 1 周或您在设置"
+"中设定的时间,证书将被更新。"
 
 #: src/views/install/components/InstallForm.vue:48
 msgid "The filename cannot contain the following characters: %{c}"
@@ -4023,8 +4061,7 @@ msgstr "输入的内容不是 SSL 证书密钥"
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr "日志路径不在 settings.NginxSettings.LogDirWhiteList 中的路径之下"
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4035,7 +4072,8 @@ msgid ""
 msgstr "模型名称只能包含字母、单码、数字、连字符、破折号、冒号和点。"
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr "用于代码自动补全的模型,如果未设置,则使用聊天模型。"
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4067,7 +4105,9 @@ msgid ""
 "The remote Nginx UI version is not compatible with the local Nginx UI "
 "version. To avoid potential errors, please upgrade the remote Nginx UI to "
 "match the local version."
-msgstr "远程 Nginx UI 版本与本地 Nginx UI版本不兼容。为避免意料之外的错误,请升级远程 Nginx UI,使其与本地版本一致。"
+msgstr ""
+"远程 Nginx UI 版本与本地 Nginx UI版本不兼容。为避免意料之外的错误,请升级远"
+"程 Nginx UI,使其与本地版本一致。"
 
 #: src/components/AutoCertForm/AutoCertForm.vue:43
 msgid ""
@@ -4102,7 +4142,9 @@ 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/components/CertificateEditor.vue:102
 msgid "This Auto Cert item is invalid, please remove it."
@@ -4132,7 +4174,8 @@ msgid "This field should not be empty"
 msgstr "该字段不能为空"
 
 #: src/constants/form_errors.ts:6
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr "该字段只能包含字母、unicode 字符、数字和 -_。"
 
 #: src/views/dashboard/NginxDashBoard.vue:153
@@ -4172,7 +4215,8 @@ msgid ""
 msgstr "这将恢复配置文件和数据库。恢复完成后,Nginx UI 将重新启动。"
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr "将 %{nodeNames} 上的 Nginx UI 升级或重新安装到 %{version} 版本。"
 
 #: src/views/preference/tabs/AuthSettings.vue:124
@@ -4189,7 +4233,8 @@ msgstr "提示"
 msgid ""
 "Tips: You can increase the concurrency processing capacity by increasing "
 "worker_processes or worker_connections"
-msgstr "提示您可以通过增加 worker_processes 或 worker_connections 来提高并发处理能力"
+msgstr ""
+"提示您可以通过增加 worker_processes 或 worker_connections 来提高并发处理能力"
 
 #: src/views/notification/notificationColumns.tsx:45
 msgid "Title"
@@ -4203,25 +4248,28 @@ msgstr "要确认撤销,请在下面的字段中输入 \"撤销\":"
 msgid ""
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "on your mobile phone."
-msgstr "要启用该功能,您需要在手机上安装 Google 或 Microsoft Authenticator 应用程序。"
+msgstr ""
+"要启用该功能,您需要在手机上安装 Google 或 Microsoft Authenticator 应用程序。"
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:89
 msgid ""
 "To ensure security, Webauthn configuration cannot be added through the UI. "
 "Please manually configure the following in the app.ini configuration file "
 "and restart Nginx UI."
-msgstr "为确保安全,Webauthn 配置不能通过用户界面添加。请在 app.ini 配置文件中手动配置以下内容,并重启 Nginx UI 服务。"
+msgstr ""
+"为确保安全,Webauthn 配置不能通过用户界面添加。请在 app.ini 配置文件中手动配"
+"置以下内容,并重启 Nginx UI 服务。"
 
 #: src/views/site/site_edit/components/Cert/IssueCert.vue:33
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
-"为了确保认证自动更新能够正常工作,我们需要添加一个能够代理从权威机构到后端的请求的 "
-"Location,并且我们需要保存这个文件并重新加载Nginx。你确定要继续吗?"
+"为了确保认证自动更新能够正常工作,我们需要添加一个能够代理从权威机构到后端的"
+"请求的 Location,并且我们需要保存这个文件并重新加载Nginx。你确定要继续吗?"
 
 #: src/views/preference/tabs/OpenAISettings.vue:36
 msgid ""
@@ -4229,8 +4277,8 @@ msgid ""
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "local API."
 msgstr ""
-"要使用本地大型模型,可使用 ollama、vllm 或 lmdeploy 进行部署。它们提供了与 OpenAI 兼容的 API 端点,因此只需将 "
-"baseUrl 设置为本地 API 即可。"
+"要使用本地大型模型,可使用 ollama、vllm 或 lmdeploy 进行部署。它们提供了与 "
+"OpenAI 兼容的 API 端点,因此只需将 baseUrl 设置为本地 API 即可。"
 
 #: src/views/dashboard/NginxDashBoard.vue:57
 msgid "Toggle failed"
@@ -4301,7 +4349,7 @@ msgstr "类型"
 msgid "Unknown"
 msgstr "未知"
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr "未知问题"
 
@@ -4404,7 +4452,7 @@ msgstr "值"
 msgid "Verify Backup File Integrity"
 msgstr "验证备份文件的完整性"
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "验证系统要求"
 
@@ -4456,7 +4504,9 @@ msgid ""
 "Warning: Restore operation will overwrite current configurations. Make sure "
 "you have a valid backup file and security token, and carefully select what "
 "to restore."
-msgstr "警告:还原操作将覆盖当前配置。请确保您有有效的备份文件和安全令牌,并仔细选择要还原的内容。"
+msgstr ""
+"警告:还原操作将覆盖当前配置。请确保您有有效的备份文件和安全令牌,并仔细选择"
+"要还原的内容。"
 
 #: src/views/certificate/DNSCredential.vue:56
 msgid ""
@@ -4466,9 +4516,10 @@ msgstr "我们将在您域名的 DNS 记录中添加一个或多个 TXT 记录
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
-msgstr "我们将从这个文件中删除HTTPChallenge的配置,并重新加载Nginx。你确定要继续吗?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
+msgstr ""
+"我们将从这个文件中删除HTTPChallenge的配置,并重新加载Nginx。你确定要继续吗?"
 
 #: src/views/preference/tabs/AuthSettings.vue:97
 msgid "Webauthn"
@@ -4487,14 +4538,18 @@ msgid ""
 "When Enabled, Nginx UI will automatically re-register users upon startup. "
 "Generally, do not enable this unless you are in a dev environment and using "
 "Pebble as CA."
-msgstr "启用后,Nginx UI 将在启动时自动重新注册用户。一般情况下,除非在开发环境中使用 Pebble 作为 CA,否则不要启用此功能。"
+msgstr ""
+"启用后,Nginx UI 将在启动时自动重新注册用户。一般情况下,除非在开发环境中使"
+"用 Pebble 作为 CA,否则不要启用此功能。"
 
 #: src/views/site/site_edit/components/RightPanel/Basic.vue:61
 #: src/views/stream/components/RightPanel/Basic.vue:95
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
-msgstr "启用/禁用、删除或保存此站点时,环境组中设置的节点和下面选择的节点将同步执行操作。"
+msgstr ""
+"启用/禁用、删除或保存此站点时,环境组中设置的节点和下面选择的节点将同步执行操"
+"作。"
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:140
 msgid ""
@@ -4521,7 +4576,7 @@ msgstr "工作进程"
 msgid "Workers"
 msgstr "Workers"
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
 msgstr "工作区"
@@ -4550,9 +4605,10 @@ msgstr "是的"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
-msgstr "您正在通过非本地主机域上的不安全 HTTP 连接访问此终端。这可能会暴露敏感信息。"
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
+msgstr ""
+"您正在通过非本地主机域上的不安全 HTTP 连接访问此终端。这可能会暴露敏感信息。"
 
 #: src/views/system/Upgrade.vue:202
 msgid "You are using the latest version"
@@ -4577,7 +4633,8 @@ msgid ""
 msgstr "您尚未配置 Webauthn 的设置,因此无法添加 Passkey。"
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr "您尚未启用双重身份验证。请启用双重身份验证以生成恢复代码。"
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -4606,9 +4663,11 @@ msgstr "你的 Passkeys"
 #~ msgstr "保存失败,在配置中检测到语法错误。"
 
 #~ msgid ""
-#~ "When you enable/disable, delete, or save this stream, the nodes set in the "
-#~ "Node Group and the nodes selected below will be synchronized."
-#~ msgstr "启用/禁用、删除或保存此站点时,环境组中设置的节点和下面选择的节点将同步执行操作。"
+#~ "When you enable/disable, delete, or save this stream, the nodes set in "
+#~ "the Node Group and the nodes selected below will be synchronized."
+#~ msgstr ""
+#~ "启用/禁用、删除或保存此站点时,环境组中设置的节点和下面选择的节点将同步执"
+#~ "行操作。"
 
 #~ msgid "KB"
 #~ msgstr "KB"
@@ -4695,11 +4754,16 @@ msgstr "你的 Passkeys"
 #~ msgid "Please upgrade the remote Nginx UI to the latest version"
 #~ msgstr "请将远程 Nginx UI 升级到最新版本"
 
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
-#~ msgstr "将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path} 失败,响应:%{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
+#~ msgstr ""
+#~ "将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path} 失败,响应:%{resp}"
 
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
-#~ msgstr "在 %{node} 上将站点 %{site} 重命名为 %{new_site} 失败,响应:%{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgstr ""
+#~ "在 %{node} 上将站点 %{site} 重命名为 %{new_site} 失败,响应:%{resp}"
 
 #~ msgid "Save site %{site} to %{node} error, response: %{resp}"
 #~ msgstr "保存站点 %{site} 到 %{node} 错误,响应: %{resp}"
@@ -4707,9 +4771,12 @@ msgstr "你的 Passkeys"
 #~ msgid ""
 #~ "Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the "
 #~ "remote Nginx UI to the latest version"
-#~ msgstr "同步证书 %{cert_name} 到 %{env_name} 失败,请先将远程的 Nginx UI 升级到最新版本"
+#~ msgstr ""
+#~ "同步证书 %{cert_name} 到 %{env_name} 失败,请先将远程的 Nginx UI 升级到最"
+#~ "新版本"
 
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr "同步证书 %{cert_name} 到 %{env_name} 失败,响应:%{resp}"
 
 #~ msgid "Sync config %{config_name} to %{env_name} failed, response: %{resp}"
@@ -4719,14 +4786,15 @@ msgstr "你的 Passkeys"
 #~ msgstr "目标"
 
 #~ msgid ""
-#~ "If you lose your mobile phone, you can use the recovery code to reset your "
-#~ "2FA."
+#~ "If you lose your mobile phone, you can use the recovery code to reset "
+#~ "your 2FA."
 #~ msgstr "如果丢失了手机,可以使用恢复代码重置二步验证。"
 
 #~ msgid "Recovery Code:"
 #~ msgstr "恢复代码:"
 
-#~ msgid "The recovery code is only displayed once, please save it in a safe place."
+#~ msgid ""
+#~ "The recovery code is only displayed once, please save it in a safe place."
 #~ msgstr "恢复密码只会显示一次,请妥善保存。"
 
 #~ msgid "Can't scan? Use text key binding"
@@ -4747,7 +4815,9 @@ msgstr "你的 Passkeys"
 #~ msgid ""
 #~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade "
 #~ "the remote Nginx UI to the latest version"
-#~ msgstr "将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path} 失败,请将远程 Nginx UI 升级到最新版本"
+#~ msgstr ""
+#~ "将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path} 失败,请将远程 "
+#~ "Nginx UI 升级到最新版本"
 
 #~ msgid "Server Name"
 #~ msgstr "服务器名称"
@@ -4824,8 +4894,9 @@ msgstr "你的 Passkeys"
 #~ "Once the verification is complete, the records will be removed.\n"
 #~ "Please note that the unit of time configurations below are all in seconds."
 #~ msgstr ""
-#~ "请填写您的DNS提供商提供的API认证凭证。我们将在你的域名的DNS记录中添加一个或多个TXT记录,以进行所有权验证。一旦验证完成,这些记录将被删除。请"
-#~ "注意,下面的时间配置都是以秒为单位。"
+#~ "请填写您的DNS提供商提供的API认证凭证。我们将在你的域名的DNS记录中添加一个"
+#~ "或多个TXT记录,以进行所有权验证。一旦验证完成,这些记录将被删除。请注意,"
+#~ "下面的时间配置都是以秒为单位。"
 
 #~ msgid "Delete ID: %{id}"
 #~ msgstr "删除 ID: %{id}"
@@ -4846,11 +4917,11 @@ msgstr "你的 Passkeys"
 #~ msgstr "操作同步"
 
 #~ msgid ""
-#~ "Such as Reload and Configs, regex can configure as "
-#~ "`/api/nginx/reload|/api/nginx/test|/api/config/.+`, please see system api"
+#~ "Such as Reload and Configs, regex can configure as `/api/nginx/reload|/"
+#~ "api/nginx/test|/api/config/.+`, please see system api"
 #~ msgstr ""
-#~ "`重载`和`配置管理`的操作同步正则可以配置为`/api/nginx/reload|/api/nginx/test|/api/config/.+`"
-#~ ",详细请查看系统API"
+#~ "`重载`和`配置管理`的操作同步正则可以配置为`/api/nginx/reload|/api/nginx/"
+#~ "test|/api/config/.+`,详细请查看系统API"
 
 #~ msgid "SyncApiRegex"
 #~ msgstr "Api正则表达式"
@@ -4868,9 +4939,11 @@ msgstr "你的 Passkeys"
 #~ msgstr "你想启用自动更新证书吗?"
 
 #~ msgid ""
-#~ "We need to add the HTTPChallenge configuration to this file and reload the "
-#~ "Nginx. Are you sure you want to continue?"
-#~ msgstr "我们需要将 HTTPChallenge 的配置添加到这个文件中,并重新加载Nginx。你确定要继续吗?"
+#~ "We need to add the HTTPChallenge configuration to this file and reload "
+#~ "the Nginx. Are you sure you want to continue?"
+#~ msgstr ""
+#~ "我们需要将 HTTPChallenge 的配置添加到这个文件中,并重新加载Nginx。你确定要"
+#~ "继续吗?"
 
 #~ msgid "Chat with ChatGPT"
 #~ msgstr "与ChatGPT聊天"
@@ -4923,8 +4996,8 @@ msgstr "你的 Passkeys"
 #~ "you do not have a certificate before, please click \"Getting Certificate "
 #~ "from Let's Encrypt\" first."
 #~ msgstr ""
-#~ "系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续签。<br/>如果您之前没有证书,请先点击 \"从 Let's Encrypt "
-#~ "获取证书\"。"
+#~ "系统将会每小时检测一次该域名证书,若距离上次签发已超过1个月,则将自动续"
+#~ "签。<br/>如果您之前没有证书,请先点击 \"从 Let's Encrypt 获取证书\"。"
 
 #~ msgid "Do you want to change the template to support the TLS?"
 #~ msgstr "你想要改变模板以支持 TLS 吗?"
@@ -4942,12 +5015,15 @@ msgstr "你的 Passkeys"
 #~ "The following values will only take effect if you have the corresponding "
 #~ "fields in your configuration file. The configuration filename cannot be "
 #~ "changed after it has been created."
-#~ msgstr "只有在您的配置文件中有相应字段时,下列的配置才能生效。配置文件名称创建后不可修改。"
+#~ msgstr ""
+#~ "只有在您的配置文件中有相应字段时,下列的配置才能生效。配置文件名称创建后不"
+#~ "可修改。"
 
 #~ msgid "This operation will lose the custom configuration."
 #~ msgstr "该操作将会丢失自定义配置。"
 
-#~ msgid "Add site here first, then you can configure TLS on the domain edit page."
+#~ msgid ""
+#~ "Add site here first, then you can configure TLS on the domain edit page."
 #~ msgstr "在这里添加站点,完成后可进入编辑页面配置 TLS。"
 
 #~ msgid "Server Status"

+ 190 - 115
app/src/language/zh_TW/app.po

@@ -9,11 +9,11 @@ msgstr ""
 "POT-Creation-Date: \n"
 "PO-Revision-Date: 2025-04-10 02:51+0000\n"
 "Last-Translator: 0xJacky <me@jackyu.cn>\n"
-"Language-Team: Chinese (Traditional Han script) "
-"<https://weblate.nginxui.com/projects/nginx-ui/frontend/zh_Hant/>\n"
+"Language-Team: Chinese (Traditional Han script) <https://weblate.nginxui.com/"
+"projects/nginx-ui/frontend/zh_Hant/>\n"
 "Language: zh_TW\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: Weblate 5.10.4\n"
@@ -243,7 +243,7 @@ msgstr "向 ChatGPT 尋求幫助"
 msgid "Assistant"
 msgstr "助理"
 
-#: src/components/SelfCheck/SelfCheck.vue:62
+#: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
 msgstr "嘗試修復"
 
@@ -440,7 +440,9 @@ msgstr "CA 目錄"
 msgid ""
 "Calculated based on worker_processes * worker_connections. Actual "
 "performance depends on hardware, configuration, and workload"
-msgstr "依據 worker_processes × worker_connections 計算。實際效能取決於硬體、設定與工作負載"
+msgstr ""
+"依據 worker_processes × worker_connections 計算。實際效能取決於硬體、設定與工"
+"作負載"
 
 #: src/components/ChatGPT/ChatGPT.vue:356
 #: src/components/NgxConfigEditor/NgxServer.vue:54
@@ -578,6 +580,12 @@ msgstr "通道"
 msgid "Chat"
 msgstr ""
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:40
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:64
+#, fuzzy
+msgid "Check"
+msgstr "自我檢查"
+
 #: src/views/system/Upgrade.vue:185
 msgid "Check again"
 msgstr "再次檢查"
@@ -585,15 +593,17 @@ msgstr "再次檢查"
 #: src/components/SelfCheck/tasks/backend/index.ts:31
 msgid ""
 "Check if /var/run/docker.sock exists. If you are using Nginx UI Official "
-"Docker Image, please make sure the docker socket is mounted like this: `-v "
-"/var/run/docker.sock:/var/run/docker.sock`."
+"Docker Image, please make sure the docker socket is mounted like this: `-v /"
+"var/run/docker.sock:/var/run/docker.sock`."
 msgstr ""
 
 #: src/components/SelfCheck/tasks/frontend/https-check.ts:11
 msgid ""
 "Check if HTTPS is enabled. Using HTTP outside localhost is insecure and "
 "prevents using Passkeys and clipboard features."
-msgstr "檢查是否啟用了 HTTPS。在本機主機之外使用 HTTP 是不安全的,並且會阻止使用通行證和剪貼簿功能。"
+msgstr ""
+"檢查是否啟用了 HTTPS。在本機主機之外使用 HTTP 是不安全的,並且會阻止使用通行"
+"證和剪貼簿功能。"
 
 #: src/components/SelfCheck/tasks/backend/index.ts:26
 #, fuzzy
@@ -612,13 +622,16 @@ msgstr "請確認 nginx.conf 是否有包含 streams-enabled 資料夾。"
 msgid ""
 "Check if the sites-available and sites-enabled directories are under the "
 "nginx configuration directory."
-msgstr "請確認 sites-available 和 sites-enabled 資料夾是否位於 Nginx 設定資料夾內。"
+msgstr ""
+"請確認 sites-available 和 sites-enabled 資料夾是否位於 Nginx 設定資料夾內。"
 
 #: src/components/SelfCheck/tasks/backend/index.ts:11
 msgid ""
-"Check if the streams-available and streams-enabled directories are under "
-"the nginx configuration directory."
-msgstr "請確認 streams-available 和 streams-enabled 資料夾是否位於 Nginx 設定資料夾內。"
+"Check if the streams-available and streams-enabled directories are under the "
+"nginx configuration directory."
+msgstr ""
+"請確認 streams-available 和 streams-enabled 資料夾是否位於 Nginx 設定資料夾"
+"內。"
 
 #: src/constants/errors/crypto.ts:3
 msgid "Cipher text is too short"
@@ -838,7 +851,8 @@ msgstr "建立資料夾"
 msgid ""
 "Create system backups including Nginx configuration and Nginx UI settings. "
 "Backup files will be automatically downloaded to your computer."
-msgstr "建立系統備份,包括 Nginx 設定與 Nginx UI 設定。備份檔案將自動下載至您的電腦。"
+msgstr ""
+"建立系統備份,包括 Nginx 設定與 Nginx UI 設定。備份檔案將自動下載至您的電腦。"
 
 #: src/views/environments/group/columns.ts:31
 #: src/views/notification/notificationColumns.tsx:59
@@ -1214,7 +1228,9 @@ msgstr "試運轉模式已啟用"
 msgid ""
 "Due to the security policies of some browsers, you cannot use passkeys on "
 "non-HTTPS websites, except when running on localhost."
-msgstr "基於部分瀏覽器的安全政策,您無法在未啟用 HTTPS 網站,特別是 localhost 上使用通行金鑰。"
+msgstr ""
+"基於部分瀏覽器的安全政策,您無法在未啟用 HTTPS 網站,特別是 localhost 上使用"
+"通行金鑰。"
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: src/views/site/site_list/SiteList.vue:117
@@ -1901,15 +1917,18 @@ msgstr "如果留空,將使用預設的 CA Dir。"
 
 #: src/views/nginx_log/NginxLogList.vue:81
 msgid ""
-"If logs are not indexed, please check if the log file is under the "
-"directory in Nginx.LogDirWhiteList."
-msgstr "如果日誌未被索引,請檢查日誌檔案是否位於 Nginx 的 LogDirWhiteList 目錄下。"
+"If logs are not indexed, please check if the log file is under the directory "
+"in Nginx.LogDirWhiteList."
+msgstr ""
+"如果日誌未被索引,請檢查日誌檔案是否位於 Nginx 的 LogDirWhiteList 目錄下。"
 
 #: src/views/preference/tabs/AuthSettings.vue:145
 msgid ""
 "If the number of login failed attempts from a ip reach the max attempts in "
 "ban threshold minutes, the ip will be banned for a period of time."
-msgstr "如果來自某個 IP 的登入失敗次數在禁止閾值分鐘內達到最大嘗試次數,該 IP 將被禁止一段時間。"
+msgstr ""
+"如果來自某個 IP 的登入失敗次數在禁止閾值分鐘內達到最大嘗試次數,該 IP 將被禁"
+"止一段時間。"
 
 #: src/components/AutoCertForm/AutoCertForm.vue:116
 msgid ""
@@ -1995,7 +2014,7 @@ msgstr "安裝"
 msgid "Install successfully"
 msgstr "安裝成功"
 
-#: src/views/install/components/InstallView.vue:62
+#: src/views/install/components/InstallView.vue:63
 #, fuzzy
 msgid "Installation"
 msgstr "新安裝"
@@ -2099,7 +2118,8 @@ msgstr "Jwt 金鑰"
 msgid ""
 "Keep your recovery codes as safe as your password. We recommend saving them "
 "with a password manager."
-msgstr "請將您的復原代碼與密碼一樣妥善保管。我們建議使用密碼管理工具來儲存這些代碼。"
+msgstr ""
+"請將您的復原代碼與密碼一樣妥善保管。我們建議使用密碼管理工具來儲存這些代碼。"
 
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:60
 msgid "Keepalive Timeout"
@@ -2240,7 +2260,7 @@ msgstr "登入"
 msgid "Login successful"
 msgstr "登入成功"
 
-#: src/layouts/HeaderLayout.vue:20
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
 msgstr "登出成功"
 
@@ -2250,16 +2270,17 @@ msgstr "Logrotate"
 
 #: src/views/preference/tabs/LogrotateSettings.vue:13
 msgid ""
-"Logrotate, by default, is enabled in most mainstream Linux distributions "
-"for users who install Nginx UI on the host machine, so you don't need to "
-"modify the parameters on this page. For users who install Nginx UI using "
-"Docker containers, you can manually enable this option. The crontab task "
-"scheduler of Nginx UI will execute the logrotate command at the interval "
-"you set in minutes."
+"Logrotate, by default, is enabled in most mainstream Linux distributions for "
+"users who install Nginx UI on the host machine, so you don't need to modify "
+"the parameters on this page. For users who install Nginx UI using Docker "
+"containers, you can manually enable this option. The crontab task scheduler "
+"of Nginx UI will execute the logrotate command at the interval you set in "
+"minutes."
 msgstr ""
-"預設情況下,對於在主機上安裝 Nginx UI 的使用者,大多數主流 Linux 發行版都啟用了 "
-"logrotate,因此您無需修改此頁面的參數。對於使用 Docker 容器安裝 Nginx UI 的使用者,您可以手動啟用此選項。Nginx UI "
-"的 crontab 任務排程器將按照您設定的分鐘間隔執行 logrotate 命令。"
+"預設情況下,對於在主機上安裝 Nginx UI 的使用者,大多數主流 Linux 發行版都啟用"
+"了 logrotate,因此您無需修改此頁面的參數。對於使用 Docker 容器安裝 Nginx UI "
+"的使用者,您可以手動啟用此選項。Nginx UI 的 crontab 任務排程器將按照您設定的"
+"分鐘間隔執行 logrotate 命令。"
 
 #: src/views/site/components/SiteStatusSegmented.vue:138
 #: src/views/site/site_edit/components/SiteEditor/SiteEditor.vue:68
@@ -2279,7 +2300,8 @@ msgstr "維護模式已成功啟用"
 msgid ""
 "Make sure you have configured a reverse proxy for .well-known directory to "
 "HTTPChallengePort before obtaining the certificate."
-msgstr "在取得憑證前,請確保您已將 .well-known 目錄反向代理到 HTTPChallengePort。"
+msgstr ""
+"在取得憑證前,請確保您已將 .well-known 目錄反向代理到 HTTPChallengePort。"
 
 #: src/routes/modules/config.ts:10 src/views/config/ConfigEditor.vue:115
 #: src/views/config/ConfigEditor.vue:166 src/views/config/ConfigList.vue:72
@@ -2474,7 +2496,7 @@ msgstr "下載流量"
 msgid "Network Total Send"
 msgstr "上傳流量"
 
-#: src/views/install/components/InstallView.vue:106
+#: src/views/install/components/InstallView.vue:107
 msgid "New Installation"
 msgstr "新安裝"
 
@@ -2491,7 +2513,7 @@ msgid "New version released"
 msgstr "新版本發布"
 
 #: src/views/certificate/components/WildcardCertificate.vue:89
-#: src/views/install/components/InstallView.vue:93
+#: src/views/install/components/InstallView.vue:94
 #: src/views/site/site_add/SiteAdd.vue:123
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:214
 msgid "Next"
@@ -2666,8 +2688,8 @@ msgstr "Nginx UI 設定已恢復"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:336
 msgid ""
-"Nginx UI configuration has been restored and will restart automatically in "
-"a few seconds."
+"Nginx UI configuration has been restored and will restart automatically in a "
+"few seconds."
 msgstr "Nginx UI 設定已恢復,將在幾秒後自動重新啟動。"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -2935,8 +2957,8 @@ msgid ""
 "facial recognition, a device password, or a PIN. They can be used as a "
 "password replacement or as a 2FA method."
 msgstr ""
-"通行金鑰是 WebAuthn 認證,透過觸控、面部辨識、裝置密碼或 PIN 碼來驗證您的身份。它們可以用作密碼替代品或作為雙重身份驗證 (2FA) "
-"方法。"
+"通行金鑰是 WebAuthn 認證,透過觸控、面部辨識、裝置密碼或 PIN 碼來驗證您的身"
+"份。它們可以用作密碼替代品或作為雙重身份驗證 (2FA) 方法。"
 
 #: src/views/other/Login.vue:183 src/views/user/userColumns.tsx:18
 msgid "Password"
@@ -3036,13 +3058,15 @@ msgstr "請填寫必填欄位"
 msgid ""
 "Please first add credentials in Certification > DNS Credentials, and then "
 "select one of the credentialsbelow to request the API of the DNS provider."
-msgstr "請先在「憑證」 > 「DNS 認證」中新增認證,然後選擇以下認證之一以請求 DNS 供應商的 API。"
+msgstr ""
+"請先在「憑證」 > 「DNS 認證」中新增認證,然後選擇以下認證之一以請求 DNS 供應"
+"商的 API。"
 
 #: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
-"Please generate new recovery codes in the preferences immediately to "
-"prevent lockout."
+"Please generate new recovery codes in the preferences immediately to prevent "
+"lockout."
 msgstr "請立即在偏好設定中產生新的恢復碼,以免無法存取您的賬戶。"
 
 #: src/views/config/components/Rename.vue:65
@@ -3078,16 +3102,17 @@ msgstr "請輸入您的密碼!"
 msgid "Please input your username!"
 msgstr "請輸入您的使用者名稱!"
 
-#: src/views/install/components/InstallView.vue:47
+#: src/views/install/components/InstallView.vue:48
 #: src/views/system/Backup/SystemRestore.vue:10
 msgid "Please log in."
 msgstr "請登入。"
 
 #: src/views/certificate/DNSCredential.vue:62
-msgid "Please note that the unit of time configurations below are all in seconds."
+msgid ""
+"Please note that the unit of time configurations below are all in seconds."
 msgstr "請注意,以下時間設定單位均為秒。"
 
-#: src/views/install/components/InstallView.vue:99
+#: src/views/install/components/InstallView.vue:100
 msgid "Please resolve all issues before proceeding with installation"
 msgstr ""
 
@@ -3187,7 +3212,7 @@ msgstr "讀取"
 msgid "Receive"
 msgstr "接收"
 
-#: src/components/SelfCheck/SelfCheck.vue:55
+#: src/components/SelfCheck/SelfCheck.vue:24
 msgid "Recheck"
 msgstr "重新檢查"
 
@@ -3212,7 +3237,8 @@ msgstr "復原代碼"
 msgid ""
 "Recovery codes are used to access your account when you lose access to your "
 "2FA device. Each code can only be used once."
-msgstr "復原代碼在您無法使用 2FA 裝置時,用於存取您的帳戶。每個代碼僅能使用一次。"
+msgstr ""
+"復原代碼在您無法使用 2FA 裝置時,用於存取您的帳戶。每個代碼僅能使用一次。"
 
 #: src/views/preference/tabs/CertSettings.vue:40
 msgid "Recursive Nameservers"
@@ -3439,7 +3465,9 @@ msgid ""
 "Resident Set Size: Actual memory resident in physical memory, including all "
 "shared library memory, which will be repeated calculated for multiple "
 "processes"
-msgstr "常駐集大小:實際存在於實體記憶體中的記憶體,包含所有共用函式庫記憶體,這些記憶體會在多個行程間重複計算"
+msgstr ""
+"常駐集大小:實際存在於實體記憶體中的記憶體,包含所有共用函式庫記憶體,這些記"
+"憶體會在多個行程間重複計算"
 
 #: src/composables/usePerformanceMetrics.ts:109
 #: src/views/dashboard/components/PerformanceTablesCard.vue:68
@@ -3484,7 +3512,7 @@ msgstr "正在重新啟動"
 msgid "Restore completed successfully"
 msgstr "恢復已完成"
 
-#: src/views/install/components/InstallView.vue:109
+#: src/views/install/components/InstallView.vue:110
 msgid "Restore from Backup"
 msgstr "從備份中恢復"
 
@@ -3643,10 +3671,15 @@ msgstr "同步後選擇操作"
 msgid "Selector"
 msgstr "選擇器"
 
-#: src/components/SelfCheck/SelfCheck.vue:50 src/routes/modules/system.ts:19
+#: src/components/SelfCheck/SelfCheck.vue:16 src/routes/modules/system.ts:19
 msgid "Self Check"
 msgstr "自我檢查"
 
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:37
+#: src/components/SelfCheck/SelfCheckHeaderBanner.vue:60
+msgid "Self check failed, Nginx UI may not work properly"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:344
 #: src/views/dashboard/ServerAnalytic.vue:35
 msgid "Send"
@@ -3704,21 +3737,21 @@ msgstr "使用 HTTP01 挑戰提供者"
 
 #: src/constants/errors/nginx_log.ts:8
 msgid ""
-"Settings.NginxLogSettings.AccessLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.AccessLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
-"Settings.NginxLogSettings.AccessLogPath 為空,請參考 "
-"https://nginxui.com/guide/config-nginx.html 了解更多資訊"
+"Settings.NginxLogSettings.AccessLogPath 為空,請參考 https://nginxui.com/"
+"guide/config-nginx.html 了解更多資訊"
 
 #: src/constants/errors/nginx_log.ts:7
 msgid ""
-"Settings.NginxLogSettings.ErrorLogPath is empty, refer to "
-"https://nginxui.com/guide/config-nginx.html for more information"
+"Settings.NginxLogSettings.ErrorLogPath is empty, refer to https://nginxui."
+"com/guide/config-nginx.html for more information"
 msgstr ""
-"Settings.NginxLogSettings.ErrorLogPath 為空,請參考 "
-"https://nginxui.com/guide/config-nginx.html 了解更多資訊"
+"Settings.NginxLogSettings.ErrorLogPath 為空,請參考 https://nginxui.com/"
+"guide/config-nginx.html 了解更多資訊"
 
-#: src/views/install/components/InstallView.vue:63
+#: src/views/install/components/InstallView.vue:64
 msgid "Setup your Nginx UI"
 msgstr ""
 
@@ -3894,12 +3927,13 @@ msgstr "成功"
 #: src/components/SelfCheck/tasks/frontend/websocket.ts:6
 msgid ""
 "Support communication with the backend through the WebSocket protocol. If "
-"your Nginx UI is being used via an Nginx reverse proxy, please refer to "
-"this link to write the corresponding configuration file: "
-"https://nginxui.com/guide/nginx-proxy-example.html"
+"your Nginx UI is being used via an Nginx reverse proxy, please refer to this "
+"link to write the corresponding configuration file: https://nginxui.com/"
+"guide/nginx-proxy-example.html"
 msgstr ""
-"支援透過 WebSocket 協議與後端進行通訊。如果您的 Nginx UI 是透過 Nginx "
-"反向代理使用,請參考此連結編寫對應的設定文件:https://nginxui.com/guide/nginx-proxy-example.html"
+"支援透過 WebSocket 協議與後端進行通訊。如果您的 Nginx UI 是透過 Nginx 反向代"
+"理使用,請參考此連結編寫對應的設定文件:https://nginxui.com/guide/nginx-"
+"proxy-example.html"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:197
 #: src/components/SystemRestore/SystemRestoreContent.vue:274
@@ -3988,7 +4022,7 @@ msgstr "系統"
 msgid "System Backup"
 msgstr "系統備份"
 
-#: src/views/install/components/InstallView.vue:58
+#: src/views/install/components/InstallView.vue:59
 #, fuzzy
 msgid "System Check"
 msgstr "自我檢查"
@@ -4001,7 +4035,7 @@ msgstr "系統初始使用者"
 msgid "System Restore"
 msgstr "系統恢復"
 
-#: src/views/install/components/InstallView.vue:43
+#: src/views/install/components/InstallView.vue:44
 #: src/views/system/Backup/SystemRestore.vue:6
 msgid "System restored successfully."
 msgstr "系統已成功恢復。"
@@ -4028,7 +4062,9 @@ msgid ""
 "The certificate for the domain will be checked 30 minutes, and will be "
 "renewed if it has been more than 1 week or the period you set in settings "
 "since it was last issued."
-msgstr "網域憑證將在 30 分鐘內接受檢查,如果自上次簽發以來已超過 1 週或您在設定中設定的時間,憑證將會自動更新。"
+msgstr ""
+"網域憑證將在 30 分鐘內接受檢查,如果自上次簽發以來已超過 1 週或您在設定中設定"
+"的時間,憑證將會自動更新。"
 
 #: src/views/install/components/InstallForm.vue:48
 msgid "The filename cannot contain the following characters: %{c}"
@@ -4050,8 +4086,7 @@ msgstr "輸入的不是 SSL 憑證金鑰"
 
 #: src/constants/errors/nginx_log.ts:2
 msgid ""
-"The log path is not under the paths in "
-"settings.NginxSettings.LogDirWhiteList"
+"The log path is not under the paths in settings.NginxSettings.LogDirWhiteList"
 msgstr "日誌路徑不在 settings.NginxSettings.LogDirWhiteList 設定中的路徑範圍內"
 
 #: src/views/preference/tabs/OpenAISettings.vue:23
@@ -4062,7 +4097,8 @@ msgid ""
 msgstr "模型名稱僅能包含字母、Unicode 字元、數字、連字號、破折號、冒號和句點。"
 
 #: src/views/preference/tabs/OpenAISettings.vue:90
-msgid "The model used for code completion, if not set, the chat model will be used."
+msgid ""
+"The model used for code completion, if not set, the chat model will be used."
 msgstr ""
 
 #: src/views/preference/tabs/NodeSettings.vue:18
@@ -4094,7 +4130,9 @@ msgid ""
 "The remote Nginx UI version is not compatible with the local Nginx UI "
 "version. To avoid potential errors, please upgrade the remote Nginx UI to "
 "match the local version."
-msgstr "遠端 Nginx UI 版本與本機 Nginx UI 版本不相容。為避免潛在錯誤,請升級遠端 Nginx UI 以匹配本機版本。"
+msgstr ""
+"遠端 Nginx UI 版本與本機 Nginx UI 版本不相容。為避免潛在錯誤,請升級遠端 "
+"Nginx UI 以匹配本機版本。"
 
 #: src/components/AutoCertForm/AutoCertForm.vue:43
 msgid ""
@@ -4129,7 +4167,9 @@ 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/components/CertificateEditor.vue:102
 msgid "This Auto Cert item is invalid, please remove it."
@@ -4159,7 +4199,8 @@ msgid "This field should not be empty"
 msgstr "此欄位不應為空"
 
 #: src/constants/form_errors.ts:6
-msgid "This field should only contain letters, unicode characters, numbers, and -_."
+msgid ""
+"This field should only contain letters, unicode characters, numbers, and -_."
 msgstr "此欄位僅能包含字母、Unicode 字元、數字、連字號、破折號和底線。"
 
 #: src/views/dashboard/NginxDashBoard.vue:153
@@ -4199,7 +4240,8 @@ msgid ""
 msgstr "這將恢復設定檔案和資料庫。恢復完成後,Nginx UI 將重新啟動。"
 
 #: src/views/environments/list/BatchUpgrader.vue:182
-msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
+msgid ""
+"This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr "這將在 %{nodeNames} 上升級或重新安裝 Nginx UI 到 %{version}。"
 
 #: src/views/preference/tabs/AuthSettings.vue:124
@@ -4230,25 +4272,28 @@ msgstr ""
 msgid ""
 "To enable it, you need to install the Google or Microsoft Authenticator app "
 "on your mobile phone."
-msgstr "要啟用它,您需要在手機上安裝 Google 或 Microsoft Authenticator 應用程式。"
+msgstr ""
+"要啟用它,您需要在手機上安裝 Google 或 Microsoft Authenticator 應用程式。"
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:89
 msgid ""
 "To ensure security, Webauthn configuration cannot be added through the UI. "
 "Please manually configure the following in the app.ini configuration file "
 "and restart Nginx UI."
-msgstr "為確保安全性,Webauthn 設定無法透過 UI 新增。請在 app.ini 設定檔中手動設定以下內容,並重新啟動 Nginx UI。"
+msgstr ""
+"為確保安全性,Webauthn 設定無法透過 UI 新增。請在 app.ini 設定檔中手動設定以"
+"下內容,並重新啟動 Nginx UI。"
 
 #: src/views/site/site_edit/components/Cert/IssueCert.vue:33
 #: src/views/site/site_edit/components/EnableTLS/EnableTLS.vue:15
 msgid ""
 "To make sure the certification auto-renewal can work normally, we need to "
-"add a location which can proxy the request from authority to backend, and "
-"we need to save this file and reload the Nginx. Are you sure you want to "
+"add a location which can proxy the request from authority to backend, and we "
+"need to save this file and reload the Nginx. Are you sure you want to "
 "continue?"
 msgstr ""
-"為了確保憑證自動續期能夠正常運作,我們需要新增一個 Location 來代理從授權後端的請求,我們需要儲存這個檔案並重新載入 "
-"Nginx。你確定你要繼續嗎?"
+"為了確保憑證自動續期能夠正常運作,我們需要新增一個 Location 來代理從授權後端"
+"的請求,我們需要儲存這個檔案並重新載入 Nginx。你確定你要繼續嗎?"
 
 #: src/views/preference/tabs/OpenAISettings.vue:36
 msgid ""
@@ -4256,8 +4301,8 @@ msgid ""
 "provide an OpenAI-compatible API endpoint, so just set the baseUrl to your "
 "local API."
 msgstr ""
-"要使用本機大型語言模型,請使用 ollama、vllm 或 lmdeploy 部署。它們提供與 OpenAI 相容的 API 端點,因此只需將 "
-"baseUrl 設定為您的本機 API。"
+"要使用本機大型語言模型,請使用 ollama、vllm 或 lmdeploy 部署。它們提供與 "
+"OpenAI 相容的 API 端點,因此只需將 baseUrl 設定為您的本機 API。"
 
 #: src/views/dashboard/NginxDashBoard.vue:57
 msgid "Toggle failed"
@@ -4328,7 +4373,7 @@ msgstr "類型"
 msgid "Unknown"
 msgstr "未知"
 
-#: src/components/SelfCheck/SelfCheck.vue:75
+#: src/components/SelfCheck/SelfCheck.vue:44
 msgid "Unknown issue"
 msgstr "未知問題"
 
@@ -4431,7 +4476,7 @@ msgstr ""
 msgid "Verify Backup File Integrity"
 msgstr "驗證備份檔案完整性"
 
-#: src/views/install/components/InstallView.vue:59
+#: src/views/install/components/InstallView.vue:60
 msgid "Verify system requirements"
 msgstr "驗證系統要求"
 
@@ -4483,7 +4528,9 @@ msgid ""
 "Warning: Restore operation will overwrite current configurations. Make sure "
 "you have a valid backup file and security token, and carefully select what "
 "to restore."
-msgstr "警告:恢復操作將覆蓋目前設定。請確保您擁有有效的備份檔案和安全令牌,並謹慎選擇要恢復的內容。"
+msgstr ""
+"警告:恢復操作將覆蓋目前設定。請確保您擁有有效的備份檔案和安全令牌,並謹慎選"
+"擇要恢復的內容。"
 
 #: src/views/certificate/DNSCredential.vue:56
 msgid ""
@@ -4493,9 +4540,11 @@ msgstr "我們將在您的網域的 DNS 記錄中新增一個或多個 TXT 記
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:140
 msgid ""
-"We will remove the HTTPChallenge configuration from this file and reload "
-"the Nginx. Are you sure you want to continue?"
-msgstr "我們將從該檔案中刪除 HTTPChallenge 設定並重新載入 Nginx 設定檔案。你確定你要繼續嗎?"
+"We will remove the HTTPChallenge configuration from this file and reload the "
+"Nginx. Are you sure you want to continue?"
+msgstr ""
+"我們將從該檔案中刪除 HTTPChallenge 設定並重新載入 Nginx 設定檔案。你確定你要"
+"繼續嗎?"
 
 #: src/views/preference/tabs/AuthSettings.vue:97
 msgid "Webauthn"
@@ -4514,14 +4563,18 @@ msgid ""
 "When Enabled, Nginx UI will automatically re-register users upon startup. "
 "Generally, do not enable this unless you are in a dev environment and using "
 "Pebble as CA."
-msgstr "啟用後,Nginx UI 將在啟動時自動重新註冊使用者。通常,除非您處於開發環境並使用 Pebble 作為 CA,否則不建議啟用此功能。"
+msgstr ""
+"啟用後,Nginx UI 將在啟動時自動重新註冊使用者。通常,除非您處於開發環境並使"
+"用 Pebble 作為 CA,否則不建議啟用此功能。"
 
 #: src/views/site/site_edit/components/RightPanel/Basic.vue:61
 #: src/views/stream/components/RightPanel/Basic.vue:95
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
-msgstr "當您啟用/停用、刪除或儲存此網站時,在節點群組中設定的節點以及下方選擇的節點將會同步更新。"
+msgstr ""
+"當您啟用/停用、刪除或儲存此網站時,在節點群組中設定的節點以及下方選擇的節點將"
+"會同步更新。"
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:140
 msgid ""
@@ -4549,7 +4602,7 @@ msgstr "worker 行程"
 msgid "Workers"
 msgstr "worker"
 
-#: src/layouts/HeaderLayout.vue:49 src/routes/index.ts:56
+#: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 #, fuzzy
 msgid "Workspace"
@@ -4579,9 +4632,10 @@ msgstr "是的"
 
 #: src/views/terminal/Terminal.vue:135
 msgid ""
-"You are accessing this terminal over an insecure HTTP connection on a "
-"non-localhost domain. This may expose sensitive information."
-msgstr "您正在透過非本機網域的不安全 HTTP 連接存取此終端,這可能會洩露敏感資訊。"
+"You are accessing this terminal over an insecure HTTP connection on a non-"
+"localhost domain. This may expose sensitive information."
+msgstr ""
+"您正在透過非本機網域的不安全 HTTP 連接存取此終端,這可能會洩露敏感資訊。"
 
 #: src/views/system/Upgrade.vue:202
 msgid "You are using the latest version"
@@ -4606,7 +4660,8 @@ msgid ""
 msgstr "您尚未設定 Webauthn 設定,因此無法新增通行金鑰。"
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:81
-msgid "You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
+msgid ""
+"You have not enabled 2FA yet. Please enable 2FA to generate recovery codes."
 msgstr "您尚未啟用雙重身份驗證 (2FA)。請啟用 2FA 以生成復原代碼。"
 
 #: src/views/preference/components/AuthSettings/RecoveryCodes.vue:94
@@ -4635,9 +4690,11 @@ msgstr "您的通行金鑰"
 #~ msgstr "儲存失敗,在設定中偵測到語法錯誤。"
 
 #~ msgid ""
-#~ "When you enable/disable, delete, or save this stream, the nodes set in the "
-#~ "Node Group and the nodes selected below will be synchronized."
-#~ msgstr "當您啟用/停用、刪除或儲存此串流時,在節點群組中設定的節點以及下方選擇的節點將會同步更新。"
+#~ "When you enable/disable, delete, or save this stream, the nodes set in "
+#~ "the Node Group and the nodes selected below will be synchronized."
+#~ msgstr ""
+#~ "當您啟用/停用、刪除或儲存此串流時,在節點群組中設定的節點以及下方選擇的節"
+#~ "點將會同步更新。"
 
 #, fuzzy
 #~ msgid "Access Token"
@@ -4696,11 +4753,17 @@ msgstr "您的通行金鑰"
 #~ msgid "Please upgrade the remote Nginx UI to the latest version"
 #~ msgstr "請將遠端 Nginx UI 升級至最新版本"
 
-#~ msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %{resp}"
-#~ msgstr "在 %{env_name} 上將 %{orig_path} 重新命名為 %{new_path} 失敗,回應:%{resp}"
+#~ msgid ""
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
+#~ "%{resp}"
+#~ msgstr ""
+#~ "在 %{env_name} 上將 %{orig_path} 重新命名為 %{new_path} 失敗,回應:"
+#~ "%{resp}"
 
-#~ msgid "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
-#~ msgstr "將站點 %{site} 重新命名為 %{new_site} 於 %{node} 時發生錯誤,回應:%{resp}"
+#~ msgid ""
+#~ "Rename Site %{site} to %{new_site} on %{node} error, response: %{resp}"
+#~ msgstr ""
+#~ "將站點 %{site} 重新命名為 %{new_site} 於 %{node} 時發生錯誤,回應:%{resp}"
 
 #~ msgid "Save site %{site} to %{node} error, response: %{resp}"
 #~ msgstr "儲存站點 %{site} 至 %{node} 時發生錯誤,回應:%{resp}"
@@ -4708,9 +4771,12 @@ msgstr "您的通行金鑰"
 #~ msgid ""
 #~ "Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the "
 #~ "remote Nginx UI to the latest version"
-#~ msgstr "同步憑證 %{cert_name} 到 %{env_name} 失敗,請將遠端 Nginx UI 升級到最新版本"
+#~ msgstr ""
+#~ "同步憑證 %{cert_name} 到 %{env_name} 失敗,請將遠端 Nginx UI 升級到最新版"
+#~ "本"
 
-#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid ""
+#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr "同步憑證 %{cert_name} 到 %{env_name} 失敗,回應:%{resp}"
 
 #~ msgid "Sync config %{config_name} to %{env_name} failed, response: %{resp}"
@@ -4720,14 +4786,15 @@ msgstr "您的通行金鑰"
 #~ msgstr "目標"
 
 #~ msgid ""
-#~ "If you lose your mobile phone, you can use the recovery code to reset your "
-#~ "2FA."
+#~ "If you lose your mobile phone, you can use the recovery code to reset "
+#~ "your 2FA."
 #~ msgstr "如果您遺失了手機,可以使用恢復碼重設您的多重因素驗證驗證。"
 
 #~ msgid "Recovery Code:"
 #~ msgstr "恢復碼:"
 
-#~ msgid "The recovery code is only displayed once, please save it in a safe place."
+#~ msgid ""
+#~ "The recovery code is only displayed once, please save it in a safe place."
 #~ msgstr "恢復碼僅顯示一次,請將其儲存在安全的地方。"
 
 #~ msgid "File"
@@ -4745,7 +4812,9 @@ msgstr "您的通行金鑰"
 #~ msgid ""
 #~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade "
 #~ "the remote Nginx UI to the latest version"
-#~ msgstr "將 %{orig_path} 重新命名為 %{new_path} 在 %{env_name} 失敗,請將遠端 Nginx UI 升級到最新版本"
+#~ msgstr ""
+#~ "將 %{orig_path} 重新命名為 %{new_path} 在 %{env_name} 失敗,請將遠端 "
+#~ "Nginx UI 升級到最新版本"
 
 #~ msgid "Server Name"
 #~ msgstr "伺服器名稱"
@@ -4811,8 +4880,9 @@ msgstr "您的通行金鑰"
 #~ "Once the verification is complete, the records will be removed.\n"
 #~ "Please note that the unit of time configurations below are all in seconds."
 #~ msgstr ""
-#~ "請填寫您的 DNS 供應商提供的 API 身份驗證認證。我們會將一個或多個 TXT 記錄新增到您網域的 DNS "
-#~ "記錄中以進行所有權驗證。驗證完成後,記錄將被刪除。請注意,以下時間設定均以秒為單位。"
+#~ "請填寫您的 DNS 供應商提供的 API 身份驗證認證。我們會將一個或多個 TXT 記錄"
+#~ "新增到您網域的 DNS 記錄中以進行所有權驗證。驗證完成後,記錄將被刪除。請注"
+#~ "意,以下時間設定均以秒為單位。"
 
 #~ msgid "Delete ID: %{id}"
 #~ msgstr "刪除 ID: %{id}"
@@ -4836,9 +4906,11 @@ msgstr "您的通行金鑰"
 #~ msgstr "您要啟用自動憑證更新嗎?"
 
 #~ msgid ""
-#~ "We need to add the HTTPChallenge configuration to this file and reload the "
-#~ "Nginx. Are you sure you want to continue?"
-#~ msgstr "我們需要將 HTTPChallenge 設定新增到此檔案並重新載入 Nginx。你確定你要繼續嗎?"
+#~ "We need to add the HTTPChallenge configuration to this file and reload "
+#~ "the Nginx. Are you sure you want to continue?"
+#~ msgstr ""
+#~ "我們需要將 HTTPChallenge 設定新增到此檔案並重新載入 Nginx。你確定你要繼續"
+#~ "嗎?"
 
 #~ msgid "Chat with ChatGPT"
 #~ msgstr "使用 ChatGPT 聊天"
@@ -4885,8 +4957,8 @@ msgstr "您的通行金鑰"
 #~ "you do not have a certificate before, please click \"Getting Certificate "
 #~ "from Let's Encrypt\" first."
 #~ msgstr ""
-#~ "系統將會每小時偵測一次該域名憑證,若距離上次簽發已超過 1 個月,則將自動續簽。<br/>如果您之前沒有憑證,請先點選「從 Let's Encrypt "
-#~ "取得憑證」。"
+#~ "系統將會每小時偵測一次該域名憑證,若距離上次簽發已超過 1 個月,則將自動續"
+#~ "簽。<br/>如果您之前沒有憑證,請先點選「從 Let's Encrypt 取得憑證」。"
 
 #~ msgid "Do you want to change the template to support the TLS?"
 #~ msgstr "你想要改變範本以支援 TLS 嗎?"
@@ -4904,12 +4976,15 @@ msgstr "您的通行金鑰"
 #~ "The following values will only take effect if you have the corresponding "
 #~ "fields in your configuration file. The configuration filename cannot be "
 #~ "changed after it has been created."
-#~ msgstr "只有在您的設定檔案中有相應欄位時,下列的設定才能生效。設定檔名稱建立後不可修改。"
+#~ msgstr ""
+#~ "只有在您的設定檔案中有相應欄位時,下列的設定才能生效。設定檔名稱建立後不可"
+#~ "修改。"
 
 #~ msgid "This operation will lose the custom configuration."
 #~ msgstr "該操作將會遺失自定義設定。"
 
-#~ msgid "Add site here first, then you can configure TLS on the domain edit page."
+#~ msgid ""
+#~ "Add site here first, then you can configure TLS on the domain edit page."
 #~ msgstr "在這裡新增網站,完成後可進入編輯頁面設定 TLS。"
 
 #~ msgid "Server Status"

+ 2 - 2
app/src/layouts/BaseLayout.vue

@@ -3,7 +3,7 @@ import settings from '@/api/settings'
 import PageHeader from '@/components/PageHeader/PageHeader.vue'
 import { setupIndexStatus } from '@/composables/useIndexStatus'
 import { useSettingsStore } from '@/pinia'
-import _ from 'lodash'
+import { throttle } from 'lodash'
 import { storeToRefs } from 'pinia'
 import FooterLayout from './FooterLayout.vue'
 import HeaderLayout from './HeaderLayout.vue'
@@ -18,7 +18,7 @@ function _init() {
   hideLayoutSidebar.value = getClientWidth() < 600
 }
 
-const init = _.throttle(_init, 50)
+const init = throttle(_init, 50)
 
 onMounted(init)
 

+ 1 - 1
app/src/layouts/HeaderLayout.vue

@@ -24,7 +24,7 @@ function logout() {
   })
 }
 
-const headerRef = useTemplateRef('headerRef')
+const headerRef = useTemplateRef('headerRef') as Ref<HTMLElement>
 
 const userWrapperRef = useTemplateRef('userWrapperRef')
 const isWorkspace = computed(() => {

+ 2 - 2
app/src/lib/nprogress/nprogress.ts

@@ -1,10 +1,10 @@
-import _ from 'lodash'
+import { debounce } from 'lodash'
 import NProgress from 'nprogress'
 import 'nprogress/nprogress.css'
 
 NProgress.configure({ showSpinner: false, trickleSpeed: 300 })
 
-const done = _.debounce(NProgress.done, 300, {
+const done = debounce(NProgress.done, 300, {
   leading: false,
   trailing: true,
 })

+ 1 - 1
app/src/version.json

@@ -1 +1 @@
-{"version":"2.0.0-rc.5","build_id":21,"total_build":415}
+{"version":"2.0.0-rc.5","build_id":22,"total_build":416}

+ 3 - 3
app/src/views/config/ConfigEditor.vue

@@ -16,7 +16,7 @@ import ConfigName from '@/views/config/components/ConfigName.vue'
 import InspectConfig from '@/views/config/InspectConfig.vue'
 import { HistoryOutlined, InfoCircleOutlined } from '@ant-design/icons-vue'
 import { message } from 'ant-design-vue'
-import _ from 'lodash'
+import { trim, trimEnd } from 'lodash'
 
 const settings = useSettingsStore()
 const route = useRoute()
@@ -30,7 +30,7 @@ const addMode = computed(() => !route.params.name)
 const showHistory = ref(false)
 const basePath = computed(() => {
   if (route.query.basePath)
-    return _.trim(route?.query?.basePath?.toString(), '/')
+    return trim(route?.query?.basePath?.toString(), '/')
   else if (typeof route.params.name === 'object')
     return (route.params.name as string[]).slice(0, -1).join('/')
   else
@@ -75,7 +75,7 @@ async function init() {
       historyChatgptRecord.value = r.chatgpt_messages
       modifiedAt.value = r.modified_at
 
-      const filteredPath = _.trimEnd(data.value.filepath
+      const filteredPath = trimEnd(data.value.filepath
         .replaceAll(`${nginxConfigBase.value}/`, ''), data.value.name)
         .split('/')
         .filter(v => v)

+ 2 - 2
app/src/views/environments/list/BatchUpgrader.vue

@@ -3,7 +3,7 @@ import type { Environment } from '@/api/environment'
 import type { RuntimeInfo } from '@/api/upgrade'
 import upgrade from '@/api/upgrade'
 import websocket from '@/lib/websocket'
-import _ from 'lodash'
+import { cloneDeep } from 'lodash'
 import { marked } from 'marked'
 
 const route = useRoute()
@@ -63,7 +63,7 @@ function open(selectedNodeIds: Ref<number[]>, selectedNodes: Ref<Environment[]>)
   showLogContainer.value = false
   visible.value = true
   nodeIds.value = selectedNodeIds.value
-  nodes.value = _.cloneDeep(selectedNodes.value)
+  nodes.value = cloneDeep(selectedNodes.value)
   getLatestRelease()
 }
 

+ 2 - 2
app/src/views/terminal/Terminal.vue

@@ -5,7 +5,7 @@ import use2FAModal from '@/components/TwoFA/use2FAModal'
 import ws from '@/lib/websocket'
 import { FitAddon } from '@xterm/addon-fit'
 import { Terminal } from '@xterm/xterm'
-import _ from 'lodash'
+import { throttle } from 'lodash'
 import '@xterm/xterm/css/xterm.css'
 
 let term: Terminal | null
@@ -64,7 +64,7 @@ interface Message {
 
 const fitAddon = new FitAddon()
 
-const fit = _.throttle(() => {
+const fit = throttle(() => {
   fitAddon.fit()
 }, 50)