Browse Source

chore(wip): update translations

Jacky 1 week ago
parent
commit
9f02c8fbe8

+ 1 - 0
.vscode/settings.json

@@ -1,5 +1,6 @@
 {
   "i18n-gettext.localesConfig": {
+        "root": "app",
         "type": "nested",
         "basePath": "src/language",
         "pattern": "${locale}/${domain}.po",

+ 71 - 83
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"
@@ -58,11 +58,11 @@ msgstr "إجراء"
 #: src/composables/usePerformanceMetrics.ts:84
 #: src/views/dashboard/components/PerformanceTablesCard.vue:43
 msgid "Active connections"
-msgstr ""
+msgstr "اتصالات نشطة"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "النسبة الفعلية للعامل إلى المُهيأ"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -77,7 +77,7 @@ msgstr "إضافة"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:45
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49
 msgid "Add a passkey"
-msgstr "أضف مفتاح مرور"
+msgstr "إضافة مفتاح مرور"
 
 #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171
 #: src/views/config/ConfigEditor.vue:244
@@ -116,7 +116,7 @@ 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
@@ -126,7 +126,7 @@ msgstr "الكل"
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr ""
+msgstr "تم استخدام جميع رموز الاسترداد"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
@@ -151,11 +151,11 @@ msgstr "رمز API"
 
 #: src/views/preference/Preference.vue:52
 msgid "App"
-msgstr ""
+msgstr "التطبيق"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
-msgstr ""
+msgstr "تطبيق"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:67
 #, fuzzy
@@ -164,7 +164,7 @@ msgstr "تم التكرار بنجاح"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "بنية"
+msgstr "\"أرك\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 msgid "Are you sure to delete this banned IP immediately?"
@@ -274,11 +274,11 @@ msgstr "الكاتب"
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:31
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:43
 msgid "Auto"
-msgstr ""
+msgstr "آلي"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "Auto = CPU Cores"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
@@ -294,11 +294,11 @@ msgstr "تم تمكين التجديد التلقائي لـ‏%{name}"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"إعادة التشغيل التلقائي\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"تمت الفهرسة تلقائيًا من تكوينات الموقع والدفق.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -621,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
@@ -651,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
@@ -1285,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
@@ -2037,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
@@ -2405,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
@@ -2842,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
@@ -3200,8 +3200,7 @@ 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:"
@@ -3238,8 +3237,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
@@ -3281,8 +3280,7 @@ 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:100
@@ -3950,14 +3948,14 @@ 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:64
@@ -4152,9 +4150,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
@@ -4318,7 +4316,8 @@ 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
@@ -4330,8 +4329,7 @@ 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
@@ -4439,8 +4437,7 @@ 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
@@ -4480,8 +4477,7 @@ 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
@@ -4529,8 +4525,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 ""
 "لضمان عمل تجديد الشهادة التلقائي بشكل طبيعي، نحتاج إلى إضافة موقع يمكنه "
@@ -4545,8 +4541,8 @@ msgid ""
 "local API."
 msgstr ""
 "لاستخدام نموذج كبير محلي، قم بنشره باستخدام vllm أو lmdeploy. فهي توفر نقطة "
-"نهاية API متوافقة مع OpenAI، لذا قم فقط بتعيين baseUrl إلىAPI المحلية الخاصة "
-"بك."
+"نهاية API متوافقة مع OpenAI، لذا قم فقط بتعيين baseUrl إلىAPI المحلية "
+"الخاصة بك."
 
 #: src/views/dashboard/NginxDashBoard.vue:57
 #, fuzzy
@@ -4793,8 +4789,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. هل أنت "
 "متأكد أنك تريد المتابعة؟"
@@ -4860,7 +4856,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "مساحة العمل"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -4886,8 +4882,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,8 +4909,7 @@ 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
@@ -4944,8 +4939,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 ""
 #~ "عند تفعيل/تعطيل، حذف، أو حفظ هذا الموقع، سيتم مزامنة العقد المحددة في فئة "
 #~ "الموقع والعقد المحددة أدناه."
@@ -5012,15 +5007,12 @@ 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}"
@@ -5035,20 +5027,18 @@ 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 ""
 #~ "إذا فقدت هاتفك المحمول، يمكنك استخدام رمز الاسترداد لإعادة تعيين المصادقة "
 #~ "الثنائية."
@@ -5056,8 +5046,7 @@ 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"
@@ -5073,5 +5062,4 @@ msgstr "مفاتيح المرور الخاصة بك"
 #~ msgstr "اسم المستخدم أو كلمة المرور غير صحيحة"
 
 #~ msgid "Too many login failed attempts, please try again later"
-#~ msgstr ""
-#~ "عدد كبير جدًا من محاولات تسجيل الدخول الفاشلة، يرجى المحاولة مرة أخرى لاحقًا"
+#~ msgstr "عدد كبير جدًا من محاولات تسجيل الدخول الفاشلة، يرجى المحاولة مرة أخرى لاحقًا"

+ 95 - 111
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"
 
@@ -55,11 +55,11 @@ msgstr "Aktion"
 #: src/composables/usePerformanceMetrics.ts:84
 #: src/views/dashboard/components/PerformanceTablesCard.vue:43
 msgid "Active connections"
-msgstr ""
+msgstr "Aktive Verbindungen"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "Tatsächliches Verhältnis von Arbeitern zu konfigurierten"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -118,8 +118,8 @@ msgstr "Erweiterter Modus"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:99
 msgid "Afterwards, refresh this page and click add passkey again."
 msgstr ""
-"Anschließend diese Seite aktualisieren und erneut auf Passkey hinzufügen "
-"klicken."
+"Aktualisieren Sie anschließend diese Seite und klicken Sie erneut auf "
+"\"Passkey hinzufügen\"."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
@@ -129,7 +129,7 @@ msgstr "Alle"
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr ""
+msgstr "Alle Wiederherstellungscodes wurden verwendet"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
@@ -152,9 +152,8 @@ msgid "API Type"
 msgstr "API-Typ"
 
 #: src/views/preference/Preference.vue:52
-#, fuzzy
 msgid "App"
-msgstr "Anwenden"
+msgstr "App"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
@@ -167,7 +166,7 @@ msgstr "Speichern erfolgreich"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "Arch"
+msgstr "\"Arch\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 #, fuzzy
@@ -288,11 +287,11 @@ msgstr "Autor"
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:31
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:43
 msgid "Auto"
-msgstr ""
+msgstr "Auto"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "Auto = CPU -Kerne"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
@@ -308,11 +307,11 @@ msgstr "Automatische Verlängerung aktiviert für %{name}"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"Automatischer Neustart\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"Automatisch aus Site- und Stream-Konfigurationen indiziert.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -404,8 +403,7 @@ 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"
@@ -638,8 +636,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
@@ -668,8 +666,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
@@ -964,8 +962,7 @@ 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
@@ -1320,9 +1317,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
@@ -2081,8 +2078,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
@@ -2465,19 +2462,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
@@ -2917,8 +2914,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
@@ -3011,8 +3008,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
@@ -3115,8 +3112,7 @@ 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
@@ -3305,8 +3301,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"
@@ -3317,15 +3313,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
@@ -3373,11 +3369,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:100
 msgid "Please resolve all issues before proceeding with installation"
@@ -3970,8 +3965,7 @@ 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"
@@ -4070,14 +4064,14 @@ 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:64
@@ -4275,9 +4269,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
@@ -4449,7 +4443,8 @@ 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
@@ -4462,8 +4457,7 @@ 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
@@ -4502,9 +4496,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
@@ -4512,8 +4506,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
@@ -4572,10 +4566,8 @@ 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 ""
@@ -4614,8 +4606,7 @@ 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."
@@ -4667,8 +4658,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 "
@@ -4680,9 +4671,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
@@ -4735,8 +4726,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"
@@ -4934,8 +4925,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?"
@@ -4970,8 +4961,9 @@ 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 ""
@@ -5002,7 +4994,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "Arbeitsplatz"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -5028,8 +5020,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
@@ -5057,8 +5049,7 @@ 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
@@ -5085,13 +5076,12 @@ 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 "
@@ -5164,14 +5154,11 @@ 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
@@ -5185,8 +5172,7 @@ 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
@@ -5206,8 +5192,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."
@@ -5221,15 +5207,13 @@ 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 ""

+ 51 - 59
app/src/language/en/app.po

@@ -5,7 +5,7 @@ msgstr ""
 "Language-Team: none\n"
 "Language: en\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"
 
@@ -60,7 +60,7 @@ msgstr ""
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "Actual worker to configured ratio"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -75,7 +75,7 @@ msgstr ""
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:45
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49
 msgid "Add a passkey"
-msgstr ""
+msgstr "Add a passkey"
 
 #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171
 #: src/views/config/ConfigEditor.vue:244
@@ -118,17 +118,17 @@ msgstr "Advance Mode"
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:99
 msgid "Afterwards, refresh this page and click add passkey again."
-msgstr ""
+msgstr "Afterwards, refresh this page and click add passkey again."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
 msgid "All"
-msgstr ""
+msgstr "All"
 
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr ""
+msgstr "All Recovery Codes Have Been Used"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
@@ -145,7 +145,7 @@ msgstr ""
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr ""
+msgstr "API Token"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 msgid "API Type"
@@ -153,11 +153,11 @@ msgstr ""
 
 #: src/views/preference/Preference.vue:52
 msgid "App"
-msgstr ""
+msgstr "App"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
-msgstr ""
+msgstr "Apply"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:67
 #, fuzzy
@@ -166,7 +166,7 @@ msgstr "Saved successfully"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr ""
+msgstr "\"Arch\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 #, fuzzy
@@ -305,11 +305,11 @@ msgstr "Auto-renewal enabled for %{name}"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"Automatic Restart\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"Automatically indexed from site and stream configurations.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -630,8 +630,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
@@ -660,8 +660,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
@@ -2067,8 +2067,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
@@ -2443,12 +2443,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
@@ -2883,8 +2883,8 @@ msgstr "Configuration Name"
 #: 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 "Configuration Name"
 
 #: src/components/ChatGPT/ChatGPT.vue:374
@@ -3273,8 +3273,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
@@ -3318,8 +3318,7 @@ 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:100
@@ -4007,14 +4006,14 @@ 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:64
@@ -4216,9 +4215,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
@@ -4387,7 +4386,8 @@ 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
@@ -4398,8 +4398,7 @@ 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
@@ -4503,8 +4502,7 @@ 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
@@ -4545,8 +4543,7 @@ 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 "Saved successfully"
 
 #: src/views/preference/tabs/AuthSettings.vue:124
@@ -4590,8 +4587,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 ""
 
@@ -4850,8 +4847,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
@@ -4936,8 +4933,8 @@ msgstr "Yes"
 
 #: 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
@@ -4963,8 +4960,7 @@ 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
@@ -5045,14 +5041,11 @@ msgstr ""
 #~ msgstr "Saved successfully"
 
 #, 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 "Saved successfully"
 
 #, 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 "Saved successfully"
 
 #, fuzzy
@@ -5066,8 +5059,7 @@ msgstr ""
 #~ msgstr "Saved successfully"
 
 #, fuzzy
-#~ msgid ""
-#~ "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
+#~ msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 #~ msgstr "Saved successfully"
 
 #, fuzzy

+ 104 - 118
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"
@@ -61,11 +61,11 @@ msgstr "Acción"
 #: src/composables/usePerformanceMetrics.ts:84
 #: src/views/dashboard/components/PerformanceTablesCard.vue:43
 msgid "Active connections"
-msgstr ""
+msgstr "Conexiones activas"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "Proporción real de trabajadores a configurados"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -80,7 +80,7 @@ msgstr "Agregar"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:45
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49
 msgid "Add a passkey"
-msgstr "Agregar una llave de acceso"
+msgstr "Añadir una clave de acceso"
 
 #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171
 #: src/views/config/ConfigEditor.vue:244
@@ -120,18 +120,18 @@ msgstr "Modo avanzado"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:99
 msgid "Afterwards, refresh this page and click add passkey again."
 msgstr ""
-"Luego, actualice esta página y haga clic nuevamente en Agregar llave de "
-"acceso."
+"Después, actualice esta página y haga clic en agregar clave de acceso "
+"nuevamente."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
 msgid "All"
-msgstr "Todo"
+msgstr "Todos"
 
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr ""
+msgstr "Todos los códigos de recuperación han sido utilizados"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
@@ -147,7 +147,7 @@ msgstr "Proxy de la API"
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr "Token de la API"
+msgstr "Token de API"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 #, fuzzy
@@ -156,11 +156,11 @@ msgstr "Token de la API"
 
 #: src/views/preference/Preference.vue:52
 msgid "App"
-msgstr ""
+msgstr "Aplicación"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
-msgstr ""
+msgstr "Aplicar"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:67
 #, fuzzy
@@ -169,7 +169,7 @@ msgstr "Duplicado con éxito"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "Arquitectura"
+msgstr "\"Arquitectura\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 msgid "Are you sure to delete this banned IP immediately?"
@@ -283,7 +283,7 @@ msgstr "Automático"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "auto = núcleos de CPU"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
@@ -299,11 +299,11 @@ msgstr "Renovación automática habilitada por %{name}"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"Reinicio Automático\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"Indexado automáticamente desde configuraciones de sitio y transmisión.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -620,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
@@ -650,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
@@ -1263,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"
@@ -1285,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
@@ -2037,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
@@ -2061,8 +2061,7 @@ 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 ""
@@ -2406,20 +2405,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
@@ -2442,8 +2441,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
@@ -2847,8 +2846,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
@@ -3133,8 +3132,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"
@@ -3232,8 +3231,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"
@@ -3245,14 +3244,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
@@ -3298,8 +3297,7 @@ 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."
@@ -3981,14 +3979,14 @@ 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:64
@@ -4180,9 +4178,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
@@ -4328,8 +4326,7 @@ 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
@@ -4350,7 +4347,8 @@ 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
@@ -4364,8 +4362,7 @@ 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
@@ -4396,8 +4393,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 ""
@@ -4477,8 +4474,7 @@ 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."
@@ -4520,8 +4516,7 @@ 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}."
@@ -4565,21 +4560,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
@@ -4836,8 +4831,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?"
@@ -4904,7 +4899,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "Espacio de trabajo"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -4930,8 +4925,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
@@ -4959,8 +4954,7 @@ 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
@@ -4986,14 +4980,12 @@ 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 "
@@ -5035,8 +5027,7 @@ 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?"
@@ -5059,26 +5050,23 @@ 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 "
@@ -5087,11 +5075,10 @@ 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 ""
@@ -5108,8 +5095,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."
@@ -5123,11 +5110,10 @@ 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 ""
@@ -5208,9 +5194,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."
 
@@ -5233,13 +5219,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"

+ 68 - 80
app/src/language/fr_FR/app.po

@@ -5,18 +5,18 @@ 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"
 
 #: src/views/user/userColumns.tsx:32
 msgid "2FA"
-msgstr ""
+msgstr "2fa"
 
 #: src/views/preference/tabs/AuthSettings.vue:70
 msgid "2FA Settings"
@@ -60,11 +60,11 @@ msgstr "Action"
 #: src/composables/usePerformanceMetrics.ts:84
 #: src/views/dashboard/components/PerformanceTablesCard.vue:43
 msgid "Active connections"
-msgstr ""
+msgstr "Connexions actives"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "Ratio réel des travailleurs par rapport à la configuration"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -123,7 +123,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."
+"Ensuite, rafraîchissez cette page et cliquez à nouveau sur ajouter une clé "
+"d'accès."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
@@ -150,7 +151,7 @@ msgstr "Proxy d'API"
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr "Jeton d'API"
+msgstr "Jeton API"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 #, fuzzy
@@ -158,9 +159,8 @@ msgid "API Type"
 msgstr "Jeton d'API"
 
 #: src/views/preference/Preference.vue:52
-#, fuzzy
 msgid "App"
-msgstr "Appliquer"
+msgstr "Application"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
@@ -172,9 +172,8 @@ msgid "Apply bulk action successfully"
 msgstr "Dupliqué avec succès"
 
 #: src/views/system/Upgrade.vue:176
-#, fuzzy
 msgid "Arch"
-msgstr "Arch"
+msgstr "\"Arch\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 #, fuzzy
@@ -261,7 +260,7 @@ msgstr "Modèle ChatGPT"
 
 #: src/components/ChatGPT/ChatGPT.vue:333
 msgid "Assistant"
-msgstr ""
+msgstr "Assistant"
 
 #: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
@@ -296,7 +295,7 @@ msgstr "Auto"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "auto = cœurs CPU"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
@@ -312,11 +311,11 @@ msgstr "Renouvellement automatique activé pour %{name}"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"Redémarrage Automatique\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"Indexé automatiquement à partir des configurations de site et de flux.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -407,8 +406,7 @@ 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"
@@ -640,8 +638,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
@@ -673,8 +671,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."
@@ -971,8 +969,7 @@ 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
@@ -1247,8 +1244,7 @@ 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
@@ -2099,8 +2095,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
@@ -2119,8 +2115,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
@@ -2134,8 +2130,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
@@ -2488,12 +2484,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
@@ -2518,8 +2514,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
@@ -2930,8 +2926,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
@@ -3321,8 +3317,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
@@ -3368,8 +3364,7 @@ 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:100
@@ -4062,14 +4057,14 @@ 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:64
@@ -4268,9 +4263,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
@@ -4443,7 +4438,8 @@ 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
@@ -4454,8 +4450,7 @@ 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
@@ -4562,8 +4557,7 @@ 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
@@ -4604,8 +4598,7 @@ 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
@@ -4649,12 +4642,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?"
 
@@ -4909,8 +4902,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?"
@@ -4970,7 +4963,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "Espace de travail"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -4996,8 +4989,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
@@ -5023,8 +5016,7 @@ 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
@@ -5119,14 +5111,11 @@ 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
@@ -5140,8 +5129,7 @@ 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
@@ -5230,8 +5218,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."

+ 5 - 5
app/src/language/ja/app.po

@@ -108,13 +108,13 @@ msgstr "APIドキュメント"
 msgid "API Proxy"
 msgstr "APIプロキシ"
 
-#: src/views/preference/OpenAISettings.vue:68
+#: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
 msgstr "APIトークン"
 
-#: src/views/system/Upgrade.vue:178
+#: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "アーチ"
+msgstr "\"アーキテクャ\""
 
 #: src/views/preference/AuthSettings.vue:96
 msgid "Are you sure to delete this banned IP immediately?"
@@ -1133,9 +1133,9 @@ msgstr ""
 msgid "Login successful"
 msgstr ""
 
-#: src/layouts/HeaderLayout.vue:19
+#: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
-msgstr ""
+msgstr "ログアウトしました"
 
 #: src/views/preference/Preference.vue:134
 msgid "Logrotate"

+ 67 - 87
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"
@@ -59,11 +59,11 @@ msgstr "작업"
 #: src/composables/usePerformanceMetrics.ts:84
 #: src/views/dashboard/components/PerformanceTablesCard.vue:43
 msgid "Active connections"
-msgstr ""
+msgstr "활성 연결"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "실제 작업자 대 구성 비율"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -78,7 +78,7 @@ msgstr "추가"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:45
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49
 msgid "Add a passkey"
-msgstr ""
+msgstr "패스키 추가"
 
 #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171
 #: src/views/config/ConfigEditor.vue:244
@@ -117,17 +117,17 @@ 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
 msgid "All"
-msgstr ""
+msgstr "모두"
 
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr ""
+msgstr "모든 복구 코드가 사용되었습니다"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
@@ -164,7 +164,7 @@ msgstr "일괄 작업을 적용했습니다"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "아키텍처"
+msgstr "\"아키텍처\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 msgid "Are you sure to delete this banned IP immediately?"
@@ -269,11 +269,11 @@ msgstr "저자"
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:31
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:43
 msgid "Auto"
-msgstr ""
+msgstr "자동"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "자동 = CPU 코어"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
@@ -289,11 +289,11 @@ msgstr "%{name}에 대한 자동 갱신 활성화됨"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr "자동 재시작"
+msgstr "\"자동 재시작\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr "사이트 및 스트림 구성에서 자동으로 색인됩니다."
+msgstr "\"사이트 및 스트림 구성에서 자동으로 인덱싱되었습니다.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -610,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
@@ -640,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
@@ -1254,8 +1254,7 @@ 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"
@@ -2029,8 +2028,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
@@ -2400,18 +2399,16 @@ 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
@@ -2435,8 +2432,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
@@ -2849,8 +2846,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
@@ -3232,15 +3229,13 @@ 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
@@ -3285,8 +3280,7 @@ 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:100
@@ -3980,14 +3974,14 @@ 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:64
@@ -4185,9 +4179,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
@@ -4332,9 +4326,7 @@ 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}"
@@ -4357,7 +4349,8 @@ 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
@@ -4368,8 +4361,7 @@ 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
@@ -4475,8 +4467,7 @@ 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
@@ -4516,8 +4507,7 @@ 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
@@ -4561,13 +4551,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 ""
-"인증서 자동 갱신이 정상적으로 작동하도록 하려면,권한에서 백엔드로 요청을 프록"
-"시할 수 있는 위치를 추가해야 하며,이 파일을 저장하고 Nginx를 다시로드해야 합"
-"니다.계속하시겠습니까?"
+"인증서 자동 갱신이 정상적으로 작동하도록 하려면,권한에서 백엔드로 요청을 프록시할 수 있는 위치를 추가해야 하며,이 파일을 저장하고 "
+"Nginx를 다시로드해야 합니다.계속하시겠습니까?"
 
 #: src/views/preference/tabs/OpenAISettings.vue:36
 msgid ""
@@ -4819,17 +4808,13 @@ 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"
@@ -4886,7 +4871,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "작업 공간"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -4912,8 +4897,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
@@ -4939,8 +4924,7 @@ 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
@@ -5025,14 +5009,11 @@ 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
@@ -5046,8 +5027,7 @@ 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

+ 103 - 50
app/src/language/pt_PT/app.po

@@ -4,10 +4,10 @@ msgid ""
 msgstr ""
 "PO-Revision-Date: 2024-08-12 17:09+0000\n"
 "Last-Translator: Kleiser Sarifo <kleiser.sarifo@gmail.com>\n"
-"Language-Team: Portuguese (Portugal) <https://weblate.nginxui.com/projects/"
-"nginx-ui/frontend/pt_PT/>\n"
+"Language-Team: Portuguese (Portugal) "
+"<https://weblate.nginxui.com/projects/nginx-ui/frontend/pt_PT/>\n"
 "Language: pt_PT\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"
@@ -107,13 +107,13 @@ msgstr "Documento da API"
 msgid "API Proxy"
 msgstr "API Proxy"
 
-#: src/views/preference/OpenAISettings.vue:68
+#: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr "API Token"
+msgstr "Token da API"
 
-#: src/views/system/Upgrade.vue:178
+#: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "Arch"
+msgstr "\"Arquitetura\""
 
 #: src/views/preference/AuthSettings.vue:96
 msgid "Are you sure to delete this banned IP immediately?"
@@ -456,7 +456,9 @@ msgid "Custom"
 msgstr "Personalizado"
 
 #: src/views/preference/BasicSettings.vue:121
-msgid "Customize the name of local server to be displayed in the environment indicator."
+msgid ""
+"Customize the name of local server to be displayed in the environment "
+"indicator."
 msgstr ""
 "Personalize o nome do servidor local a ser apresentado no indicador de "
 "ambiente."
@@ -645,8 +647,7 @@ msgstr "Configuração de Domínio criado com Sucesso"
 
 #: src/views/certificate/CertificateEditor.vue:106
 msgid "Domains list is empty, try to reopen Auto Cert for %{config}"
-msgstr ""
-"A lista de domínios está vazia, tente reabrir o Auto Cert para %{config}"
+msgstr "A lista de domínios está vazia, tente reabrir o Auto Cert para %{config}"
 
 #: src/language/constants.ts:26
 msgid "Download latest release error"
@@ -849,8 +850,7 @@ msgstr "Busca de informação do certificado falhou"
 #: src/views/domain/DomainEdit.vue:127
 #: src/views/stream/StreamEdit.vue:122
 msgid "Failed to save, syntax error(s) was detected in the configuration."
-msgstr ""
-"Falha ao salvar, erro(s) de sintaxe detectados no ficheiro de configuração."
+msgstr "Falha ao salvar, erro(s) de sintaxe detectados no ficheiro de configuração."
 
 #: src/views/config/configColumns.ts:24
 msgid "File"
@@ -948,20 +948,26 @@ msgid "If left blank, the default CA Dir will be used."
 msgstr "Se for deixado em branco, será utilizado o diretório CA padrão."
 
 #: src/views/preference/AuthSettings.vue:62
-msgid "If the number of login failed attempts from a ip reach the max attempts in ban threshold minutes, the ip will be banned for a period of time."
+msgid ""
+"If the number of login failed attempts from a ip reach the max attempts in "
+"ban threshold minutes, the ip will be banned for a period of time."
 msgstr ""
 "Se o número de tentativas de início de sessão falhadas de um IP atingir o "
-"máximo de tentativas em minutos de limite de banimento, o IP será banido por "
-"um período de tempo."
+"máximo de tentativas em minutos de limite de banimento, o IP será banido "
+"por um período de tempo."
 
 #: src/views/preference/components/TOTP.vue:108
-msgid "If you lose your mobile phone, you can use the recovery code to reset your 2FA."
+msgid ""
+"If you lose your mobile phone, you can use the recovery code to reset your "
+"2FA."
 msgstr ""
 "Se perder o seu telemóvel, pode utilizar o código de recuperação para repor "
 "o seu 2FA."
 
 #: src/views/domain/cert/components/AutoCertStepOne.vue:109
-msgid "If your domain has CNAME records and you cannot obtain certificates, you need to enable this option."
+msgid ""
+"If your domain has CNAME records and you cannot obtain certificates, you "
+"need to enable this option."
 msgstr ""
 "Se o seu domínio tiver registos CNAME e não conseguir obter certificados, "
 "terá de ativar esta opção."
@@ -1146,7 +1152,13 @@ msgid "Logrotate"
 msgstr "Logrotate"
 
 #: src/views/preference/LogrotateSettings.vue:12
-msgid "Logrotate, by default, is enabled in most mainstream Linux distributions for users who install Nginx UI on the host machine, so you don't need to modify the parameters on this page. For users who install Nginx UI using Docker containers, you can manually enable this option. The crontab task scheduler of Nginx UI will execute the logrotate command at the interval you set in minutes."
+msgid ""
+"Logrotate, by default, is enabled in most mainstream Linux distributions "
+"for users who install Nginx UI on the host machine, so you don't need to "
+"modify the parameters on this page. For users who install Nginx UI using "
+"Docker containers, you can manually enable this option. The crontab task "
+"scheduler of Nginx UI will execute the logrotate command at the interval "
+"you set in minutes."
 msgstr ""
 "O Logrotate, por defeito, está activado na maioria das distribuições Linux "
 "convencionais para utilizadores que instalam o Nginx UI na máquina host, "
@@ -1156,7 +1168,9 @@ msgstr ""
 "executará o comando logrotate no intervalo que definir em minutos."
 
 #: src/views/domain/cert/components/AutoCertStepOne.vue:54
-msgid "Make sure you have configured a reverse proxy for .well-known directory to HTTPChallengePort before obtaining the certificate."
+msgid ""
+"Make sure you have configured a reverse proxy for .well-known directory to "
+"HTTPChallengePort before obtaining the certificate."
 msgstr ""
 "Certifique-se de que configurou um proxy reverso do diretório .well-known "
 "para HTTPChallengePort antes de obter o certificado."
@@ -1377,7 +1391,9 @@ msgid "OCSP Must Staple"
 msgstr "OCSP Must Staple"
 
 #: src/views/domain/cert/components/AutoCertStepOne.vue:100
-msgid "OCSP Must Staple may cause errors for some users on first access using Firefox."
+msgid ""
+"OCSP Must Staple may cause errors for some users on first access using "
+"Firefox."
 msgstr ""
 "OCSP Must Staple pode causar erros para alguns utilizadores no primeiro "
 "acesso usando o Firefox."
@@ -1488,7 +1504,9 @@ msgid "Please enter the 2FA code:"
 msgstr "Introduza o código 2FA:"
 
 #: src/views/certificate/DNSCredential.vue:53
-msgid "Please fill in the API authentication credentials provided by your DNS provider."
+msgid ""
+"Please fill in the API authentication credentials provided by your DNS "
+"provider."
 msgstr ""
 "Preencha as credenciais de autenticação da API fornecidas pelo seu "
 "fornecedor de DNS."
@@ -1498,7 +1516,9 @@ msgid "Please fill in the required fields"
 msgstr "Por favor preencha os campos obrigatórios"
 
 #: src/views/domain/cert/components/AutoCertStepOne.vue:58
-msgid "Please first add credentials in Certification > DNS Credentials, and then select one of the credentialsbelow to request the API of the DNS provider."
+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 ""
 "Primeiro adicione as credenciais em Certificação > Credenciais DNS e "
 "selecione uma das credenciais abaixo para solicitar a API do fornecedor DNS."
@@ -1514,7 +1534,9 @@ msgstr "Por favor introduza o nome da pasta"
 
 #: src/views/domain/components/SiteDuplicate.vue:38
 #: src/views/stream/components/StreamDuplicate.vue:38
-msgid "Please input name, this will be used as the filename of the new configuration!"
+msgid ""
+"Please input name, this will be used as the filename of the new "
+"configuration!"
 msgstr ""
 "Por favor insira o nome, este será utilizado como nome do ficheiro da nova "
 "configuração!"
@@ -1535,8 +1557,7 @@ msgstr "Por favor introduza o seu nome de utilizador!"
 
 #: src/views/certificate/DNSCredential.vue:62
 msgid "Please note that the unit of time configurations below are all in seconds."
-msgstr ""
-"Note que as definições da unidade de tempo abaixo estão todas em segundos."
+msgstr "Note que as definições da unidade de tempo abaixo estão todas em segundos."
 
 #: src/views/domain/components/SiteDuplicate.vue:45
 #: src/views/stream/components/StreamDuplicate.vue:45
@@ -1674,7 +1695,9 @@ msgid "Rename"
 msgstr "Renomear"
 
 #: src/components/Notification/config.ts:31
-msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade the remote Nginx UI to the latest version"
+msgid ""
+"Rename %{orig_path} to %{new_path} on %{env_name} failed, please upgrade "
+"the remote Nginx UI to the latest version"
 msgstr ""
 "Erro ao mudar o nome de %{orig_path} para %{new_path} no %{env_name}, por "
 "favor actualize a versão do Nginx UI para a mais recente"
@@ -1844,7 +1867,9 @@ msgid "server_name parameter is required"
 msgstr "Parâmetro server_name é obrigatório"
 
 #: src/views/preference/BasicSettings.vue:64
-msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge."
+msgid ""
+"Set the recursive nameservers to override the systems nameservers for the "
+"step of DNS challenge."
 msgstr ""
 "Configure os nameservers recursivos para substituir os nameservers dos "
 "sistemas na etapa de DNS challenge."
@@ -1948,21 +1973,22 @@ msgid "Sync Certificate"
 msgstr "Sincronizar Certificado"
 
 #: src/components/Notification/cert.ts:12
-msgid "Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the remote Nginx UI to the latest version"
+msgid ""
+"Sync Certificate %{cert_name} to %{env_name} failed, please upgrade the "
+"remote Nginx UI to the latest version"
 msgstr ""
-"Sincronização do Certificado %{cert_name} para %{env_name} falhou, por favor "
-"actualize a versão remota do Nginx UI para a última versão"
+"Sincronização do Certificado %{cert_name} para %{env_name} falhou, por "
+"favor actualize a versão remota do Nginx UI para a última versão"
 
 #: src/components/Notification/cert.ts:16
 msgid "Sync Certificate %{cert_name} to %{env_name} failed, response: %{resp}"
 msgstr ""
-"Sincronização do Certificado %{cert_name} para %{env_name} falhou, resposta: "
-"%{resp}"
+"Sincronização do Certificado %{cert_name} para %{env_name} falhou, "
+"resposta: %{resp}"
 
 #: src/components/Notification/cert.ts:4
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
-msgstr ""
-"Sincronização do Certificado %{cert_name} para %{env_name} feito com sucesso"
+msgstr "Sincronização do Certificado %{cert_name} para %{env_name} feito com sucesso"
 
 #: src/language/constants.ts:38
 msgid "Sync Certificate Error"
@@ -1973,7 +1999,9 @@ msgid "Sync Certificate Success"
 msgstr "Certificado Sincronizado com Sucesso"
 
 #: src/components/Notification/config.ts:12
-msgid "Sync config %{cert_name} to %{env_name} failed, please upgrade the remote Nginx UI to the latest version"
+msgid ""
+"Sync config %{cert_name} to %{env_name} failed, please upgrade the remote "
+"Nginx UI to the latest version"
 msgstr ""
 "Sincronização de configurações %{cert_name} para %{env_name} falhou, por "
 "favor actualize a versão remota do Nginx UI para a mais recente"
@@ -2025,11 +2053,14 @@ msgid "Terminal Start Command"
 msgstr "Comando de Inicialização do Terminal"
 
 #: src/views/domain/cert/components/AutoCertStepOne.vue:50
-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."
+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 ""
 "O certificado do domínio será verificado 30 minutos e será renovado se já "
-"tiver passado mais de 1 semana ou o período que definiu nas definições desde "
-"a última emissão."
+"tiver passado mais de 1 semana ou o período que definiu nas definições "
+"desde a última emissão."
 
 #: src/views/other/Install.vue:50
 msgid "The filename cannot contain the following characters: %{c}"
@@ -2044,7 +2075,9 @@ msgid "The input is not a SSL Certificate Key"
 msgstr "O valor introduzido não é uma Chave de Certificado SSL"
 
 #: src/views/preference/OpenAISettings.vue:35
-msgid "The model name should only contain letters, unicode, numbers, hyphens, dashes, and dots."
+msgid ""
+"The model name should only contain letters, unicode, numbers, hyphens, "
+"dashes, and dots."
 msgstr ""
 "O nome do modelo deve conter apenas letras, unicode, números, hífens, "
 "travessões e pontos."
@@ -2064,20 +2097,27 @@ msgstr ""
 "seguro."
 
 #: src/views/dashboard/Environments.vue:148
-msgid "The remote Nginx UI version is not compatible with the local Nginx UI version. To avoid potential errors, please upgrade the remote Nginx UI to match the local version."
+msgid ""
+"The remote Nginx UI version is not compatible with the local Nginx UI "
+"version. To avoid potential errors, please upgrade the remote Nginx UI to "
+"match the local version."
 msgstr ""
-"A versão remota do Nginx UI não é compatível com a versão local do Nginx UI. "
-"Para evitar possíveis erros, atualize a versão remota do Nginx UI para "
+"A versão remota do Nginx UI não é compatível com a versão local do Nginx "
+"UI. Para evitar possíveis erros, atualize a versão remota do Nginx UI para "
 "corresponder à versão local."
 
 #: src/views/preference/BasicSettings.vue:120
-msgid "The server name should only contain letters, unicode, numbers, hyphens, dashes, and dots."
+msgid ""
+"The server name should only contain letters, unicode, numbers, hyphens, "
+"dashes, and dots."
 msgstr ""
 "O nome do servidor deve conter apenas letras, unicode, números, hífens, "
 "travessões e pontos."
 
 #: src/views/domain/cert/components/AutoCertStepOne.vue:45
-msgid "The server_name in the current configuration must be the domain name you need to get the certificate, supportmultiple domains."
+msgid ""
+"The server_name in the current configuration must be the domain name you "
+"need to get the certificate, supportmultiple domains."
 msgstr ""
 "O server_name na configuração atual deve ser o nome de domínio necessário "
 "para obter o certificado, com suporte para vários domínios."
@@ -2117,7 +2157,8 @@ msgstr "Este campo não pode estar vazio"
 #: src/views/environment/BatchUpgrader.vue:184
 msgid "This will upgrade or reinstall the Nginx UI on %{nodeNames} to %{version}."
 msgstr ""
-"Isto vai actualizar ou reinstalar o Nginx UI em %{nodeNames} para %{version}."
+"Isto vai actualizar ou reinstalar o Nginx UI em %{nodeNames} para "
+"%{version}."
 
 #: src/views/preference/AuthSettings.vue:61
 #: src/views/preference/LogrotateSettings.vue:11
@@ -2129,13 +2170,19 @@ msgid "Title"
 msgstr "Título"
 
 #: src/views/preference/components/TOTP.vue:90
-msgid "To enable it, you need to install the Google or Microsoft Authenticator app on your mobile phone."
+msgid ""
+"To enable it, you need to install the Google or Microsoft Authenticator app "
+"on your mobile phone."
 msgstr ""
 "Para habilitar, tem de instalar a app Google ou Microsoft Authenticator no "
 "seu telemóvel."
 
 #: src/views/domain/ngx_conf/NgxConfigEditor.vue:44
-msgid "To make sure the certification auto-renewal can work normally, we need to add a location which can proxy the request from authority to backend, and we need to save this file and reload the Nginx. Are you sure you want to continue?"
+msgid ""
+"To make sure the certification auto-renewal can work normally, we need to "
+"add a location which can proxy the request from authority to backend, and "
+"we need to save this file and reload the Nginx. Are you sure you want to "
+"continue?"
 msgstr ""
 "Para garantir que a renovação automática da certificação funciona "
 "normalmente, precisamos de adicionar um local que possa fazer proxy do "
@@ -2151,7 +2198,9 @@ msgid "Too many login failed attempts, please try again later"
 msgstr "Muitas tentativas de login falharam, por favor tente mais tarde"
 
 #: src/views/preference/components/TOTP.vue:89
-msgid "TOTP is a two-factor authentication method that uses a time-based one-time password algorithm."
+msgid ""
+"TOTP is a two-factor authentication method that uses a time-based one-time "
+"password algorithm."
 msgstr ""
 "O TOTP é um método de autenticação de dois fatores que utiliza um algoritmo "
 "de palavra-passe única baseado no tempo."
@@ -2279,13 +2328,17 @@ msgid "Warning"
 msgstr "Aviso"
 
 #: src/views/certificate/DNSCredential.vue:56
-msgid "We will add one or more TXT records to the DNS records of your domain for ownership verification."
+msgid ""
+"We will add one or more TXT records to the DNS records of your domain for "
+"ownership verification."
 msgstr ""
 "Adicionaremos um ou mais registos TXT aos registos DNS do seu domínio para "
 "verificação de propriedade."
 
 #: src/views/domain/cert/components/ObtainCert.vue:134
-msgid "We will remove the HTTPChallenge configuration from this file and reload the Nginx. Are you sure you want to continue?"
+msgid ""
+"We will remove the HTTPChallenge configuration from this file and reload "
+"the Nginx. Are you sure you want to continue?"
 msgstr ""
 "Removeremos a configuração HTTPChallenge deste ficheiro e reiniciaremos o "
 "Nginx. Tem a certeza de que quer continuar?"

+ 78 - 91
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"
@@ -61,11 +61,11 @@ msgstr "Действие"
 #: src/composables/usePerformanceMetrics.ts:84
 #: src/views/dashboard/components/PerformanceTablesCard.vue:43
 msgid "Active connections"
-msgstr ""
+msgstr "Активные соединения"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "Фактическое соотношение рабочих к настроенным"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -119,7 +119,7 @@ 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
@@ -145,16 +145,15 @@ msgstr "API Прокси"
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr "API токен"
+msgstr "API-токен"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 msgid "API Type"
 msgstr "Тип API"
 
 #: src/views/preference/Preference.vue:52
-#, fuzzy
 msgid "App"
-msgstr "Применить"
+msgstr "Приложение"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
@@ -166,7 +165,7 @@ msgstr "Массовое действие успешно применено"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "Архитектура"
+msgstr "\"Архитектура\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 msgid "Are you sure to delete this banned IP immediately?"
@@ -273,11 +272,11 @@ msgstr "Автор"
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:31
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:43
 msgid "Auto"
-msgstr ""
+msgstr "Авто"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "Auto = ядра процессора"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
@@ -293,11 +292,11 @@ msgstr "Автообновление включено для %{name}"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"Автоматическая перезагрузка\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"Автоматически проиндексировано из конфигураций сайта и потока.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -608,8 +607,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
@@ -638,8 +637,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
@@ -1250,8 +1249,7 @@ 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"
@@ -1883,8 +1881,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
@@ -2021,8 +2019,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
@@ -2045,8 +2043,7 @@ 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 ""
@@ -2388,18 +2385,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
@@ -2827,8 +2824,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
@@ -3203,8 +3200,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"
@@ -3222,8 +3219,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
@@ -3269,8 +3266,7 @@ 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 ""
 "Обратите внимание, что единица измерения времени в конфигурациях ниже "
 "указана в секундах."
@@ -3408,8 +3404,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"
@@ -3946,14 +3942,14 @@ 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:64
@@ -4145,9 +4141,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
@@ -4314,7 +4310,8 @@ 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
@@ -4328,8 +4325,7 @@ 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
@@ -4378,8 +4374,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
@@ -4441,8 +4437,7 @@ 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 ""
 "Имя модели должно содержать только буквы, юникод, цифры, дефисы, тире и "
 "точки."
@@ -4484,8 +4479,7 @@ 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}."
@@ -4533,8 +4527,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 ""
 "Чтобы убедиться, что автоматическое обновление сертификата может работать "
@@ -4794,11 +4788,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"
@@ -4855,7 +4849,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "Рабочее пространство"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -4881,8 +4875,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
@@ -4908,8 +4902,7 @@ 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
@@ -4935,8 +4928,7 @@ msgstr ""
 #~ msgstr "Ошибка формата %{msg}"
 
 #~ msgid "Failed to save, syntax error(s) was detected in the configuration."
-#~ msgstr ""
-#~ "Не удалось сохранить, обнаружены синтаксические ошибки в конфигурации."
+#~ msgstr "Не удалось сохранить, обнаружены синтаксические ошибки в конфигурации."
 
 #, fuzzy
 #~ msgid "Access Token"
@@ -4999,16 +4991,13 @@ msgstr ""
 #~ "Синхронизация конфигурации %{cert_name} с %{env_name} не удалась, "
 #~ "пожалуйста, обновите удаленный Nginx UI до последней версии"
 
-#~ 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}"
+#~ "Переименование %{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
@@ -5024,16 +5013,15 @@ 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 "Цель"
@@ -5042,8 +5030,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."
@@ -5057,11 +5045,10 @@ 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 "Слишком много неудачных попыток входа, попробуйте позже"

+ 113 - 141
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"
@@ -58,11 +58,11 @@ msgstr "Eylem"
 #: src/composables/usePerformanceMetrics.ts:84
 #: src/views/dashboard/components/PerformanceTablesCard.vue:43
 msgid "Active connections"
-msgstr ""
+msgstr "Aktif bağlantılar"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "Gerçek çalışanın yapılandırılmışa oranı"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -77,7 +77,7 @@ msgstr "Ekle"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:45
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49
 msgid "Add a passkey"
-msgstr "Geçiş anahtarı ekleme"
+msgstr "Bir geçiş anahtarı ekle"
 
 #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171
 #: src/views/config/ConfigEditor.vue:244
@@ -116,18 +116,17 @@ 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 parola anahtarı ekle'ye tıklayın."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
 msgid "All"
-msgstr "Hepsi"
+msgstr "Tümü"
 
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr "Tüm Kurtarma Kodları Kullanılmıştır"
+msgstr "Tüm Kurtarma Kodları Kullanıl"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
@@ -143,7 +142,7 @@ msgstr "API Proxy"
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr "API Token"
+msgstr "API Anahtarı"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 msgid "API Type"
@@ -163,7 +162,7 @@ msgstr "Toplu işlem başarıyla uygulandı"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "Mimari"
+msgstr "\"Mimari\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 msgid "Are you sure to delete this banned IP immediately?"
@@ -270,11 +269,11 @@ msgstr "Yazar"
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:31
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:43
 msgid "Auto"
-msgstr ""
+msgstr "Otomobil"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "Auto = CPU Çekirdekleri"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
@@ -290,11 +289,11 @@ msgstr "Otomatik yenileme %{name} için etkinleştirildi"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"Otomatik Yeniden Başlatma\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"Site ve akış yapılandırmalarından otomatik olarak dizinlendi.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -609,8 +608,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
@@ -639,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
@@ -997,8 +996,7 @@ 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
@@ -1012,8 +1010,7 @@ 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
@@ -1165,8 +1162,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
@@ -1409,8 +1406,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
@@ -1423,8 +1420,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
@@ -1437,8 +1434,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
@@ -2054,8 +2051,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
@@ -2423,19 +2420,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
@@ -2896,8 +2893,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
@@ -3312,8 +3309,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
@@ -3326,15 +3323,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
@@ -3353,16 +3350,14 @@ 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
@@ -3386,8 +3381,7 @@ 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."
@@ -3687,14 +3681,12 @@ 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
@@ -3731,26 +3723,22 @@ 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
@@ -4002,8 +3990,7 @@ 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
@@ -4137,14 +4124,14 @@ 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:64
@@ -4351,9 +4338,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
@@ -4510,8 +4497,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
@@ -4523,8 +4510,7 @@ 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
@@ -4538,7 +4524,8 @@ 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
@@ -4547,12 +4534,10 @@ 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
@@ -4560,8 +4545,7 @@ 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
@@ -4674,10 +4658,8 @@ 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 ""
@@ -4717,8 +4699,7 @@ 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."
@@ -4765,21 +4746,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?"
 
@@ -4790,9 +4771,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
@@ -5067,8 +5048,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?"
@@ -5132,7 +5113,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "Çalışma alanı"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -5162,8 +5143,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
@@ -5194,8 +5175,7 @@ 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
@@ -5248,8 +5228,7 @@ 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ı"
@@ -5257,8 +5236,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?"
@@ -5273,8 +5252,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"
@@ -5286,18 +5265,14 @@ 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}"
@@ -5314,8 +5289,7 @@ 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}"
@@ -5337,8 +5311,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."
@@ -5355,8 +5329,7 @@ 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."
@@ -5372,9 +5345,8 @@ 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"

+ 62 - 65
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"
@@ -62,7 +62,7 @@ msgstr "Активні підключення"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "Фактичне співвідношення робочих до налаштованих"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -77,7 +77,7 @@ msgstr "Додати"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:45
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49
 msgid "Add a passkey"
-msgstr ""
+msgstr "Додати ключ доступу"
 
 #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171
 #: src/views/config/ConfigEditor.vue:244
@@ -116,13 +116,12 @@ 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
 msgid "All"
-msgstr "Все"
+msgstr "Усі"
 
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
@@ -131,7 +130,7 @@ msgstr "Усі коди відновлення використано"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
-msgstr ""
+msgstr "Базова URL-адреса API"
 
 #: src/views/certificate/DNSChallenge.vue:83
 msgid "API Document"
@@ -143,7 +142,7 @@ msgstr "API Проксі"
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr "API Токен"
+msgstr "APIокен"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 msgid "API Type"
@@ -151,11 +150,11 @@ msgstr "API Тип"
 
 #: src/views/preference/Preference.vue:52
 msgid "App"
-msgstr ""
+msgstr "Додаток"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
-msgstr "Примінити"
+msgstr "Застосувати"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:67
 msgid "Apply bulk action successfully"
@@ -163,7 +162,7 @@ msgstr "Групову дію успішно застосовано"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr ""
+msgstr "\"Архітектура\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 msgid "Are you sure to delete this banned IP immediately?"
@@ -232,6 +231,8 @@ msgstr "Ви впевнені, що хочете видалити цю лока
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:144
 msgid "Are you sure you want to restart Nginx on the following sync nodes?"
 msgstr ""
+"Ви впевнені, що хочете перезавантажити Nginx на вказаних синхронізованих "
+"вузлах?"
 
 #: src/components/ChatGPT/ChatGPT.vue:318
 msgid "Ask ChatGPT for Help"
@@ -255,45 +256,45 @@ msgstr "Авторизація"
 
 #: src/components/TwoFA/Authorization.vue:109
 msgid "Authenticate with a passkey"
-msgstr ""
+msgstr "Автентифікація пасоком"
 
 #: src/views/preference/tabs/AuthSettings.vue:88
 msgid "Authentication Settings"
-msgstr ""
+msgstr "Налаштування аутентифікації"
 
 #: src/views/site/site_edit/components/ConfigTemplate/ConfigTemplate.vue:71
 #: src/views/site/site_edit/components/ConfigTemplate/ConfigTemplate.vue:97
 msgid "Author"
-msgstr ""
+msgstr "Автор"
 
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:31
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:43
 msgid "Auto"
-msgstr ""
+msgstr "Автоматичний"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "Auto = CPU ядра"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
-msgstr ""
+msgstr "Автоматичне оновлення"
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:78
 msgid "Auto-renewal disabled for %{name}"
-msgstr ""
+msgstr "Автоматичне відновлення вимкнено на %{name}"
 
 #: src/views/site/site_edit/components/Cert/ObtainCert.vue:71
 msgid "Auto-renewal enabled for %{name}"
-msgstr ""
+msgstr "Автоматичне відновлення увімкнено для %{name}"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"Автоматичний перезапуск\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"Автоматично проіндексовано з конфігурацій сайту та потоку.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -592,8 +593,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
@@ -622,8 +623,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
@@ -1896,8 +1897,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
@@ -2234,7 +2235,7 @@ msgstr ""
 
 #: src/layouts/HeaderLayout.vue:21
 msgid "Logout successful"
-msgstr ""
+msgstr "Вихід успішний"
 
 #: src/views/preference/Preference.vue:106
 msgid "Logrotate"
@@ -2242,12 +2243,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
@@ -2649,8 +2650,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
@@ -3022,8 +3023,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
@@ -3065,8 +3066,7 @@ 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:100
@@ -3690,14 +3690,14 @@ 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:64
@@ -3876,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
@@ -4029,7 +4029,8 @@ 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
@@ -4040,8 +4041,7 @@ 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
@@ -4138,8 +4138,7 @@ 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
@@ -4179,8 +4178,7 @@ 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
@@ -4224,8 +4222,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 ""
 
@@ -4472,8 +4470,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
@@ -4530,7 +4528,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "Робоча область"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -4556,8 +4554,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
@@ -4583,8 +4581,7 @@ 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

+ 76 - 87
app/src/language/vi_VN/app.po

@@ -5,17 +5,17 @@ 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"
 
 #: src/views/user/userColumns.tsx:32
 msgid "2FA"
-msgstr ""
+msgstr "2fa"
 
 #: src/views/preference/tabs/AuthSettings.vue:70
 msgid "2FA Settings"
-msgstr ""
+msgstr "Cài đặt 2FA"
 
 #: src/routes/modules/system.ts:45
 msgid "About"
@@ -55,11 +55,11 @@ msgstr "Hành động"
 #: src/composables/usePerformanceMetrics.ts:84
 #: src/views/dashboard/components/PerformanceTablesCard.vue:43
 msgid "Active connections"
-msgstr ""
+msgstr "Kết nối hoạt động"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr ""
+msgstr "Tỷ lệ công nhân thực tế so với cấu hình"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -74,7 +74,7 @@ msgstr "Thêm"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:45
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49
 msgid "Add a passkey"
-msgstr ""
+msgstr "Thêm khóa truy cập"
 
 #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171
 #: src/views/config/ConfigEditor.vue:244
@@ -117,33 +117,33 @@ msgstr "Nâng cao"
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:99
 msgid "Afterwards, refresh this page and click add passkey again."
-msgstr ""
+msgstr "Sau đó, làm mới trang này và nhấp vào thêm khóa truy cập một lần nữa."
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
 msgid "All"
-msgstr ""
+msgstr "Tất cả"
 
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr ""
+msgstr "Tất cả mã khôi phục đã được sử dụng"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
-msgstr ""
+msgstr "URL Cơ sở API"
 
 #: src/views/certificate/DNSChallenge.vue:83
 msgid "API Document"
-msgstr ""
+msgstr "Tài liệu API"
 
 #: src/views/preference/tabs/OpenAISettings.vue:46
 msgid "API Proxy"
-msgstr ""
+msgstr "API Proxy"
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr ""
+msgstr "Mã API"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 #, fuzzy
@@ -152,11 +152,11 @@ msgstr "Loại"
 
 #: src/views/preference/Preference.vue:52
 msgid "App"
-msgstr ""
+msgstr "Ứng dụng"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
-msgstr ""
+msgstr "Áp dụng"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:67
 #, fuzzy
@@ -165,7 +165,7 @@ msgstr "Nhân bản thành công"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr ""
+msgstr "\"Kiến trúc\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 #, fuzzy
@@ -258,11 +258,11 @@ msgstr "Trợ lý"
 
 #: src/components/SelfCheck/SelfCheck.vue:31
 msgid "Attempt to fix"
-msgstr ""
+msgstr "Cố gắng sửa chữa"
 
 #: src/views/preference/tabs/AuthSettings.vue:21
 msgid "Attempts"
-msgstr ""
+msgstr "Nỗ lực"
 
 #: src/views/preference/Preference.vue:82
 #, fuzzy
@@ -271,11 +271,11 @@ msgstr "Tác giả"
 
 #: src/components/TwoFA/Authorization.vue:109
 msgid "Authenticate with a passkey"
-msgstr ""
+msgstr "Xác thực với một cô ấy"
 
 #: src/views/preference/tabs/AuthSettings.vue:88
 msgid "Authentication Settings"
-msgstr ""
+msgstr "Cài đặt xác thực"
 
 #: src/views/site/site_edit/components/ConfigTemplate/ConfigTemplate.vue:71
 #: src/views/site/site_edit/components/ConfigTemplate/ConfigTemplate.vue:97
@@ -285,11 +285,11 @@ msgstr "Tác giả"
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:31
 #: src/views/dashboard/components/ParamsOpt/PerformanceConfig.vue:43
 msgid "Auto"
-msgstr ""
+msgstr "Tự động"
 
 #: src/views/dashboard/components/PerformanceTablesCard.vue:200
 msgid "auto = CPU cores"
-msgstr ""
+msgstr "auto = lõi cpu"
 
 #: src/views/nginx_log/NginxLog.vue:149
 msgid "Auto Refresh"
@@ -305,11 +305,11 @@ msgstr "Đã bật tự động gia hạn SSL cho %{name}"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr ""
+msgstr "\"Khởi động lại Tự động\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr ""
+msgstr "\"Được lập chỉ mục tự động từ cấu hình trang web và luồng.\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -634,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
@@ -664,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
@@ -2068,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
@@ -2440,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
@@ -2470,8 +2470,9 @@ 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
@@ -2879,8 +2880,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
@@ -3252,8 +3253,7 @@ 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"
@@ -3264,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
@@ -3289,16 +3289,14 @@ 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!"
@@ -3318,8 +3316,7 @@ 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:100
@@ -4009,14 +4006,14 @@ 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:64
@@ -4210,9 +4207,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
@@ -4381,7 +4378,8 @@ 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
@@ -4392,8 +4390,7 @@ 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
@@ -4433,8 +4430,7 @@ 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
@@ -4495,8 +4491,7 @@ 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
@@ -4536,8 +4531,7 @@ 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
@@ -4581,13 +4575,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
@@ -4846,8 +4840,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?"
@@ -4907,7 +4901,7 @@ msgstr ""
 #: src/layouts/HeaderLayout.vue:61 src/routes/index.ts:56
 #: src/views/workspace/WorkSpace.vue:52
 msgid "Workspace"
-msgstr ""
+msgstr "Không gian làm việc"
 
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
@@ -4933,8 +4927,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
@@ -4960,8 +4954,7 @@ 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
@@ -5047,14 +5040,11 @@ 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
@@ -5068,8 +5058,7 @@ 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

+ 111 - 176
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"
@@ -63,7 +63,7 @@ msgstr "活跃的连接"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr "实际 Worker 与配置比例"
+msgstr "实际工作进程与配置比例"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -78,7 +78,7 @@ msgstr "添加"
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:45
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:49
 msgid "Add a passkey"
-msgstr "添加 Passkey"
+msgstr "添加通行密钥"
 
 #: src/routes/modules/config.ts:20 src/views/config/ConfigEditor.vue:171
 #: src/views/config/ConfigEditor.vue:244
@@ -117,7 +117,7 @@ msgstr "高级模式"
 
 #: src/views/preference/components/AuthSettings/AddPasskey.vue:99
 msgid "Afterwards, refresh this page and click add passkey again."
-msgstr "然后,刷新此页面并再次点击添加 Passkey。"
+msgstr "之后,请刷新此页面并再次点击添加通行密钥。"
 
 #: src/components/EnvGroupTabs/EnvGroupTabs.vue:118
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:419
@@ -127,7 +127,7 @@ msgstr "全部"
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr "所有恢复码被使用"
+msgstr "所有恢复码已用"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
@@ -143,7 +143,7 @@ msgstr "API 代理"
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr "API Token"
+msgstr "API令牌"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 msgid "API Type"
@@ -151,7 +151,7 @@ msgstr "API 类型"
 
 #: src/views/preference/Preference.vue:52
 msgid "App"
-msgstr "App"
+msgstr "应用"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
@@ -163,7 +163,7 @@ msgstr "批量操作应用成功"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "架构"
+msgstr "\"架构\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 msgid "Are you sure to delete this banned IP immediately?"
@@ -287,11 +287,11 @@ msgstr "成功启用 %{name} 自动续签"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr "自动重启"
+msgstr "\"自动重启\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr "自动索引站点和 Stream 的配置文件。"
+msgstr "\"自动从站点和流配置中索引。\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -436,9 +436,7 @@ 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
@@ -589,20 +587,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 ""
-"检查 /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."
@@ -624,10 +619,9 @@ 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"
@@ -845,8 +839,7 @@ 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
@@ -1221,9 +1214,7 @@ 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
@@ -1900,18 +1891,15 @@ 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 ""
@@ -2101,8 +2089,7 @@ 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"
@@ -2251,17 +2238,16 @@ 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
@@ -2281,9 +2267,7 @@ 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
@@ -2664,8 +2648,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
@@ -2932,9 +2916,7 @@ 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"
@@ -3034,15 +3016,13 @@ 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
@@ -3084,8 +3064,7 @@ 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:100
@@ -3213,9 +3192,7 @@ 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"
@@ -3441,9 +3418,7 @@ 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
@@ -3713,19 +3688,19 @@ 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:64
 msgid "Setup your Nginx UI"
@@ -3903,9 +3878,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 编写配置文件"
@@ -4037,9 +4012,7 @@ 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}"
@@ -4061,7 +4034,8 @@ 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
@@ -4072,8 +4046,7 @@ 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
@@ -4105,9 +4078,7 @@ 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 ""
@@ -4142,9 +4113,7 @@ 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."
@@ -4174,8 +4143,7 @@ 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
@@ -4215,8 +4183,7 @@ 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
@@ -4233,8 +4200,7 @@ 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"
@@ -4248,28 +4214,25 @@ 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 ""
@@ -4277,8 +4240,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"
@@ -4504,9 +4467,7 @@ 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 ""
@@ -4516,10 +4477,9 @@ 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"
@@ -4538,18 +4498,14 @@ 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 ""
@@ -4605,10 +4561,9 @@ 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"
@@ -4633,8 +4588,7 @@ 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
@@ -4663,11 +4617,9 @@ 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"
@@ -4754,16 +4706,11 @@ 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}"
@@ -4771,12 +4718,9 @@ 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}"
@@ -4786,15 +4730,14 @@ 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"
@@ -4815,9 +4758,7 @@ 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 "服务器名称"
@@ -4894,9 +4835,8 @@ 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}"
@@ -4917,11 +4857,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正则表达式"
@@ -4939,11 +4879,9 @@ 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聊天"
@@ -4996,8 +4934,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 吗?"
@@ -5015,15 +4953,12 @@ 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"

+ 108 - 172
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"
@@ -67,7 +67,7 @@ msgstr "目前連線數"
 
 #: src/views/dashboard/components/ProcessDistributionCard.vue:48
 msgid "Actual worker to configured ratio"
-msgstr "實際 worker 與設定 worker 比例"
+msgstr "實際工作進程與配置比例"
 
 #: src/components/NgxConfigEditor/NgxServer.vue:112
 #: src/components/NgxConfigEditor/NgxUpstream.vue:155
@@ -121,7 +121,7 @@ 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
@@ -131,7 +131,7 @@ msgstr "全部"
 #: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
-msgstr "所有恢復碼使用完"
+msgstr "所有恢復碼已用完"
 
 #: src/views/preference/tabs/OpenAISettings.vue:32
 msgid "API Base Url"
@@ -147,7 +147,7 @@ msgstr "API 代理"
 
 #: src/views/preference/tabs/OpenAISettings.vue:58
 msgid "API Token"
-msgstr "API Token"
+msgstr "API令牌"
 
 #: src/views/preference/tabs/OpenAISettings.vue:67
 msgid "API Type"
@@ -155,11 +155,11 @@ msgstr "API 類型"
 
 #: src/views/preference/Preference.vue:52
 msgid "App"
-msgstr "應用程式"
+msgstr "應用"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:103
 msgid "Apply"
-msgstr "用"
+msgstr "用"
 
 #: src/components/StdDesign/StdDataDisplay/StdBulkActions.vue:67
 msgid "Apply bulk action successfully"
@@ -167,7 +167,7 @@ msgstr "批次操作成功應用"
 
 #: src/views/system/Upgrade.vue:176
 msgid "Arch"
-msgstr "架構"
+msgstr "\"架構\""
 
 #: src/views/preference/tabs/AuthSettings.vue:162
 msgid "Are you sure to delete this banned IP immediately?"
@@ -291,11 +291,11 @@ msgstr "已啟用 %{name} 的自動續簽"
 
 #: src/components/SystemRestore/SystemRestoreContent.vue:332
 msgid "Automatic Restart"
-msgstr "自動重新啟動"
+msgstr "\"自動重啟\""
 
 #: src/views/nginx_log/NginxLogList.vue:79
 msgid "Automatically indexed from site and stream configurations."
-msgstr "自動從網站和串流設定中索引。"
+msgstr "\"自動從站點和流配置中索引。\""
 
 #: src/views/certificate/components/CertificateEditor.vue:259
 #: src/views/config/ConfigEditor.vue:266 src/views/config/ConfigList.vue:112
@@ -440,9 +440,7 @@ 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
@@ -593,17 +591,15 @@ 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
@@ -622,16 +618,13 @@ 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"
@@ -851,8 +844,7 @@ 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
@@ -1228,9 +1220,7 @@ 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
@@ -1917,18 +1907,15 @@ 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 ""
@@ -2118,8 +2105,7 @@ 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"
@@ -2270,17 +2256,16 @@ 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
@@ -2300,8 +2285,7 @@ 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
@@ -2688,8 +2672,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
@@ -2957,8 +2941,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"
@@ -3058,15 +3042,13 @@ 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
@@ -3108,8 +3090,7 @@ 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:100
@@ -3237,8 +3218,7 @@ 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"
@@ -3465,9 +3445,7 @@ 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
@@ -3737,19 +3715,19 @@ 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:64
 msgid "Setup your Nginx UI"
@@ -3927,13 +3905,12 @@ 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
@@ -4062,9 +4039,7 @@ 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}"
@@ -4086,7 +4061,8 @@ 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
@@ -4097,8 +4073,7 @@ 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
@@ -4130,9 +4105,7 @@ 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 ""
@@ -4167,9 +4140,7 @@ 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."
@@ -4199,8 +4170,7 @@ 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
@@ -4240,8 +4210,7 @@ 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
@@ -4272,28 +4241,25 @@ 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 ""
@@ -4301,8 +4267,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"
@@ -4528,9 +4494,7 @@ 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 ""
@@ -4540,11 +4504,9 @@ 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"
@@ -4563,18 +4525,14 @@ 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 ""
@@ -4632,10 +4590,9 @@ 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"
@@ -4660,8 +4617,7 @@ 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
@@ -4690,11 +4646,9 @@ 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"
@@ -4753,17 +4707,11 @@ 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}"
@@ -4771,12 +4719,9 @@ 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}"
@@ -4786,15 +4731,14 @@ 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"
@@ -4812,9 +4756,7 @@ 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 "伺服器名稱"
@@ -4880,9 +4822,8 @@ 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}"
@@ -4906,11 +4847,9 @@ 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 聊天"
@@ -4957,8 +4896,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 嗎?"
@@ -4976,15 +4915,12 @@ 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"