Просмотр исходного кода

Merge pull request #970 from 0xJacky/feat/workspace

feat/workspace
Jacky 2 недель назад
Родитель
Сommit
b4228e19bb

+ 2 - 0
app/.eslint-auto-import.mjs

@@ -17,6 +17,8 @@ export default {
     "MaybeRefOrGetter": true,
     "PropType": true,
     "Ref": true,
+    "Slot": true,
+    "Slots": true,
     "VNode": true,
     "WritableComputedRef": true,
     "acceptHMRUpdate": true,

+ 1 - 1
app/auto-imports.d.ts

@@ -87,7 +87,7 @@ declare global {
 // for type re-export
 declare global {
   // @ts-ignore
-  export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
+  export type { Component, Slot, Slots, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
   import('vue')
 }
 

+ 7 - 0
app/env.d.ts

@@ -1,3 +1,10 @@
+/// <reference types="vite/client" />
+
+// Extend Window interface
+interface Window {
+  inWorkspace?: boolean
+}
+
 declare module '*.svg' {
   import type React from 'react'
 

+ 1 - 1
app/index.html

@@ -14,7 +14,7 @@
       color: #fff;
     }
     #app {
-      height: 100%;
+      height: 100vh;
     }
 	</style>
 	<title>Nginx UI</title>

+ 7 - 6
app/package.json

@@ -2,14 +2,14 @@
   "name": "nginx-ui-app-next",
   "type": "module",
   "version": "2.0.0-rc.5",
-  "packageManager": "pnpm@10.8.1+sha512.c50088ba998c67b8ca8c99df8a5e02fd2ae2e2b29aaf238feaa9e124248d3f48f9fb6db2424949ff901cffbb5e0f0cc1ad6aedb602cd29450751d11c35023677",
+  "packageManager": "pnpm@10.7.0+sha512.6b865ad4b62a1d9842b61d674a393903b871d9244954f652b8842c2b553c72176b278f64c463e52d40fff8aba385c235c8c9ecf5cc7de4fd78b8bb6d49633ab6",
   "scripts": {
     "dev": "vite --host",
     "typecheck": "vue-tsc --noEmit",
     "lint": "eslint .",
     "lint:fix": "eslint --fix .",
     "build": "vite build",
-    "preview": "vite preview --host",
+    "preview": "vite preview",
     "gettext:extract": "vue-gettext-extract"
   },
   "dependencies": {
@@ -25,7 +25,6 @@
     "@xterm/addon-attach": "^0.11.0",
     "@xterm/addon-fit": "^0.10.0",
     "@xterm/xterm": "^5.5.0",
-    "ace-builds": "^1.40.0",
     "ant-design-vue": "^4.2.6",
     "apexcharts": "^4.5.0",
     "axios": "^1.8.4",
@@ -40,6 +39,7 @@
     "pinia-plugin-persistedstate": "^4.2.0",
     "reconnecting-websocket": "^4.4.0",
     "sortablejs": "^1.15.6",
+    "splitpanes": "^4.0.3",
     "sse.js": "^2.6.0",
     "universal-cookie": "^8.0.1",
     "unocss": "^66.0.0",
@@ -69,16 +69,17 @@
     "@vitejs/plugin-vue-jsx": "^4.1.2",
     "@vue/compiler-sfc": "^3.5.13",
     "@vue/tsconfig": "^0.7.0",
+    "ace-builds": "^1.40.0",
     "autoprefixer": "^10.4.21",
-    "eslint": "9.24.0",
+    "eslint": "9.23.0",
     "eslint-plugin-sonarjs": "^3.0.2",
     "less": "^4.3.0",
     "postcss": "^8.5.3",
-    "typescript": "5.8.3",
+    "typescript": "5.8.2",
     "unplugin-auto-import": "^19.1.2",
     "unplugin-vue-components": "^28.5.0",
     "unplugin-vue-define-options": "^1.5.5",
-    "vite": "^6.3.0",
+    "vite": "^6.3.2",
     "vite-svg-loader": "^5.1.0",
     "vue-tsc": "^2.2.8"
   }

Разница между файлами не показана из-за своего большого размера
+ 244 - 249
app/pnpm-lock.yaml


+ 9 - 0
app/src/App.vue

@@ -9,6 +9,7 @@ import zh_TW from 'ant-design-vue/es/locale/zh_TW'
 // This starter template is using Vue 3 <script setup> SFCs
 // Check out https://vuejs.org/api/sfc-script-setup.html#script-setup
 import { computed, provide } from 'vue'
+import router from './routes'
 
 const route = useRoute()
 
@@ -52,6 +53,14 @@ const settings = useSettingsStore()
 const is_theme_dark = computed(() => settings.theme === 'dark')
 
 loadTranslations(route)
+
+watch(route, () => {
+  settings.route_path = route.path
+})
+
+onMounted(() => {
+  router.push(settings.route_path)
+})
 </script>
 
 <template>

+ 4 - 0
app/src/global.d.ts

@@ -0,0 +1,4 @@
+// This file is used to extend global interfaces
+declare interface Window {
+  inWorkspace?: boolean
+}

+ 98 - 86
app/src/language/ar/app.po

@@ -122,7 +122,7 @@ msgstr "بعد ذلك، قم بتحديث هذه الصفحة وانقر فوق
 msgid "All"
 msgstr "الكل"
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -491,18 +491,18 @@ msgstr "شهادة"
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "نماذج التكوين"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -511,19 +511,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "خطأ في مزامنة الشهادة"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "نماذج التكوين"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "قائمة الشهادات"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "خطأ في مزامنة الشهادة"
@@ -687,6 +687,11 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+#, fuzzy
+msgid "Code completion is not enabled"
+msgstr "TOTP معطل للحساب الحالي."
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -951,30 +956,30 @@ msgstr "تجديد الشهادة"
 msgid "Delete Permanently"
 msgstr "حذف نهائي"
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr "خطأ حذف الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr "نجح حذف الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "خطأ حذف الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "نجح حذف الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
@@ -983,12 +988,12 @@ msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
 msgid "Delete site: %{site_name}"
 msgstr "حذف الموقع: ‎%{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
@@ -1018,6 +1023,10 @@ msgstr "وصف"
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "تفاصيل"
@@ -1072,60 +1081,60 @@ msgstr "تعطيل"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "فشل تعطيل التجديد التلقائي لـ {name}%"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
@@ -1321,60 +1330,60 @@ msgstr "تفعيل TOTP"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "نجح تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr "نجح تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "نجح تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
@@ -3114,7 +3123,7 @@ msgstr ""
 "يرجى أولاً إضافة بيانات الاعتماد في الشهادات > بيانات اعتماد DNS، ثم اختيار "
 "أحد بيانات الاعتماد أدناه لطلب API لمزود DNS."
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3358,22 +3367,22 @@ msgstr "إعادة تحميل"
 msgid "Reload Nginx"
 msgstr "إعادة تحميل nginx"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "خطأ في إزالة الموقع %{site} من %{node}، الاستجابة: %{resp}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "تمت ترقية Nginx UI على %{node} بنجاح 🎉"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
@@ -3412,59 +3421,59 @@ msgstr "تمت الإزالة بنجاح"
 msgid "Rename"
 msgstr "إعادة تسمية"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "تم إعادة تسمية %{orig_path} إلى %{new_path} على %{env_name} بنجاح"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "تم إعادة تسمية %{orig_path} إلى %{new_path} على %{env_name} بنجاح"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "خطأ في إعادة تسمية التكوين البعيد"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "إعادة تسمية تكوين البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
@@ -3545,22 +3554,22 @@ msgstr "إعادة تشغيل"
 msgid "Restart Nginx"
 msgstr "إعادة التشغيل"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "خطأ في تفعيل الموقع %{site} على %{node}، الاستجابة: %{resp}"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "تمت ترقية Nginx UI على %{node} بنجاح 🎉"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
@@ -3666,40 +3675,42 @@ msgstr "حفظ التوجيه"
 msgid "Save error %{msg}"
 msgstr "خطأ في الحفظ %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr "خطأ في حفظ الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr "حفظ الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "خطأ في حفظ الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "حفظ الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
@@ -4044,42 +4055,38 @@ msgstr "مزامنة"
 msgid "Sync Certificate"
 msgstr "مزامنة الشهادة"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "نجح مزامنة الشهادة %{cert_name} إلى %{env_name}"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "نجح مزامنة الشهادة %{cert_name} إلى %{env_name}"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "خطأ في مزامنة الشهادة"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "تمت مزامنة الشهادة بنجاح"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "تمت مزامنة التكوين %{config_name} إلى %{env_name} بنجاح"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "تمت مزامنة التكوين %{config_name} إلى %{env_name} بنجاح"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "خطأ في تزامن التكوين"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "تمت مزامنة التكوين بنجاح"
 
@@ -4721,6 +4728,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 98 - 86
app/src/language/de_DE/app.po

@@ -125,7 +125,7 @@ msgstr ""
 msgid "All"
 msgstr "Alle"
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -509,18 +509,18 @@ msgstr "Zertifikat"
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "Konfigurationen"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -529,19 +529,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "Konfigurationen"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "Certificate has expired"
@@ -705,6 +705,11 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+#, fuzzy
+msgid "Code completion is not enabled"
+msgstr "Aktuelles Konto ist nicht TOTP aktiviert."
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -976,32 +981,32 @@ msgstr "Zertifikat ist gültig"
 msgid "Delete Permanently"
 msgstr "Permanent löschen"
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -1010,12 +1015,12 @@ msgstr "Speichern erfolgreich"
 msgid "Delete site: %{site_name}"
 msgstr "Seite löschen: %{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -1046,6 +1051,10 @@ msgstr "Beschreibung"
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "Details"
@@ -1101,62 +1110,62 @@ msgstr "Deaktiviert"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Automatische Verlängerung deaktiviert für %{name}"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -1363,62 +1372,62 @@ msgstr "Aktiviere TLS"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
@@ -3203,7 +3212,7 @@ msgstr ""
 "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:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3462,22 +3471,22 @@ msgstr "Neu laden"
 msgid "Reload Nginx"
 msgstr "Lade Nginx neu"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Zertifikat ist gültig"
@@ -3519,64 +3528,64 @@ msgstr "Speichern erfolgreich"
 msgid "Rename"
 msgstr "Benuztername"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -3663,22 +3672,22 @@ msgstr "Neustart"
 msgid "Restart Nginx"
 msgstr "Starte neu"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Erfolgreich gespeichert"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Zertifikat ist gültig"
@@ -3785,42 +3794,44 @@ msgstr "Anweisung speichern"
 msgid "Save error %{msg}"
 msgstr "Fehler beim Speichern %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -4171,46 +4182,42 @@ msgstr "Synchronisieren"
 msgid "Sync Certificate"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Zertifikat ist gültig"
@@ -4866,6 +4873,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 97 - 86
app/src/language/en/app.po

@@ -124,7 +124,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -502,18 +502,18 @@ msgstr ""
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "Configurations"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -522,19 +522,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "Configurations"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "Certificate has expired"
@@ -698,6 +698,10 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+msgid "Code completion is not enabled"
+msgstr ""
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -966,32 +970,32 @@ msgstr "Certificate is valid"
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Saved successfully"
@@ -1000,12 +1004,12 @@ msgstr "Saved successfully"
 msgid "Delete site: %{site_name}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Saved successfully"
@@ -1036,6 +1040,10 @@ msgstr ""
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr ""
@@ -1091,62 +1099,62 @@ msgstr "Disabled"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Disable auto-renewal failed for %{name}"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Saved successfully"
@@ -1348,62 +1356,62 @@ msgstr "Enable TLS"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Saved successfully"
@@ -3155,7 +3163,7 @@ msgid ""
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3405,22 +3413,22 @@ msgstr ""
 msgid "Reload Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Certificate is valid"
@@ -3462,64 +3470,64 @@ msgstr "Saved successfully"
 msgid "Rename"
 msgstr "Username"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Saved successfully"
@@ -3605,22 +3613,22 @@ msgstr ""
 msgid "Restart Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Certificate is valid"
@@ -3727,42 +3735,44 @@ msgstr "Save Directive"
 msgid "Save error %{msg}"
 msgstr "Save error %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Saved successfully"
@@ -4115,46 +4125,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Certificate is valid"
@@ -4774,6 +4780,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 98 - 86
app/src/language/es/app.po

@@ -127,7 +127,7 @@ msgstr ""
 msgid "All"
 msgstr "Todo"
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -498,18 +498,18 @@ msgstr "Certificado"
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "Plantillas de configuración"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -518,19 +518,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "Error de Certificado de Sincronización"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "Plantillas de configuración"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "Lista de Certificados"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "El certificado expiró"
@@ -686,6 +686,11 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+#, fuzzy
+msgid "Code completion is not enabled"
+msgstr "La cuenta actual no tiene habilitada TOTP."
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -952,30 +957,30 @@ msgstr "Renovar Certificado"
 msgid "Delete Permanently"
 msgstr "Eliminar Permanentemente"
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr "Error al eliminar sitio remoto"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr "Borrado del sitio remoto correcto"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Error al eliminar sitio remoto"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Borrado del sitio remoto correcto"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
@@ -984,12 +989,12 @@ msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 msgid "Delete site: %{site_name}"
 msgstr "Eliminar sitio: %{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
@@ -1019,6 +1024,10 @@ msgstr "Descripción"
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "Detalles"
@@ -1073,60 +1082,60 @@ msgstr "Desactivar"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "No se pudo desactivar la renovación automática por %{name}"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr "Error al deshabilitar el sitio remoto"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Error al deshabilitar el sitio remoto"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Error al deshabilitar el sitio remoto"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
@@ -1321,62 +1330,62 @@ msgstr "Habilitar TLS"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
@@ -3128,7 +3137,7 @@ msgstr ""
 "luego seleccione una de las credenciales de aquí debajo para llamar a la API "
 "del proveedor de DNS."
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3383,22 +3392,22 @@ msgstr "Recargar"
 msgid "Reload Nginx"
 msgstr "Recargando Nginx"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Eliminar sitio: %{site_name}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Interfaz de usuario de Nginx actualizada en %{node} con éxito 🎉"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Renombrar Configuración Remota Exitosa"
@@ -3437,61 +3446,61 @@ msgstr "Eliminado con éxito"
 msgid "Rename"
 msgstr "Renombrar"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
@@ -3573,22 +3582,22 @@ msgstr "Reiniciar"
 msgid "Restart Nginx"
 msgstr "Reiniciando"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Interfaz de usuario de Nginx actualizada en %{node} con éxito 🎉"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Renombrar Configuración Remota Exitosa"
@@ -3694,42 +3703,44 @@ msgstr "Guardar Directiva"
 msgid "Save error %{msg}"
 msgstr "Error al guardar %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
@@ -4073,42 +4084,38 @@ msgstr "Sincronizar"
 msgid "Sync Certificate"
 msgstr "Sincronizar Certificado"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Sincronización del Certificado %{cert_name} a %{env_name} exitosa"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Sincronización del Certificado %{cert_name} a %{env_name} exitosa"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "Error de Certificado de Sincronización"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "Sincronización del Certificado exitosa"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Sincronizar configuración %{config_name} con %{env_name} exitosamente"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Sincronizar configuración %{config_name} con %{env_name} exitosamente"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "Error de Configuración de Sincronización"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "Configuración de sincronización exitosa"
 
@@ -4767,6 +4774,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 99 - 86
app/src/language/fr_FR/app.po

@@ -129,7 +129,7 @@ msgstr ""
 msgid "All"
 msgstr "Tous"
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "Tous les codes de récupération ont été utilisés"
@@ -512,18 +512,18 @@ msgstr "Auto Cert"
 msgid "Cert path is not under the nginx conf dir"
 msgstr "Le chemin du certificat n'est pas dans le dossier conf de nginx"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "Modèles de configuration"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -532,19 +532,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "Modèles de configuration"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "Liste des certifications"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "Le certificat a expiré"
@@ -712,6 +712,11 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+#, fuzzy
+msgid "Code completion is not enabled"
+msgstr "Le compte actuel n'a pas le TOTP d'activé."
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -982,32 +987,32 @@ msgstr "Changer de certificat"
 msgid "Delete Permanently"
 msgstr "Supprimer définitivement"
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -1016,12 +1021,12 @@ msgstr "Dupliqué avec succès"
 msgid "Delete site: %{site_name}"
 msgstr "Supprimer le site : %{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -1053,6 +1058,11 @@ msgstr "Description"
 msgid "Destination file already exists"
 msgstr "Le fichier de destination existe déjà"
 
+#: src/constants/errors/config.ts:3
+#, fuzzy
+msgid "Destination file: {0} already exists"
+msgstr "Le fichier de destination existe déjà"
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "Détails"
@@ -1109,62 +1119,62 @@ msgstr "Désactivé"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "La désactivation du renouvellement automatique a échoué pour %{name}"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -1370,62 +1380,62 @@ msgstr "Activer TLS"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -3199,7 +3209,7 @@ msgstr ""
 "des informations d'identification ci-dessous pour demander l'API du "
 "fournisseur DNS."
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3455,22 +3465,22 @@ msgstr "Recharger"
 msgid "Reload Nginx"
 msgstr "Rechargement de nginx"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Supprimer le site : %{site_name}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Mise à niveau réussie"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Changer de certificat"
@@ -3512,64 +3522,64 @@ msgstr "Enregistré avec succès"
 msgid "Rename"
 msgstr "Nom d'utilisateur"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -3657,22 +3667,22 @@ msgstr "Redémarrer"
 msgid "Restart Nginx"
 msgstr "Redémarrage"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Mise à niveau réussie"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Changer de certificat"
@@ -3778,42 +3788,44 @@ msgstr "Enregistrer la directive"
 msgid "Save error %{msg}"
 msgstr "Enregistrer l'erreur %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -4164,46 +4176,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Changer de certificat"
@@ -4830,6 +4838,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 97 - 86
app/src/language/ko_KR/app.po

@@ -123,7 +123,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -486,18 +486,18 @@ msgstr "자동 인증"
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "구성 템플릿"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -506,19 +506,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "구성 템플릿"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "인증서 목록"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "인증서가 만료되었습니다"
@@ -676,6 +676,10 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+msgid "Code completion is not enabled"
+msgstr ""
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -941,32 +945,32 @@ msgstr "인증서 갱신"
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -975,12 +979,12 @@ msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgid "Delete site: %{site_name}"
 msgstr "사이트 삭제: %{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -1010,6 +1014,10 @@ msgstr "설명"
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "세부 사항"
@@ -1064,62 +1072,62 @@ msgstr "비활성화"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "%{name}의 자동 갱신 비활성화 실패"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
@@ -1312,62 +1320,62 @@ msgstr "TLS 활성화"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
@@ -3118,7 +3126,7 @@ msgstr ""
 "먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청"
 "하려면 아래 자격 증명 중 하나를 선택해주세요."
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3375,22 +3383,22 @@ msgstr "리로드"
 msgid "Reload Nginx"
 msgstr "Nginx 리로딩 중"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "사이트 삭제: %{site_name}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "성공적으로 저장되었습니다"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "인증서 갱신 성공"
@@ -3432,64 +3440,64 @@ msgstr "성공적으로 제거됨"
 msgid "Rename"
 msgstr "이름 변경"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -3577,22 +3585,22 @@ msgstr "재시작"
 msgid "Restart Nginx"
 msgstr "재시작 중"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "성공적으로 저장되었습니다"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "인증서 갱신 성공"
@@ -3699,42 +3707,44 @@ msgstr "지시문 저장"
 msgid "Save error %{msg}"
 msgstr "저장 오류 %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -4081,46 +4091,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr "인증서 갱신"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "인증서 갱신 성공"
@@ -4747,6 +4753,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 94 - 80
app/src/language/messages.pot

@@ -115,7 +115,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -468,17 +468,17 @@ msgstr ""
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 msgid "Certificate %{name} has expired"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -486,17 +486,17 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 msgid "Certificate Expiration Notice"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 msgid "Certificate Expired"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 msgid "Certificate Expiring Soon"
 msgstr ""
 
@@ -641,6 +641,10 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+msgid "Code completion is not enabled"
+msgstr ""
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -893,29 +897,29 @@ msgstr ""
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:69
 #: src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:73
 #: src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 msgid "Delete Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 msgid "Delete Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 msgid "Delete site %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 msgid "Delete site %{name} from %{node} successfully"
 msgstr ""
 
@@ -923,11 +927,11 @@ msgstr ""
 msgid "Delete site: %{site_name}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 msgid "Delete stream %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr ""
 
@@ -957,6 +961,10 @@ msgstr ""
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr ""
@@ -1009,53 +1017,53 @@ msgstr ""
 msgid "Disable auto-renewal failed for %{name}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:77
 #: src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 msgid "Disable Remote Site Maintenance Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 msgid "Disable Remote Site Maintenance Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:81
 #: src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 msgid "Disable Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 msgid "Disable Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 msgid "Disable site %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 msgid "Disable site %{name} from %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 msgid "Disable stream %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr ""
 
@@ -1240,53 +1248,53 @@ msgstr ""
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25
+#: src/components/Notification/notifications.ts:85
 #: src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 msgid "Enable Remote Site Maintenance Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 msgid "Enable Remote Site Maintenance Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:29
+#: src/components/Notification/notifications.ts:89
 #: src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 msgid "Enable Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 msgid "Enable Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 msgid "Enable site %{name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 msgid "Enable site %{name} on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 msgid "Enable stream %{name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr ""
 
@@ -2885,7 +2893,7 @@ 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 ""
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid "Please generate new recovery codes in the preferences immediately to prevent lockout."
 msgstr ""
@@ -3114,19 +3122,19 @@ msgstr ""
 msgid "Reload Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 msgid "Reload Nginx on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 msgid "Reload Remote Nginx Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 msgid "Reload Remote Nginx Success"
 msgstr ""
 
@@ -3164,55 +3172,55 @@ msgstr ""
 msgid "Rename"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:171
+#: src/components/Notification/notifications.ts:61
 #: src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:175
+#: src/components/Notification/notifications.ts:65
 #: src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:49
+#: src/components/Notification/notifications.ts:109
 #: src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:53
+#: src/components/Notification/notifications.ts:113
 #: src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 msgid "Rename Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 msgid "Rename Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 
@@ -3287,19 +3295,19 @@ msgstr ""
 msgid "Restart Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 msgid "Restart Nginx on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 msgid "Restart Remote Nginx Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 msgid "Restart Remote Nginx Success"
 msgstr ""
 
@@ -3396,37 +3404,37 @@ msgstr ""
 msgid "Save error %{msg}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:57
+#: src/components/Notification/notifications.ts:117
 #: src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:61
+#: src/components/Notification/notifications.ts:121
 #: src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 msgid "Save Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 msgid "Save Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 msgid "Save site %{name} to %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 msgid "Save site %{name} to %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 msgid "Save stream %{name} to %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 msgid "Save stream %{name} to %{node} successfully"
 msgstr ""
 
@@ -3743,38 +3751,38 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:153
+#: src/components/Notification/notifications.ts:45
 #: src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:157
+#: src/components/Notification/notifications.ts:49
 #: src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:163
+#: src/components/Notification/notifications.ts:53
 #: src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:167
+#: src/components/Notification/notifications.ts:57
 #: src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr ""
@@ -4304,6 +4312,12 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40
+#: src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 98 - 86
app/src/language/ru_RU/app.po

@@ -125,7 +125,7 @@ msgstr "Затем, обновите эту страницу и снова на
 msgid "All"
 msgstr "Все"
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "Все коды восстановления были использованы"
@@ -489,18 +489,18 @@ msgstr "Авто Сертификат"
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "Шаблоны конфигурации"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -508,19 +508,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "Ошибка декодирования сертификата"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "Шаблоны конфигурации"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "Список сертификатов"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "Ошибка анализа сертификата"
@@ -674,6 +674,11 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+#, fuzzy
+msgid "Code completion is not enabled"
+msgstr "Для текущей учетной записи TOTP не включен."
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -937,32 +942,32 @@ msgstr "Обновить сертификат"
 msgid "Delete Permanently"
 msgstr "Удалить навсегда"
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Сайт %{name} успешно удалён с %{node}"
 
@@ -970,12 +975,12 @@ msgstr "Сайт %{name} успешно удалён с %{node}"
 msgid "Delete site: %{site_name}"
 msgstr "Удалить сайт: %{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Поток %{name} успешно удалён с %{node}"
 
@@ -1004,6 +1009,10 @@ msgstr "Описание"
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "Детали"
@@ -1058,62 +1067,62 @@ msgstr "Отключить"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Не удалось отключить автоматическое продление для %{name}"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
@@ -1308,61 +1317,61 @@ msgstr "Включить TOTP"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Сайт %{name} успешно включён на %{node}"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Сайт %{name} успешно включён на %{node}"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Поток %{name} успешно включён на %{node}"
 
@@ -3098,7 +3107,7 @@ msgstr ""
 "Credentials, а затем выберите одну из учетных данных ниже, чтобы запросить "
 "API провайдера DNS."
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3352,22 +3361,22 @@ msgstr "Перегрузить"
 msgid "Reload Nginx"
 msgstr "Перезагружается nginx"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Удалить сайт: %{site_name}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Интерфейс Nginx на %{node} успешно обновлен 🎉"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
@@ -3406,60 +3415,60 @@ msgstr "Успешно удалено"
 msgid "Rename"
 msgstr "Переименовать"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "%{orig_path} успешно переименован в %{new_path} на %{env_name}"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Сайт %{name} успешно переименован в %{new_name} на %{node}"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Поток %{name} успешно переименован в %{new_name} на %{node}"
 
@@ -3540,22 +3549,22 @@ msgstr "Перезапуск"
 msgid "Restart Nginx"
 msgstr "Перезапускается"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Интерфейс Nginx на %{node} успешно обновлен 🎉"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
@@ -3661,41 +3670,43 @@ msgstr "Сохранить директиву"
 msgid "Save error %{msg}"
 msgstr "Ошибка сохранения %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Продублированно %{conf_name} в %{node_name}"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Сайт %{name} успешно сохранён на %{node}"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Поток %{name} успешно сохранён на %{node}"
 
@@ -4037,42 +4048,38 @@ msgstr "Синхронизация"
 msgid "Sync Certificate"
 msgstr "Синхронизировать сертификат"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Сертификат %{cert_name} успешно синхронизирован с %{env_name}"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Сертификат %{cert_name} успешно синхронизирован с %{env_name}"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "Ошибка синхронизации сертификата"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "Сертификат успешно синхронизирован"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Конфигурация синхронизирована %{config_name} с %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Конфигурация синхронизирована %{config_name} с %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "Ошибка синхронизации конфигурации"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "Синхронизация конфигурации успешна"
 
@@ -4713,6 +4720,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 98 - 86
app/src/language/tr_TR/app.po

@@ -123,7 +123,7 @@ msgstr ""
 msgid "All"
 msgstr "Hepsi"
 
-#: src/components/Notification/notifications.ts:109
+#: 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"
@@ -487,18 +487,18 @@ msgstr ""
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "Yapılandırma Şablonları"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -507,19 +507,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "Senkronizasyon Sertifikası Hatası"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "Yapılandırma Şablonları"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "Sertifika Listesi"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "Senkronizasyon Sertifikası Hatası"
@@ -675,6 +675,11 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+#, fuzzy
+msgid "Code completion is not enabled"
+msgstr "Mevcut hesap için TOTP etkin değil."
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -940,33 +945,33 @@ msgstr "Sertifika Yenileme"
 msgid "Delete Permanently"
 msgstr "Kalıcı Olarak Sil"
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:10
+#: 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"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
@@ -975,13 +980,13 @@ msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 msgid "Delete site: %{site_name}"
 msgstr "Siteyi sil: %{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: 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"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
@@ -1011,6 +1016,10 @@ msgstr "Açıklama"
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "Detaylar"
@@ -1065,72 +1074,72 @@ msgstr "Devre Dışı"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "%{name} için otomatik yenilemeyi devre dışı bırakma başarısız oldu"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, 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"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr ""
@@ -1327,72 +1336,72 @@ msgstr "TOTP'yi Etkinleştir"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, 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"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, 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"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, 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"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr ""
@@ -3209,7 +3218,7 @@ msgstr ""
 "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:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3494,22 +3503,22 @@ msgstr "Tekrar yükle"
 msgid "Reload Nginx"
 msgstr "Nginx'i yeniden yükleme"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Siteyi sil: %{site_name}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Nginx kullanıcı arayüzü %{node} üzerinde başarıyla yükseltildi 🎉"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
@@ -3554,69 +3563,69 @@ msgstr "Başarıyla kaldırıldı"
 msgid "Rename"
 msgstr "Yeniden Adlandır"
 
-#: src/components/Notification/notifications.ts:172
+#: 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"
 
-#: src/components/Notification/notifications.ts:176
+#: 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"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:50
+#: 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"
 
-#: src/components/Notification/notifications.ts:54
+#: 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"
 
-#: src/components/Notification/notifications.ts:92
+#: 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"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr ""
@@ -3708,24 +3717,24 @@ msgstr "Yeniden başlat"
 msgid "Restart Nginx"
 msgstr "Yeniden Başlatma"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Nginx kullanıcı arayüzü %{node} üzerinde başarıyla yükseltildi 🎉"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
@@ -3837,43 +3846,45 @@ msgstr "Direktifi Kaydet"
 msgid "Save error %{msg}"
 msgstr "Hatayı kaydet %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 
-#: src/components/Notification/notifications.ts:100
+#: 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"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
@@ -4248,46 +4259,42 @@ msgstr "Eşitle"
 msgid "Sync Certificate"
 msgstr "Senkronizasyon Sertifikası"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Sertifika %{cert_name}'ı %{env_name} ile başarıyla senkronize edin"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Sertifika %{cert_name}'ı %{env_name} ile başarıyla senkronize edin"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Senkronizasyon Sertifikası Hatası"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Senkronizasyon Sertifikası Başarısı"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Config %{config_name} ile %{env_name}'i başarıyla senkronize edin"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Config %{config_name} ile %{env_name}'i başarıyla senkronize edin"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Senkronizasyon Yapılandırma Hatası"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Senkronizasyon Yapılandırması Başarılı"
@@ -4990,6 +4997,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 #, fuzzy

+ 97 - 86
app/src/language/uk_UA/app.po

@@ -123,7 +123,7 @@ msgstr ""
 msgid "All"
 msgstr "Все"
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "Усі коди відновлення використано"
@@ -478,17 +478,17 @@ msgstr ""
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 msgid "Certificate %{name} has expired"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -496,17 +496,17 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 msgid "Certificate Expiration Notice"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 msgid "Certificate Expired"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 msgid "Certificate Expiring Soon"
 msgstr ""
 
@@ -659,6 +659,10 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+msgid "Code completion is not enabled"
+msgstr ""
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -912,27 +916,27 @@ msgstr ""
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 msgid "Delete Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 msgid "Delete Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 msgid "Delete site %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 msgid "Delete site %{name} from %{node} successfully"
 msgstr ""
 
@@ -940,11 +944,11 @@ msgstr ""
 msgid "Delete site: %{site_name}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 msgid "Delete stream %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr ""
 
@@ -973,6 +977,10 @@ msgstr ""
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr ""
@@ -1025,51 +1033,51 @@ msgstr ""
 msgid "Disable auto-renewal failed for %{name}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 msgid "Disable Remote Site Maintenance Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 msgid "Disable Remote Site Maintenance Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 msgid "Disable Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 msgid "Disable Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 msgid "Disable site %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 msgid "Disable site %{name} from %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 msgid "Disable stream %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr ""
 
@@ -1254,51 +1262,51 @@ msgstr ""
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 msgid "Enable Remote Site Maintenance Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 msgid "Enable Remote Site Maintenance Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 msgid "Enable Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 msgid "Enable Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 msgid "Enable site %{name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 msgid "Enable site %{name} on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 msgid "Enable stream %{name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr ""
 
@@ -2915,7 +2923,7 @@ msgid ""
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3151,19 +3159,19 @@ msgstr ""
 msgid "Reload Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 msgid "Reload Nginx on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 msgid "Reload Remote Nginx Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 msgid "Reload Remote Nginx Success"
 msgstr ""
 
@@ -3201,53 +3209,53 @@ msgstr ""
 msgid "Rename"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 msgid "Rename Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 msgid "Rename Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 
@@ -3325,19 +3333,19 @@ msgstr ""
 msgid "Restart Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 msgid "Restart Nginx on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 msgid "Restart Remote Nginx Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 msgid "Restart Remote Nginx Success"
 msgstr ""
 
@@ -3436,35 +3444,37 @@ msgstr ""
 msgid "Save error %{msg}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 msgid "Save Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 msgid "Save Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 msgid "Save site %{name} to %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 msgid "Save site %{name} to %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 msgid "Save stream %{name} to %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 msgid "Save stream %{name} to %{node} successfully"
 msgstr ""
 
@@ -3786,39 +3796,35 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr ""
 
@@ -4407,6 +4413,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 97 - 86
app/src/language/vi_VN/app.po

@@ -123,7 +123,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -505,18 +505,18 @@ msgstr "Tự động ký chứng chỉ SSL"
 msgid "Cert path is not under the nginx conf dir"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 #, fuzzy
 msgid "Certificate %{name} has expired"
 msgstr "Mẫu Cấu hình"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr ""
 
@@ -525,19 +525,19 @@ msgstr ""
 msgid "Certificate decode error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 #, fuzzy
 msgid "Certificate Expiration Notice"
 msgstr "Mẫu Cấu hình"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 #, fuzzy
 msgid "Certificate Expired"
 msgstr "Danh sách chứng chỉ"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 #, fuzzy
 msgid "Certificate Expiring Soon"
 msgstr "Chứng chỉ đã hết hạn"
@@ -701,6 +701,10 @@ msgstr ""
 msgid "Close"
 msgstr ""
 
+#: src/constants/errors/llm.ts:2
+msgid "Code completion is not enabled"
+msgstr ""
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -969,32 +973,32 @@ msgstr "Gia hạn chứng chỉ SSL"
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -1003,12 +1007,12 @@ msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 msgid "Delete site: %{site_name}"
 msgstr "Xoá trang web: %{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -1040,6 +1044,10 @@ msgstr "Mô tả"
 msgid "Destination file already exists"
 msgstr ""
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr ""
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "Chi tiết"
@@ -1095,62 +1103,62 @@ msgstr "Tắt"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Tắt tự động gia hạn SSL cho %{name} thất bại"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
@@ -1352,62 +1360,62 @@ msgstr "Bật TLS"
 msgid "Enable Proxy Cache"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
@@ -3151,7 +3159,7 @@ 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"
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3405,22 +3413,22 @@ msgstr "Tải lại"
 msgid "Reload Nginx"
 msgstr "Tải lại nginx"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Xoá trang web: %{site_name}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Cập nhật thành công"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
@@ -3462,64 +3470,64 @@ msgstr "Xoá thành công"
 msgid "Rename"
 msgstr "Username"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -3607,22 +3615,22 @@ msgstr "Khởi động lại"
 msgid "Restart Nginx"
 msgstr "Đang khởi động lại"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Cập nhật thành công"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
@@ -3729,42 +3737,44 @@ msgstr "Lưu Directive"
 msgid "Save error %{msg}"
 msgstr "Đã xảy ra lỗi khi lưu %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -4108,46 +4118,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr "Gia hạn chứng chỉ SSL"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
@@ -4770,6 +4776,11 @@ msgstr ""
 msgid "Workers"
 msgstr ""
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr ""
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

+ 108 - 97
app/src/language/zh_CN/app.po

@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2025-04-16 16:16+0800\n"
+"PO-Revision-Date: 2025-04-18 14:05+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"
@@ -123,7 +123,7 @@ msgstr "然后,刷新此页面并再次点击添加 Passkey。"
 msgid "All"
 msgstr "全部"
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "所有恢复码都已被使用"
@@ -478,17 +478,17 @@ msgstr "证书"
 msgid "Cert path is not under the nginx conf dir"
 msgstr "证书路径不在 Nginx 配置目录下"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 msgid "Certificate %{name} has expired"
 msgstr "证书 %{name} 已过期"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr "证书 %{name} 将在 %{days} 天后失效"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr "证书 %{name} 将在 1 天后过期"
 
@@ -496,17 +496,17 @@ msgstr "证书 %{name} 将在 1 天后过期"
 msgid "Certificate decode error"
 msgstr "证书解码错误"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 msgid "Certificate Expiration Notice"
 msgstr "证书到期通知"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 msgid "Certificate Expired"
 msgstr "证书过期"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 msgid "Certificate Expiring Soon"
 msgstr "证书即将到期"
 
@@ -658,6 +658,10 @@ msgstr "客户端请求头缓冲区大小"
 msgid "Close"
 msgstr "关闭"
 
+#: src/constants/errors/llm.ts:2
+msgid "Code completion is not enabled"
+msgstr "未启用代码自动完成功能"
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr "代码补全模型"
@@ -912,27 +916,27 @@ msgstr "删除证书"
 msgid "Delete Permanently"
 msgstr "彻底删除"
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr "删除远程站点错误"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr "删除远程站点成功"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 msgid "Delete Remote Stream Error"
 msgstr "删除远程 Stream 错误"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 msgid "Delete Remote Stream Success"
 msgstr "删除远程 Stream 成功"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 msgid "Delete site %{name} from %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "成功从 %{node} 中删除站点 %{name}"
 
@@ -940,11 +944,11 @@ msgstr "成功从 %{node} 中删除站点 %{name}"
 msgid "Delete site: %{site_name}"
 msgstr "删除站点: %{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "成功从 %{node} 中删除站点 %{name}"
 
@@ -973,6 +977,10 @@ msgstr "描述"
 msgid "Destination file already exists"
 msgstr "目标文件已存在"
 
+#: src/constants/errors/config.ts:3
+msgid "Destination file: {0} already exists"
+msgstr "目标文件:{0} 已经存在"
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "详情"
@@ -1025,51 +1033,51 @@ msgstr "禁用"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "关闭 %{name} 自动续签失败"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr "禁用远程站点错误"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 msgid "Disable Remote Site Maintenance Error"
 msgstr "禁用远程站点维护错误"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 msgid "Disable Remote Site Maintenance Success"
 msgstr "禁用远程站点维护成功"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr "禁用远程站点成功"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 msgid "Disable Remote Stream Error"
 msgstr "禁用远程 Stream 错误"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 msgid "Disable Remote Stream Success"
 msgstr "禁用远程 Stream成功"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 msgid "Disable site %{name} from %{node} failed"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "停用站点 %{name} 维护 %{node} 失败"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "成功停用站点 %{name} 上 %{node} 的维护功能"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
@@ -1254,51 +1262,51 @@ msgstr "启用 HTTPS"
 msgid "Enable Proxy Cache"
 msgstr "启用代理缓存"
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr "启用远程站点错误"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 msgid "Enable Remote Site Maintenance Error"
 msgstr "在 %{node} 上启用 %{site} 失败"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 msgid "Enable Remote Site Maintenance Success"
 msgstr "成功启用远程站点维护"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr "启用远程站点成功"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 msgid "Enable Remote Stream Error"
 msgstr "启用远程 Steam 错误"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 msgid "Enable Remote Stream Success"
 msgstr "启用远程 Stream 成功"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "在 %{node} 中为 %{name} 启用维护模式失败"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "在 %{node} 上成功启用站点 %{name} 维护模式"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 msgid "Enable site %{name} on %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "在 %{node} 上启用 %{name} 成功"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "在 %{node} 上启用 %{name} 成功"
 
@@ -2929,7 +2937,7 @@ msgstr ""
 "请首先在 “证书”> “DNS 凭证” 中添加凭证,然后在下方选择一个凭证,请求 DNS 提供"
 "商的 API。"
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3167,19 +3175,19 @@ msgstr "重载"
 msgid "Reload Nginx"
 msgstr "重载 Nginx"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "在 %{node} 上重载 Nginx 失败,响应:%{resp}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 msgid "Reload Nginx on %{node} successfully"
 msgstr "在 %{node} 上重载 Nginx 成功"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 msgid "Reload Remote Nginx Error"
 msgstr "重载远程 Nginx 错误"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 msgid "Reload Remote Nginx Success"
 msgstr "重载远程 Nginx 成功"
 
@@ -3217,53 +3225,53 @@ msgstr "删除成功"
 msgid "Rename"
 msgstr "重命名"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "成功将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path}"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "成功将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path}"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "远程配置重命名错误"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "重命名远程配置成功"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr "重命名远程站点错误"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr "重命名远程站点成功"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 msgid "Rename Remote Stream Error"
 msgstr "重命名远程 Stream 错误"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 msgid "Rename Remote Stream Success"
 msgstr "重命名远程 Stream成功"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
@@ -3343,19 +3351,19 @@ msgstr "重启"
 msgid "Restart Nginx"
 msgstr "重启 Nginx"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "在 %{node} 上重启 Nginx 失败,响应:%{resp}"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 msgid "Restart Nginx on %{node} successfully"
 msgstr "在 %{node} 上重启 Nginx 成功"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 msgid "Restart Remote Nginx Error"
 msgstr "重启远程 Nginx 错误"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 msgid "Restart Remote Nginx Success"
 msgstr "重启远程 Nginx 成功"
 
@@ -3454,35 +3462,37 @@ msgstr "保存指令"
 msgid "Save error %{msg}"
 msgstr "保存错误 %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr "保存远程站点错误"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr "保存远程站点成功"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 msgid "Save Remote Stream Error"
 msgstr "保存远程 Stream 错误"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 msgid "Save Remote Stream Success"
 msgstr "保存远程 Stream 成功"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 msgid "Save site %{name} to %{node} failed"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 msgid "Save site %{name} to %{node} successfully"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 msgid "Save stream %{name} to %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
@@ -3591,19 +3601,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/dashboard/components/ParamsOpt/ProxyCacheConfig.vue:147
 msgid "Shared Memory Zone"
@@ -3810,39 +3820,35 @@ msgstr "同步"
 msgid "Sync Certificate"
 msgstr "同步证书"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "证书 %{cert_name} 已成功同步到 %{env_name}"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "证书 %{cert_name} 已成功同步到 %{env_name}"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "同步证书错误"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "同步证书成功"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "配置 %{config_name} 成功同步到 %{env_name}"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "配置 %{config_name} 成功同步到 %{env_name}"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "同步配置错误"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "同步配置成功"
 
@@ -4452,6 +4458,11 @@ msgstr "工作进程"
 msgid "Workers"
 msgstr "Workers"
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+msgid "Workspace"
+msgstr "工作区"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"
@@ -4616,8 +4627,8 @@ msgstr "你的 Passkeys"
 #~ msgstr "请将远程 Nginx UI 升级到最新版本"
 
 #~ msgid ""
-#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: "
-#~ "%{resp}"
+#~ "Rename %{orig_path} to %{new_path} on %{env_name} failed, response: %"
+#~ "{resp}"
 #~ msgstr ""
 #~ "将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path} 失败,响应:%{resp}"
 

+ 100 - 86
app/src/language/zh_TW/app.po

@@ -127,7 +127,7 @@ msgstr "然後,重新整理此頁面並再次點選新增通行金鑰。"
 msgid "All"
 msgstr "全部"
 
-#: src/components/Notification/notifications.ts:109
+#: src/components/Notification/notifications.ts:165
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "所有恢復碼都已使用完畢"
@@ -482,17 +482,17 @@ msgstr "證書"
 msgid "Cert path is not under the nginx conf dir"
 msgstr "證書路徑不在 Nginx 設定檔資料夾下"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:26
 msgid "Certificate %{name} has expired"
 msgstr "憑證 %{name} 已過期"
 
-#: src/components/Notification/notifications.ts:138
-#: src/components/Notification/notifications.ts:142
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:38
 msgid "Certificate %{name} will expire in %{days} days"
 msgstr "證書 %{name} 將於 %{days} 天後過期"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:42
 msgid "Certificate %{name} will expire in 1 day"
 msgstr "證書 %{name} 將於 1 天後過期"
 
@@ -500,17 +500,17 @@ msgstr "證書 %{name} 將於 1 天後過期"
 msgid "Certificate decode error"
 msgstr "證書解碼錯誤"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:29
 msgid "Certificate Expiration Notice"
 msgstr "證書到期通知"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:25
 msgid "Certificate Expired"
 msgstr "憑證已過期"
 
-#: src/components/Notification/notifications.ts:141
-#: src/components/Notification/notifications.ts:145
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:41
 msgid "Certificate Expiring Soon"
 msgstr "證書即將到期"
 
@@ -665,6 +665,11 @@ msgstr "Client 請求標頭緩衝區大小"
 msgid "Close"
 msgstr "關閉"
 
+#: src/constants/errors/llm.ts:2
+#, fuzzy
+msgid "Code completion is not enabled"
+msgstr "目前帳戶未啟用 TOTP。"
+
 #: src/views/preference/OpenAISettings.vue:86
 msgid "Code Completion Model"
 msgstr ""
@@ -919,27 +924,27 @@ msgstr "刪除憑證"
 msgid "Delete Permanently"
 msgstr "永久刪除"
 
-#: src/components/Notification/notifications.ts:9 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:69 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr "刪除遠端網站錯誤"
 
-#: src/components/Notification/notifications.ts:13 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:73 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr "刪除遠端網站成功"
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:125
 msgid "Delete Remote Stream Error"
 msgstr "刪除遠端串流錯誤"
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:129
 msgid "Delete Remote Stream Success"
 msgstr "刪除遠端串流成功"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:70
 msgid "Delete site %{name} from %{node} failed"
 msgstr "從 %{node} 刪除網站 %{name} 失敗"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:74
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "成功從 %{node} 移除站點 %{name}"
 
@@ -947,11 +952,11 @@ msgstr "成功從 %{node} 移除站點 %{name}"
 msgid "Delete site: %{site_name}"
 msgstr "刪除網站:%{site_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:126
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "部署 %{conf_name} 至 %{node} 失敗"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:130
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "成功從 %{node} 移除站點 %{name}"
 
@@ -980,6 +985,11 @@ msgstr "描述"
 msgid "Destination file already exists"
 msgstr "目的檔案已存在"
 
+#: src/constants/errors/config.ts:3
+#, fuzzy
+msgid "Destination file: {0} already exists"
+msgstr "目的檔案已存在"
+
 #: src/views/notification/notificationColumns.tsx:53
 msgid "Details"
 msgstr "詳細資料"
@@ -1032,51 +1042,51 @@ msgstr "停用"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "關閉 %{name} 自動續簽失敗"
 
-#: src/components/Notification/notifications.ts:17 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr "停用遠端站點錯誤"
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:101
 msgid "Disable Remote Site Maintenance Error"
 msgstr "停用遠端網站維護錯誤"
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:105
 msgid "Disable Remote Site Maintenance Success"
 msgstr "遠端網站維護已成功停用"
 
-#: src/components/Notification/notifications.ts:21 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr "停用遠端站點成功"
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:133
 msgid "Disable Remote Stream Error"
 msgstr "停用遠端串流錯誤"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:137
 msgid "Disable Remote Stream Success"
 msgstr "停用遠端串流成功"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:78
 msgid "Disable site %{name} from %{node} failed"
 msgstr "停用 %{node} 上的網站 %{name} 失敗"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:82
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "已成功從 %{node} 停用網站 %{name}"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:102
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "在 %{node} 上停用網站%{name}的維護模式失敗"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:106
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "網站 %{name} 在 %{node} 上的維護已成功停用"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:134
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "停用來自 %{node} 的串流 %{name} 失敗"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:138
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "已成功從 %{node} 停用串流 %{name}"
 
@@ -1261,51 +1271,51 @@ msgstr "啟用 HTTPS"
 msgid "Enable Proxy Cache"
 msgstr "啟用 Proxy 快取"
 
-#: src/components/Notification/notifications.ts:25 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr "啟用遠端網站錯誤"
 
-#: src/components/Notification/notifications.ts:33
+#: src/components/Notification/notifications.ts:93
 msgid "Enable Remote Site Maintenance Error"
 msgstr "啟用遠端網站維護錯誤"
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:97
 msgid "Enable Remote Site Maintenance Success"
 msgstr "啟用遠端網站維護成功"
 
-#: src/components/Notification/notifications.ts:29 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr "啟用遠端站點成功"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:141
 msgid "Enable Remote Stream Error"
 msgstr "啟用遠端串流錯誤"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:145
 msgid "Enable Remote Stream Success"
 msgstr "啟用遠端串流成功"
 
-#: src/components/Notification/notifications.ts:34
+#: src/components/Notification/notifications.ts:94
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "啟用網站 %{name} 在 %{node} 上的維護模式失敗"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:98
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "成功在 %{node} 上啟用網站%{name}的維護模式"
 
-#: src/components/Notification/notifications.ts:26
+#: src/components/Notification/notifications.ts:86
 msgid "Enable site %{name} on %{node} failed"
 msgstr "在 %{node} 上啟用網站%{name}失敗"
 
-#: src/components/Notification/notifications.ts:30
+#: src/components/Notification/notifications.ts:90
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "成功在 %{node} 上啟用網站%{name}"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:142
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "在 %{node} 上啟用串流 %{name} 失敗"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:146
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "在 %{node} 上成功啟用串流 %{name}"
 
@@ -2939,7 +2949,7 @@ msgstr ""
 "請先在「憑證」 > 「DNS 認證」中新增認證,然後選擇以下認證之一以請求 DNS 供應"
 "商的 API。"
 
-#: src/components/Notification/notifications.ts:110
+#: src/components/Notification/notifications.ts:166
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -3176,19 +3186,19 @@ msgstr "重新載入"
 msgid "Reload Nginx"
 msgstr "重新載入 Nginx"
 
-#: src/components/Notification/notifications.ts:116
+#: src/components/Notification/notifications.ts:10
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "在節點 %{node} 上重新載入 Nginx 失敗,回應:%{resp}"
 
-#: src/components/Notification/notifications.ts:120
+#: src/components/Notification/notifications.ts:14
 msgid "Reload Nginx on %{node} successfully"
 msgstr "在 %{node} 上成功重新載入 Nginx"
 
-#: src/components/Notification/notifications.ts:115
+#: src/components/Notification/notifications.ts:9
 msgid "Reload Remote Nginx Error"
 msgstr "重新載入遠端 Nginx 錯誤"
 
-#: src/components/Notification/notifications.ts:119
+#: src/components/Notification/notifications.ts:13
 msgid "Reload Remote Nginx Success"
 msgstr "遠端 Nginx 重新載入成功"
 
@@ -3226,53 +3236,53 @@ msgstr "移除成功"
 msgid "Rename"
 msgstr "重新命名"
 
-#: src/components/Notification/notifications.ts:172
+#: src/components/Notification/notifications.ts:62
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "將 %{orig_path} 重新命名為 %{new_path} 在 %{env_name} 上失敗"
 
-#: src/components/Notification/notifications.ts:176
+#: src/components/Notification/notifications.ts:66
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "成功將 %{env_name} 上的 %{orig_path} 重新命名為 %{new_path}"
 
-#: src/components/Notification/notifications.ts:171
-#: src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:61 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "重新命名遠端設定錯誤"
 
-#: src/components/Notification/notifications.ts:175
-#: src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:65 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "重新命名遠端設定成功"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:109
+#: src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr "重新命名遠端遠端站點時發生錯誤"
 
-#: src/components/Notification/notifications.ts:53 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:113
+#: src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr "重新命名遠端站點成功"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:149
 msgid "Rename Remote Stream Error"
 msgstr "遠端串流重新命名錯誤"
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:153
 msgid "Rename Remote Stream Success"
 msgstr "遠端串流重新命名成功"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:110
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "將網站 %{name} 在 %{node} 上重新命名為 %{new_name} 失敗"
 
-#: src/components/Notification/notifications.ts:54
+#: src/components/Notification/notifications.ts:114
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "將網站 %{name} 在 %{node} 上成功更名為 %{new_name}"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:150
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "將節點 %{node} 上的串流 %{name} 重新命名為 %{new_name} 失敗"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:154
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "將節點 %{node} 上的串流 %{name} 重新命名為 %{new_name} 成功"
 
@@ -3352,19 +3362,19 @@ msgstr "重新啟動"
 msgid "Restart Nginx"
 msgstr "重新啟動 Nginx"
 
-#: src/components/Notification/notifications.ts:124
+#: src/components/Notification/notifications.ts:18
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "在節點 %{node} 上重啟 Nginx 失敗,回應:%{resp}"
 
-#: src/components/Notification/notifications.ts:128
+#: src/components/Notification/notifications.ts:22
 msgid "Restart Nginx on %{node} successfully"
 msgstr "在 %{node} 上成功重啟 Nginx"
 
-#: src/components/Notification/notifications.ts:123
+#: src/components/Notification/notifications.ts:17
 msgid "Restart Remote Nginx Error"
 msgstr "遠端 Nginx 重啟錯誤"
 
-#: src/components/Notification/notifications.ts:127
+#: src/components/Notification/notifications.ts:21
 msgid "Restart Remote Nginx Success"
 msgstr "遠端 Nginx 重啟成功"
 
@@ -3463,35 +3473,37 @@ msgstr "儲存指令"
 msgid "Save error %{msg}"
 msgstr "儲存錯誤 %{msg}"
 
-#: src/components/Notification/notifications.ts:57 src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:117
+#: src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr "儲存遠端站點時發生錯誤"
 
-#: src/components/Notification/notifications.ts:61 src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:121
+#: src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr "儲存遠端站點成功"
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:157
 msgid "Save Remote Stream Error"
 msgstr "儲存遠端串流錯誤"
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:161
 msgid "Save Remote Stream Success"
 msgstr "遠端串流儲存成功"
 
-#: src/components/Notification/notifications.ts:58
+#: src/components/Notification/notifications.ts:118
 msgid "Save site %{name} to %{node} failed"
 msgstr "將網站 %{name} 儲存至 %{node} 失敗"
 
-#: src/components/Notification/notifications.ts:62
+#: src/components/Notification/notifications.ts:122
 msgid "Save site %{name} to %{node} successfully"
 msgstr "網站 %{name} 成功儲存至 %{node}"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:158
 msgid "Save stream %{name} to %{node} failed"
 msgstr "儲存串流 %{name} 至 %{node} 失敗"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:162
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "串流 %{name} 成功儲存至 %{node}"
 
@@ -3820,39 +3832,35 @@ msgstr "同步"
 msgid "Sync Certificate"
 msgstr "同步憑證"
 
-#: src/components/Notification/notifications.ts:154
+#: src/components/Notification/notifications.ts:46
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "同步憑證 %{cert_name} 至 %{env_name} 失敗"
 
-#: src/components/Notification/notifications.ts:158
+#: src/components/Notification/notifications.ts:50
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "同步憑證 %{cert_name} 到 %{env_name} 成功"
 
-#: src/components/Notification/notifications.ts:153
-#: src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "同步憑證錯誤"
 
-#: src/components/Notification/notifications.ts:157
-#: src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "同步憑證成功"
 
-#: src/components/Notification/notifications.ts:164
+#: src/components/Notification/notifications.ts:54
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "同步設定 %{config_name} 至 %{env_name} 失敗"
 
-#: src/components/Notification/notifications.ts:168
+#: src/components/Notification/notifications.ts:58
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "同步設定 %{config_name} 到 %{env_name} 成功"
 
-#: src/components/Notification/notifications.ts:163
-#: src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "同步設定錯誤"
 
-#: src/components/Notification/notifications.ts:167
-#: src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "同步設定成功"
 
@@ -4463,6 +4471,12 @@ msgstr "worker 行程"
 msgid "Workers"
 msgstr "worker"
 
+#: src/layouts/HeaderLayout.vue:40 src/routes/index.ts:56
+#: src/views/workspace/WorkSpace.vue:52
+#, fuzzy
+msgid "Workspace"
+msgstr "worker"
+
 #: src/views/dashboard/ServerAnalytic.vue:37
 #: src/views/dashboard/ServerAnalytic.vue:373
 msgid "Writes"

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

@@ -33,7 +33,7 @@ function getClientWidth() {
 }
 
 function collapse() {
-  return getClientWidth() < 1280
+  return getClientWidth() < 1080
 }
 
 const { server_name } = storeToRefs(useSettingsStore())

+ 22 - 3
app/src/layouts/HeaderLayout.vue

@@ -5,7 +5,7 @@ import NginxControl from '@/components/NginxControl/NginxControl.vue'
 import Notification from '@/components/Notification/Notification.vue'
 import SetLanguage from '@/components/SetLanguage/SetLanguage.vue'
 import SwitchAppearance from '@/components/SwitchAppearance/SwitchAppearance.vue'
-import { HomeOutlined, LogoutOutlined, MenuUnfoldOutlined } from '@ant-design/icons-vue'
+import { DesktopOutlined, HomeOutlined, LogoutOutlined, MenuUnfoldOutlined } from '@ant-design/icons-vue'
 import { message } from 'ant-design-vue'
 import { useRouter } from 'vue-router'
 
@@ -24,6 +24,10 @@ function logout() {
 }
 
 const headerRef = useTemplateRef('headerRef') as Readonly<ShallowRef<HTMLDivElement>>
+
+const isWorkspace = computed(() => {
+  return !!window.inWorkspace
+})
 </script>
 
 <template>
@@ -31,12 +35,19 @@ const headerRef = useTemplateRef('headerRef') as Readonly<ShallowRef<HTMLDivElem
     <div class="tool">
       <MenuUnfoldOutlined @click="emit('clickUnFold')" />
     </div>
+    <div v-if="!isWorkspace" class="workspace-entry">
+      <RouterLink to="/workspace">
+        <ATooltip :title="$gettext('Workspace')">
+          <DesktopOutlined />
+        </ATooltip>
+      </RouterLink>
+    </div>
 
     <ASpace
       class="user-wrapper"
       :size="24"
     >
-      <SetLanguage class="set_lang" />
+      <SetLanguage v-if="!isWorkspace" class="set_lang" />
 
       <SwitchAppearance />
 
@@ -48,7 +59,7 @@ const headerRef = useTemplateRef('headerRef') as Readonly<ShallowRef<HTMLDivElem
         <HomeOutlined />
       </a>
 
-      <a @click="logout">
+      <a v-if="!isWorkspace" @click="logout">
         <LogoutOutlined />
       </a>
     </ASpace>
@@ -86,6 +97,14 @@ const headerRef = useTemplateRef('headerRef') as Readonly<ShallowRef<HTMLDivElem
   }
 }
 
+.workspace-entry {
+  position: absolute;
+  left: 20px;
+  @media (max-width: 600px) {
+    display: none;
+  }
+}
+
 .user-wrapper {
   position: absolute;
   right: 28px;

+ 12 - 1
app/src/pinia/moudule/settings.ts

@@ -10,6 +10,7 @@ export const useSettingsStore = defineStore('settings', {
       name: 'Local',
     },
     server_name: '',
+    route_path: '',
   }),
   getters: {
     is_remote(): boolean {
@@ -32,5 +33,15 @@ export const useSettingsStore = defineStore('settings', {
       this.environment.name = 'Local'
     },
   },
-  persist: true,
+  persist: [
+    {
+      key: `LOCAL_${window.name || 'main'}`,
+      storage: localStorage,
+      pick: ['environment', 'server_name', 'route_path'],
+    },
+    {
+      storage: localStorage,
+      pick: ['language', 'theme', 'preference_theme'],
+    },
+  ],
 })

+ 8 - 0
app/src/routes/index.ts

@@ -48,6 +48,14 @@ export const routes: RouteRecordRaw[] = [
     },
     children: mainLayoutChildren,
   },
+  {
+    path: '/workspace',
+    name: 'Workspace',
+    component: () => import('@/views/workspace/WorkSpace.vue'),
+    meta: {
+      name: () => $gettext('Workspace'),
+    },
+  },
   ...authRoutes,
   ...errorRoutes,
 ]

+ 4 - 0
app/src/types.d.ts

@@ -1 +1,5 @@
 export type CheckedType = boolean | string | number
+
+interface Window {
+  inWorkspace?: boolean
+}

+ 141 - 0
app/src/views/workspace/WorkSpace.vue

@@ -0,0 +1,141 @@
+<script lang="ts" setup>
+import { CloseOutlined } from '@ant-design/icons-vue'
+import { Pane, Splitpanes } from 'splitpanes'
+import { useRouter } from 'vue-router'
+import 'splitpanes/dist/splitpanes.css'
+
+const router = useRouter()
+
+const src = computed(() => {
+  return location.pathname
+})
+
+const paneSize = ref(localStorage.paneSize ?? 50) // Read from persistent localStorage.
+function storePaneSize({ prevPane }) {
+  localStorage.paneSize = prevPane.size // Store in persistent localStorage.
+}
+
+function closeSplitView() {
+  router.push('/')
+}
+
+const leftFrame = useTemplateRef('leftFrame')
+const rightFrame = useTemplateRef('rightFrame')
+
+function handleLoad(iframeRef: HTMLIFrameElement | null) {
+  if (!iframeRef) {
+    return
+  }
+
+  iframeRef.addEventListener('load', () => {
+    if (iframeRef.contentWindow) {
+      iframeRef.contentWindow.inWorkspace = true
+    }
+  })
+}
+
+onMounted(() => {
+  handleLoad(leftFrame.value)
+  handleLoad(rightFrame.value)
+})
+</script>
+
+<template>
+  <div class="h-100vh macos-window">
+    <div class="macos-titlebar flex items-center p-2 relative">
+      <div class="traffic-lights flex ml-2">
+        <div class="traffic-light close" @click="closeSplitView">
+          <CloseOutlined class="traffic-icon" />
+        </div>
+      </div>
+      <div class="window-title absolute left-0 right-0 text-center">
+        {{ $gettext('Workspace') }}
+      </div>
+    </div>
+
+    <Splitpanes class="default-theme split-container" @resized="storePaneSize">
+      <Pane :size="paneSize" :min-size="20">
+        <iframe ref="leftFrame" name="split-view-left" :src class="w-full h-full iframe-no-border" />
+      </Pane>
+      <Pane :size="100 - paneSize">
+        <iframe ref="rightFrame" name="split-view-right" :src class="w-full h-full iframe-no-border" />
+      </Pane>
+    </Splitpanes>
+  </div>
+</template>
+
+<style scoped>
+.macos-window {
+  border-radius: 8px;
+  overflow: hidden;
+  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
+}
+
+.macos-titlebar {
+  background: linear-gradient(to bottom, #f9f9f9, #ececec);
+  height: 32px;
+  border-bottom: 1px solid #e1e1e1;
+  -webkit-app-region: drag;
+  user-select: none;
+}
+
+.dark .macos-titlebar {
+  background: linear-gradient(to bottom, #323232, #282828);
+  border-bottom: 1px solid #3a3a3a;
+}
+
+.split-container {
+  height: calc(100vh - 32px);
+}
+
+.traffic-lights {
+  -webkit-app-region: no-drag;
+  z-index: 10;
+}
+
+.traffic-light {
+  width: 12px;
+  height: 12px;
+  border-radius: 50%;
+  margin-right: 8px;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  cursor: pointer;
+}
+
+.traffic-light.close {
+  background-color: #ff5f57;
+  border: 1px solid #e0443e;
+}
+
+.traffic-icon {
+  opacity: 0;
+  font-size: 9px;
+  color: rgba(0, 0, 0, 0.5);
+}
+
+.traffic-light:hover .traffic-icon {
+  opacity: 1;
+}
+
+.window-title {
+  font-size: 13px;
+  font-weight: 500;
+  color: #333;
+  pointer-events: none;
+}
+
+.dark .window-title {
+  color: #e0e0e0;
+}
+
+:deep(.splitpanes__splitter) {
+  background-color: #ececec !important;
+}
+
+.iframe-no-border {
+  border: none;
+  outline: none;
+}
+</style>

+ 0 - 16
app/vite.config.ts

@@ -1,4 +1,3 @@
-import { Agent } from 'node:http'
 import { fileURLToPath, URL } from 'node:url'
 import vue from '@vitejs/plugin-vue'
 import vueJsx from '@vitejs/plugin-vue-jsx'
@@ -83,21 +82,6 @@ export default defineConfig(({ mode }) => {
           secure: false,
           ws: true,
           timeout: 60000,
-          agent: new Agent({
-            keepAlive: false,
-          }),
-          onProxyReq(proxyReq, req) {
-            proxyReq.setHeader('Connection', 'keep-alive')
-            if (req.headers.accept === 'text/event-stream') {
-              proxyReq.setHeader('Cache-Control', 'no-cache')
-              proxyReq.setHeader('Content-Type', 'text/event-stream')
-            }
-          },
-          onProxyReqWs(proxyReq, req, socket) {
-            socket.on('close', () => {
-              proxyReq.destroy()
-            })
-          },
         },
       },
     },

+ 0 - 2
internal/performance/stub_status.go

@@ -15,7 +15,6 @@ import (
 	"github.com/0xJacky/Nginx-UI/internal/nginx"
 	"github.com/0xJacky/Nginx-UI/settings"
 	"github.com/pkg/errors"
-	"github.com/uozi-tech/cosy/logger"
 )
 
 // StubStatusInfo Store the stub_status module status
@@ -57,7 +56,6 @@ func GetStubStatusData() (bool, *StubStatusData, error) {
 
 	// Get the stub_status status information
 	enabled, statusURL := IsStubStatusEnabled()
-	logger.Debug("GetStubStatusData", "enabled", enabled, "statusURL", statusURL)
 	if !enabled {
 		return false, result, fmt.Errorf("stub_status is not enabled")
 	}

Некоторые файлы не были показаны из-за большого количества измененных файлов