feat: move the terminal fully into the ssh-terminal plugin (B9)

This commit is contained in:
LukeGus committed 2026-09-23 21:41:22 -05:00
1 parent 535126fd1b
commit 79d77678c9
309 files changed
+41789 -14958

No files matched your search

+1 -175
View File
@@ -742,7 +742,6 @@
"addHost": "إضافة مضيف",
"editHost": "تحرير المضيف",
"cloneHost": "استنساخ المضيف",
"enableTerminal": "تمكين الطرفية",
"enableTunnel": "تمكين النفق",
"enableFileManager": "تمكين مدير الملفات",
"enableDocker": "تمكين Docker",
@@ -1041,8 +1040,6 @@
"enableSessionLoggingDesc": "تسجيل مخرجات الجلسة الطرفية للمراجعة لاحقاً",
"allowSessionSharing": "السماح بمشاركة الجلسة",
"allowSessionSharingDesc": "يمكن مشاركة الجلسات المباشرة على هذا المضيف عبر رابط أو مع مستخدمين آخرين",
"enableCommandHistory": "سجل الأوامر",
"enableCommandHistoryDesc": "تسجيل الأوامر المنفذة في هذه الطرفية للسجل والإكمال التلقائي",
"localEchoLabel": "صدى محلي",
"localEchoDesc": "توقع ضغطات المفاتيح الآمنة القابلة للطباعة محليًا على الاتصالات البطيئة. لا يتم عرض مطالبات كلمة المرور أو مدخلات التحكم على الشاشة.",
"localEchoDefault": "استخدم الإعدادات العامة",
@@ -1072,8 +1069,6 @@
"bindHost": "مضيف الربط",
"enableTmuxMonitor": "تمكين مراقب Tmux",
"enableTmuxMonitorDesc": "إظهار هذا المضيف في مراقب Tmux وإضافة إجراءات tmux الخاصة به إلى الشريط الجانبي",
"enableTerminalToolbar": "تفعيل شريط أدوات الطرفية",
"enableTerminalToolbarDesc": "اعرض شريط أدوات سريع الوصول مثبتًا على الطرفية النشطة لأدوات هذا المضيف وإحصائياته المباشرة.",
"connectionToolbar": "شريط أدوات الاتصال",
"showConnectionToolbar": "إظهار شريط أدوات الاتصال",
"showConnectionToolbarDesc": "يمكنك إظهار شريط الأدوات في جلسات SSH وRDP وVNC وTelnet الخاصة بهذا المضيف. كما يمكنك إخفاؤه مؤقتًا من شريط الأدوات نفسه.",
@@ -1550,9 +1545,7 @@
"links": "روابط",
"navigate": "تنقل",
"select": "تحديد",
"toggleWith": "تبديل باستخدام",
"localTerminal": "المحطة المحلية",
"localTerminalDesc": "افتح نافذة طرفية على هذا الكمبيوتر"
"toggleWith": "تبديل باستخدام"
},
"splitScreen": {
"paneEmpty": "الجزء {{index}} - فارغ",
@@ -1717,57 +1710,13 @@
"loadSharesFailed": "فشل تحميل المشاركات النشطة"
},
"terminal": {
"sessionExpiredNotice": "انتهت صلاحية جلستك السابقة على {{host}} بعد {{minutes}} دقيقة من قطع الاتصال؛ تم إغلاق نافذة الأوامر وأي شيء يعمل بداخلها. فعّل خاصية Auto-Tmux على هذا المضيف للحفاظ على استمرارية الجلسات.",
"sessionExpiredNoticeNoMinutes": "انتهت صلاحية جلستك السابقة على {{host}} أثناء انقطاع الاتصال؛ تم حذف واجهة سطر الأوامر وأي شيء كان يعمل بداخلها. فعّل خاصية Auto-Tmux على هذا المضيف للحفاظ على استمرارية الجلسات.",
"enableAutoTmuxAction": "تفعيل خاصية Auto-Tmux",
"autoTmuxEnabled": "تم تفعيل خاصية Auto-Tmux لـ {{host}}. وسيتم تطبيقها بدءًا من الاتصال التالي.",
"autoTmuxEnableFailed": "فشل تفعيل خاصية Auto-Tmux",
"connect": "الاتصال بالمضيف",
"clear": "مسح",
"paste": "لصق",
"reconnect": "إعادة الاتصال",
"connectionLost": "انقطع الاتصال",
"connected": "متصل",
"clipboardWriteFailed": "فشل النسخ إلى الحافظة. تأكد من تقديم الصفحة عبر HTTPS أو localhost.",
"clipboardReadFailed": "فشلت القراءة من الحافظة. تأكد من منح أذونات الحافظة.",
"clipboardHttpWarning": "تعذر قراءة الحافظة. بعض المتصفحات تقيّد الوصول إلى الحافظة خارج بروتوكول HTTPS - جرّب Ctrl+V بدلاً من ذلك، أو شغّل Termix عبر HTTPS.",
"passwordPromptFillTitle": "هل تريد ملء كلمة المرور المحفوظة في هذه النافذة؟",
"unknownError": "حدث خطأ غير معروف",
"websocketError": "خطأ في اتصال WebSocket",
"connecting": "جارٍ الاتصال...",
"noHostSelected": "لم يتم تحديد مضيف",
"reconnecting": "جارٍ إعادة الاتصال... ({{attempt}}/{{max}})",
"reconnected": "تمت إعادة الاتصال بنجاح",
"tmuxSessionCreated": "تم إنشاء جلسة tmux: {{name}}",
"tmuxSessionAttached": "تم الالتحاق بجلسة tmux: {{name}}",
"tmuxUnavailable": "tmux غير مثبّت على المضيف البعيد، جارٍ الرجوع إلى الصدفة القياسية",
"tmuxSessionPickerTitle": "جلسات tmux",
"tmuxSessionPickerDesc": "تم العثور على جلسات tmux موجودة على هذا المضيف. اختر واحدة لإعادة الاتصال أو أنشئ جلسة جديدة.",
"tmuxWindows": "النوافذ",
"tmuxWindowCount": "{{count}} نافذة",
"tmuxAttached": "العملاء المتصلون",
"tmuxAttachedCount": "{{count}} متصل",
"tmuxLastActivity": "آخر نشاط",
"tmuxTimeJustNow": "الآن فقط",
"tmuxTimeMinutes": "منذ {{count}}د",
"tmuxTimeHours": "منذ {{count}}س",
"tmuxTimeDays": "منذ {{count}}ي",
"tmuxCreateNew": "بدء جلسة جديدة",
"tmuxCopyHint": "اضبط التحديد واضغط Enter للنسخ إلى الحافظة",
"tmuxDetach": "فصل من جلسة tmux",
"tmuxDetached": "تم الفصل من جلسة tmux",
"searchPlaceholder": "يجد",
"searchCaseSensitive": "علبة كبريت",
"searchWholeWord": "تطابق الكلمة الكاملة",
"searchRegex": "استخدم التعبير النمطي",
"searchNoResults": "لا توجد نتائج",
"searchResultCount": "{{index}} من {{count}}",
"searchNext": "المباراة التالية (إدخال)",
"searchPrevious": "المباراة السابقة (Shift+Enter)",
"searchClose": "إغلاق (الهروب)",
"maxReconnectAttemptsReached": "تم الوصول إلى الحد الأقصى لمحاولات إعادة الاتصال",
"closeTab": "إغلاق",
"connectionTimeout": "انتهت مهلة الاتصال",
"terminalTitle": "الطرفية - {{host}}",
"terminalWithPath": "الطرفية - {{host}}:{{path}}",
"runTitle": "تشغيل {{command}} - {{host}}",
@@ -1790,27 +1739,14 @@
"opksshOpenBrowser": "افتح المتصفح للمصادقة",
"opksshWaitingForAuth": "في انتظار المصادقة في المتصفح...",
"opksshAuthenticating": "جارٍ معالجة المصادقة...",
"opksshTimeout": "انتهت مهلة المصادقة. يرجى المحاولة مرة أخرى.",
"opksshAuthFailed": "فشلت المصادقة. يرجى التحقق من بيانات الاعتماد والمحاولة مرة أخرى.",
"opksshSignInWith": "تسجيل الدخول باستخدام {{provider}}",
"vaultAuthTitle": "مطلوب تسجيل الدخول إلى Vault",
"vaultAuthDescription": "تم فتح نافذة لتسجيل الدخول إلى HashiCorp Vault. أكمل تسجيل الدخول هناك؛ سيستمر هذا الاتصال تلقائيًا.",
"vaultAuthFailed": "فشلت مصادقة Vault. يرجى المحاولة مرة أخرى.",
"vaultReopen": "أعد فتح نافذة تسجيل الدخول",
"sudoPasswordPopupTitle": "إدراج كلمة المرور؟",
"linkDialogTitle": "فتح الرابط",
"linkDialogOpen": "فتح",
"linkDialogCopy": "نسخ",
"websocketAbnormalClose": "أُغلق الاتصال بشكل غير متوقع. قد يكون السبب مشكلة في الوكيل العكسي أو إعدادات SSL. يرجى مراجعة سجلات الخادم.",
"connectionLogTitle": "سجل الاتصال",
"connectionLogCopy": "نسخ السجلات إلى الحافظة",
"connectionLogEmpty": "لا توجد سجلات اتصال بعد",
"connectionLogWaiting": "في انتظار سجلات الاتصال...",
"connectionLogCopied": "تم نسخ سجلات الاتصال إلى الحافظة",
"connectionLogCopyFailed": "فشل نسخ السجلات إلى الحافظة",
"connectionRejected": "تم رفض الاتصال من قبل الخادم. يرجى التحقق من المصادقة وإعدادات الشبكة.",
"hostKeyRejected": "تم رفض التحقق من مفتاح مضيف SSH. تم إلغاء الاتصال.",
"sessionTakenOver": "تم فتح الجلسة في علامة تبويب أخرى. جارٍ إعادة الاتصال...",
"split": {
"splitTab": "تقسيم علامة التبويب",
"addToSplit": "إضافة إلى التقسيم",
@@ -2225,55 +2161,6 @@
"sectionApiKeys": "مفاتيح API",
"sectionAuditLog": "سجل التدقيق",
"sectionSsl": "SSL / Let's Encrypt",
"sectionTouchInput": "إدخال اللمس",
"touchEnabled": "تفعيل إدخال اللمس",
"touchEnabledDesc": "السماح بالتمرير بلمسة إصبع واحدة في المحطات الطرفية",
"touchMomentumEnabled": "تفعيل الزخم",
"touchMomentumEnabledDesc": "استمر في التمرير لفترة وجيزة بعد التمرير",
"touchAdvanced": "متقدم",
"touchDragThreshold": "عتبة السحب",
"touchMaxWheelDelta": "أقصى دلتا للعجلة",
"touchMomentumSampleWindow": "نافذة عينة الزخم",
"touchReleaseGracePeriod": "فترة السماح للإفراج",
"touchMinimumVelocity": "الحد الأدنى للسرعة",
"touchMaximumVelocity": "أقصى سرعة",
"touchMaximumDuration": "أقصى مدة",
"touchMaximumTravel": "أقصى قدر من السفر",
"touchDecayTime": "وقت التحلل",
"touchPixelsPerTick": "بكسل لكل نبضة",
"touchMaximumFrameInterval": "أقصى فاصل زمني بين الإطارات",
"touchMaximumTicksPerFrame": "الحد الأقصى للنبضات لكل إطار",
"touchResetDefaults": "إعادة ضبط الإعدادات الافتراضية",
"touchSaved": "تم حفظ إعدادات إدخال اللمس",
"touchSaveFailed": "فشل حفظ إعدادات إدخال اللمس",
"sectionImageStorage": "تخزين الصور",
"imageStorageMode": "وضع التخزين",
"imageStorageModeDesc": "يتم حفظ الصور الطرفية الملصقة والمرفوعة في هذا المكان. يتم تثبيت عمليات الاختيار التلقائي حسب الاتصال، سواء كان محليًا أو عن بُعد (SFTP).",
"imageStorageModeAuto": "آلي",
"imageStorageModeLocal": "محلي",
"imageStorageModeRemoteSftp": "عن بعد (SFTP)",
"imageStorageLocalDir": "الدليل المحلي",
"imageStorageLocalDirDesc": "المسار المطلق في نظام Termix الخلفي. لا يظهر بعد الحفظ لأسباب أمنية.",
"imageStorageLocalDirPlaceholder": "اتركه فارغًا للحفاظ على التحديث",
"imageStorageHostPath": "مسار المضيف",
"imageStorageHostPathDesc": "عرض الدليل المحلي من جانب المضيف الذي تتلقاه وكلاء المحطة الطرفية.",
"imageStorageTtl": "مدة البقاء (بالمللي ثانية)",
"imageStorageMaxCount": "الحد الأقصى لعدد الصور",
"imageStorageMaxBytes": "الحد الأقصى لحجم التخزين بالبايت",
"imageStorageSaved": "تم حفظ إعدادات تخزين الصور",
"imageStorageSaveFailed": "فشل حفظ إعدادات تخزين الصور",
"imageStorageInstanceId": "معرّف مثيل جلسة الطرفية",
"imageStorageInstanceIdDesc": "معرف مثيل إحدى علامات تبويب الطرفية المتصلة، المستخدمة لاختبار الرؤية.",
"imageStorageInstanceIdRequired": "أدخل أولاً معرّف مثيل جلسة طرفية",
"imageStorageTest": "امتحان",
"imageStorageTesting": "جارٍ الاختبار...",
"imageStorageTestFailed": "فشل اختبار تخزين الصور",
"imageStorageTestConnected": "تم الاتصال بجلسة الطرفية.",
"imageStorageTestNotConnected": "لا توجد جلسة طرفية متصلة بهذا المعرف.",
"imageStorageTestSelectedMode": "سيتم استخدام الأمر التالي للتحميل: {{mode}}",
"imageStorageSelectedModeUnavailable": "غير متاح",
"imageStorageTestLocalVisible": "الدليل المحلي مرئي من الجهاز المضيف المتصل.",
"imageStorageTestLocalNotVisible": "الدليل المحلي غير مرئي من الجهاز المضيف المتصل.",
"sectionBranding": "العلامة البيضاء",
"brandingAppName": "اسم التطبيق",
"brandingAppNameDesc": "يظهر هذا الحقل في شاشة تسجيل الدخول وعلامة تبويب المتصفح. اتركه فارغًا لاستخدام \"Termix\".",
@@ -2354,9 +2241,6 @@
"oidcSilentLoginDefaultLockedDesc": "هذا الإعداد مقفل بواسطة متغير البيئة OIDC_SILENT_LOGIN_DEFAULT ولا يمكن تغييره هنا.",
"allowPasswordReset": "السماح بإعادة تعيين كلمة المرور",
"allowPasswordResetDesc": "رمز إعادة التعيين عبر سجلات Docker",
"commandHistoryEnabled": "سجل الأوامر",
"commandHistoryEnabledDesc": "السماح بتسجيل سجل الأوامر. عند التعطيل، لا يتم حفظ السجل بغض النظر عن إعدادات كل جهاز.",
"updateCommandHistoryFailed": "فشل تحديث إعداد سجل الأوامر",
"analyticsEnabled": "مشاركة إحصائيات الاستخدام المجهولة",
"analyticsEnabledDesc": "يرسل النظام إحصاءً يومياً مجهولاً للمستخدمين والمضيفين واستخدام الميزات للمساعدة في تحسين Termix. ولا يتم تضمين أي بيانات شخصية أو تفاصيل اتصال على الإطلاق.",
"analyticsEnabledLockedDesc": "هذا الإعداد مقفل بواسطة متغير البيئة ENABLE_TELEMETRY ولا يمكن تغييره هنا.",
@@ -2647,11 +2531,6 @@
"hostDefaultsTerminal": "الطرفية",
"hostDefaultsAutoTmux": "Auto-Tmux",
"hostDefaultsAutoTmuxDesc": "قم بتشغيل طرفيات المضيفين الجدد داخل tmux حتى تستمر الجلسات في حالة انقطاع الاتصال (يتطلب tmux على المضيف).",
"terminalSessionTimeout": "استمرار جلسة الطرفية",
"terminalSessionTimeoutDesc": "مدة بقاء طرفية غير متصلة على الخادم قبل إغلاقها. الحد الأدنى: دقيقة واحدة، الحد الأقصى: 1440 دقيقة. بالنسبة للجلسات التي يجب أن تستمر لفترة أطول من ذلك، فعّل خاصية Auto-Tmux على المضيف.",
"terminalSessionTimeoutRange": "أدخل قيمة بين 1 و 1440 دقيقة",
"terminalSessionTimeoutSaved": "تم حفظ استمرارية جلسة الطرفية",
"terminalSessionTimeoutSaveFailed": "فشل حفظ بيانات جلسة الطرفية",
"minutes": "دقائق",
"hostDefaultsSessionLogging": "تسجيل الجلسات",
"hostDefaultsSessionLoggingDesc": "تسجيل جلسات الطرفية على المضيفين الجدد افتراضيًا",
@@ -2708,15 +2587,6 @@
"connectToTerminal": "اتصل بالطرفية",
"connectToFiles": "اتصل بالملفات"
},
"history": {
"noTerminalSelected": "لا توجد طرفية محددة",
"noTerminalSelectedHint": "افتح علامة تبويب طرفية SSH لعرض سجل الأوامر الخاص بها",
"searchPlaceholder": "ابحث في السجل...",
"clearAll": "مسح الكل",
"noHistoryEntries": "لا توجد مدخلات سجل",
"trackingDisabled": "تتبع السجل معطل",
"trackingDisabledHint": "قم بتمكينه في إعدادات الطرفية الخاصة بالمضيف."
},
"sshTools": {
"keyRecordingTitle": "تسجيل المفاتيح",
"recordToTerminals": "التسجيل إلى الطرفيات",
@@ -3178,30 +3048,11 @@
"terminalToolbar": {
"title": "شريط أدوات الطرفية",
"showActions": "إظهار شريط الأدوات",
"hideToolbar": "إخفاء شريط الأدوات",
"showToolbar": "توسيع شريط الأدوات",
"moveToolbar": "نقل شريط الأدوات",
"moveToolbarHint": "اسحب لإعادة وضع شريط الأدوات",
"layout": "وضع عرض شريط الأدوات",
"layoutIcon": "أيقونة فقط",
"layoutLabeled": "الرموز والملصقات",
"layoutExpanded": "تم توسيعه بمقاييس",
"image": "إجراءات الصور (للصور فقط)",
"upload": "تحميل صورة",
"paste": "لصق الصورة",
"detachTmux": "افصل tmux",
"detachTmuxDescription": "فصل جلسة tmux",
"imageActionFailed": "فشلت عملية معالجة الصورة",
"retry": "إعادة المحاولة",
"dismissError": "تجاهل خطأ الصورة",
"cpu": "وحدة المعالجة المركزية",
"memory": "ذاكرة",
"disk": "أدك",
"statsUnavailable": "الإحصائيات المباشرة غير متوفرة",
"tmuxDetach": "فصل جلسة tmux",
"uploadImage": "قم بتحميل صورة إلى المضيف",
"uploadingImage": "جارٍ التحميل...",
"pasteImage": "لصق الصورة من الحافظة (الصور فقط)",
"openFiles": "فتح الملفات",
"openDocker": "أوبن دوكر",
"openTunnel": "نفق مفتوح",
@@ -3285,31 +3136,6 @@
"timeHours": "قبل {{count}}h",
"timeDays": "قبل {{count}}d"
},
"mobileKeyboard": {
"shift": "Shift",
"ctrl": "Ctrl",
"esc": "Esc",
"tab": "Tab",
"backTab": "⇥",
"arrowUp": "Arrow Up",
"arrowDown": "Arrow Down",
"arrowLeft": "Arrow Left",
"arrowRight": "Arrow Right",
"home": "Home",
"end": "End",
"pageUp": "PgUp",
"pageDown": "PgDn",
"delete": "Del",
"paste": "لصق",
"editQuickKeys": "تحرير المفاتيح السريعة",
"quickKeysTitle": "المفاتيح السريعة",
"quickKeysDesc": "اضغط × للإزالة. يدعم حتى 8 أحرف.",
"quickKeyPlaceholder": "مثال: sudo ",
"addQuickKey": "إضافة",
"removeQuickKey": "إزالة",
"resetDefaults": "استعادة الإعدادات الافتراضية",
"done": "تم"
},
"serial": {
"title": "منفذ تسلسلي",
"portLabel": "المنفذ",