feat: move session sharing and collab rooms into a plugin (B12)

This commit is contained in:
LukeGus committed 2026-09-23 23:42:46 -05:00
1 parent 791d8656a1
commit a276f6898c
207 files changed
+35771 -11072

No files matched your search

+2 -134
View File
@@ -667,7 +667,6 @@
"done_cli_link": "افتح وثائق واجهة سطر الأوامر"
},
"nav": {
"collab": "الاجتماعات",
"home": "الرئيسية",
"terminal": "الطرفية",
"localTerminal": "المحطة المحلية",
@@ -1036,8 +1035,6 @@
"enableAutoTmuxDesc": "حافظ على تشغيل shell وأي شيء يعمل بداخله أثناء انقطاع الاتصال وإعادة تشغيل المتصفح عن طريق التشغيل داخل tmux (يجب تثبيت tmux على المضيف).",
"enableSessionLogging": "تسجيل الجلسات",
"enableSessionLoggingDesc": "تسجيل مخرجات الجلسة الطرفية للمراجعة لاحقاً",
"allowSessionSharing": "السماح بمشاركة الجلسة",
"allowSessionSharingDesc": "يمكن مشاركة الجلسات المباشرة على هذا المضيف عبر رابط أو مع مستخدمين آخرين",
"localEchoLabel": "صدى محلي",
"localEchoDesc": "توقع ضغطات المفاتيح الآمنة القابلة للطباعة محليًا على الاتصالات البطيئة. لا يتم عرض مطالبات كلمة المرور أو مدخلات التحكم على الشاشة.",
"localEchoDefault": "استخدم الإعدادات العامة",
@@ -1571,137 +1568,11 @@
"join": "ينضم",
"sharedSessionLabel": "{{hostName}} (مشترك)"
},
"collab": {
"createRoom": "غرف جديدة",
"roomName": "اسم الغرفة",
"persistentRoom": "غرفة مستمرة",
"persistentRoomHint": "تبقى الغرف الدائمة مدرجة بعد انتهاء الاجتماع ويمكن إعادة استخدامها.",
"noRooms": "لا توجد غرف اجتماعات بعد. أنشئ غرفة لبدء اجتماع.",
"openRoom": "يفتح",
"endRoom": "انتهاء الاجتماع",
"leaveRoom": "يترك",
"deleteMember": "يزيل",
"removeMember": "إزالة {{name}}",
"removeMemberTitle": "هل تريد حذف هذا العضو؟",
"removeMemberDescription": "سيفقد المستخدم {{name}} إمكانية الوصول إلى هذه الغرفة فورًا. وسيتم فصل أي برنامج عرض SSH نشط.",
"invite": "يدعو",
"inviteTitle": "دعوة الأعضاء",
"members": "أعضاء",
"membersPanel": "أعضاء الغرفة وطلبات التحكم",
"membersWithCount": "الأعضاء ({{count}})",
"online": "متصل",
"offline": "غير متصل بالإنترنت",
"you": "(أنت)",
"hostBadge": "يستضيف",
"presenterBadge": "تقديم",
"present": "حاضر",
"presentTitle": "اصعد إلى المسرح",
"presentHost": "يستضيف",
"searchHosts": "البحث عن المضيفين",
"noHostsFound": "لم يتم العثور على مضيفين متاحين.",
"presentProtocol": "بروتوكول",
"stopPresenting": "توقف عن التقديم",
"takeOver": "تولي زمام الأمور",
"takeOverConfirmTitle": "هل تريد استبدال العرض التقديمي الحالي؟",
"takeOverDescription": "{{name}} يقدم العرض الآن. سيؤدي الاستحواذ على المنصة إلى فصل الجميع عنها.",
"emptyStage": "لا يوجد مقدمون. تفضلوا بالصعود إلى المنصة لمشاركة جلسة.",
"stageLoading": "الاتصال بالمسرح...",
"stageEnded": "انتهى العرض التقديمي",
"roomEnded": "انتهى هذا الاجتماع",
"presenterLabel": "{{name}} يقدم",
"guestLink": "رابط الضيف",
"guestLinkOn": "رابط الضيوف مُفعّل. يمكن لأي شخص لديه الرابط مشاهدة العرض.",
"guestLinkOff": "رابط الضيف معطل.",
"copyLink": "نسخ الوصلة",
"rotateLink": "تدوير الرابط",
"disableLink": "تعطيل الرابط",
"rotateLinkConfirmTitle": "هل تريد تدوير رابط الضيف؟",
"rotateLinkDescription": "سيتوقف الرابط الحالي عن العمل فوراً. سيتم فصل الضيوف المتصلين عبر SSH.",
"disableLinkConfirmTitle": "هل تريد تعطيل رابط الضيف؟",
"disableLinkDescription": "سيتم قطع اتصال عارضي SSH المجهولين على الفور وسيتوقف الرابط الحالي عن العمل.",
"linkCopied": "تم نسخ الرابط",
"roles": "الأدوار",
"users": "المستخدمون",
"searchUsers": "ابحث عن المستخدمين",
"endConfirmTitle": "هل ننهي هذا الاجتماع؟",
"endDescription": "سينتهي {{name}} للجميع ولن يكون من الممكن إعادة فتحه.",
"endPersistentDescription": "سيتوقف العرض التقديمي النشط في {{name}} . وستبقى الغرفة متاحة لإعادة الاستخدام.",
"deleteRoom": "حذف الغرفة",
"deleteConfirmTitle": "هل تريد حذف هذه الغرفة؟",
"deleteDescription": "سيتم حذف {{name}} نهائياً للجميع ولا يمكن التراجع عنه.",
"invitedTo": "لقد تمت دعوتك إلى \"{{name}}\"",
"guest": {
"title": "مقابلة",
"waiting": "في انتظار المذيع...",
"linkInvalid": "رابط الضيف هذا غير صالح أو انتهى الاجتماع"
},
"reopenFromPanel": "انتهت صلاحية علامة تبويب هذا الاجتماع. أعد فتح الغرفة من لوحة الاجتماعات.",
"requestControl": "التحكم في الطلبات",
"cancelControlRequest": "إلغاء الطلب",
"controlQueue": "طلبات التحكم",
"noControlRequests": "لا توجد طلبات معلقة.",
"grantControlTo": "قم بمنح التحكم إلى {{name}}",
"dismissControlRequest": "رفض طلب التحكم {{name}}",
"releaseControl": "التحكم في الإصدار",
"grantControl": "امنح السيطرة",
"revokeControl": "استعد السيطرة",
"controlRequestedBy": "طلب {{name}} التحكم",
"grant": "منحة",
"controlBadge": "مسيطر",
"youArePresenting": "أنت تعرض المحتوى في علامة تبويب أخرى. توقف عن العرض لتسليم المنصة.",
"created": "تم إنشاء الغرفة",
"invited": "الأعضاء المدعوون",
"roomTab": "مقابلة"
},
"sessionSharing": {
"guestView": {
"loading": "جارٍ الاتصال بالجلسة المشتركة...",
"linkInvalid": "رابط المشاركة هذا غير صالح أو منتهي الصلاحية أو تم إلغاؤه",
"rateLimited": "عدد المحاولات كبير جدًا، يرجى المحاولة مرة أخرى قريبًا",
"sessionEnded": "انتهت هذه الجلسة",
"readOnlyBadge": "للعرض فقط",
"ownerLabel": "مالك المضيف"
},
"modalTitle": "جلسة مشاركة",
"shareButton": "يشارك",
"notReadyToShare": "الجلسة غير جاهزة للمشاركة بعد",
"modeTab": {
"link": "وصلة",
"user": "مستخدم"
},
"linkModeDescription": "يمكن لأي شخص لديه هذا الرابط الانضمام، ولا يلزم وجود حساب.",
"userModeDescription": "شارك الملف مع مستخدم محدد لديه صلاحية الوصول إلى هذا المضيف. إذا لم يكن لديه صلاحية الوصول بعد، فشارك معه المضيف أولاً أو استخدم رابطًا. بمجرد المشاركة، ستظهر الجلسة في علامة تبويب \"الاتصالات\" الخاصة به.",
"permissionLevel": {
"label": "مستوى الإذن",
"readOnly": "للقراءة فقط",
"readOnlyDescription": "يمكنني مشاهدة الجلسة مباشرة ولكن لا يمكنني الكتابة أو التفاعل.",
"readWrite": "القراءة والكتابة",
"readWriteDescription": "يمكنه الكتابة والتفاعل مع الجلسة تمامًا مثل المالك."
},
"expiryLabel": "انتهاء صلاحية الرابط",
"createLinkButton": "إنشاء رابط",
"createShareButton": "مشاركة مع المستخدم",
"searchUsersPlaceholder": "ابحث عن المستخدمين...",
"noUsersFound": "لم يتم العثور على مستخدمين",
"linkCreated": "تم إنشاء رابط المشاركة",
"linkCopied": "تم نسخ الرابط إلى الحافظة",
"copyLink": "نسخ الوصلة",
"shareCreated": "تمت مشاركة الجلسة. ستظهر في علامة تبويب \"الاتصالات\" الخاصة بهم.",
"shareFailed": "فشل إنشاء المشاركة",
"userLacksHostAccess": "لا يملك هذا المستخدم صلاحية الوصول إلى هذا المضيف بعد. شارك المضيف معه أولاً، أو استخدم رابطاً بدلاً من ذلك.",
"activeShares": "الأسهم النشطة",
"noActiveShares": "لا توجد أسهم نشطة لهذه الجلسة",
"revoke": "إلغاء",
"revokeConfirmTitle": "إلغاء هذه الحصة؟",
"revokeConfirmDescription": "أي شخص يستخدم هذا الملف المشترك سيفقد الوصول إليه فوراً.",
"revoked": "تم إلغاء الحصة",
"revokeFailed": "فشل في إلغاء المشاركة",
"joinCount": "{{count}} انضم",
"joinCount_other": "{{count}} ينضم",
"expiresAt": "تاريخ الانتهاء {{date}}",
"linkShareBadge": "وصلة",
"userShareBadge": "المستخدم: {{username}}",
"loadSharesFailed": "فشل تحميل المشاركات النشطة"
"readWrite": "القراءة والكتابة"
}
},
"terminal": {
"connect": "الاتصال بالمضيف",
@@ -2239,7 +2110,6 @@
"analyticsEnabledDesc": "يرسل النظام إحصاءً يومياً مجهولاً للمستخدمين والمضيفين واستخدام الميزات للمساعدة في تحسين Termix. ولا يتم تضمين أي بيانات شخصية أو تفاصيل اتصال على الإطلاق.",
"analyticsEnabledLockedDesc": "هذا الإعداد مقفل بواسطة متغير البيئة ENABLE_TELEMETRY ولا يمكن تغييره هنا.",
"updateAnalyticsFailed": "فشل تحديث إعدادات التحليلات",
"sessionSharingGloballyEnabled": "السماح بمشاركة الجلسة",
"auditForwardingTitle": "إعادة التوجيه إلى SIEM",
"auditForwardingDesc": "أرسل نسخة من كل إدخال تدقيق إلى جامع بيانات خارجي بصيغة NDJSON. تبقى السجلات المحلية هي المصدر الموثوق.",
"auditForwardingEnvNotice": "يُستخدم متغير البيئة أيضًا لضبط عملية إعادة التوجيه؛ ويأخذ عنوان URL المحفوظ هنا الأولوية.",
@@ -2247,8 +2117,6 @@
"auditForwardingTokenStored": "رمز حامل (مخزن)",
"auditForwardingSaved": "تم حفظ إعدادات إعادة توجيه التدقيق",
"auditForwardingSaveError": "فشل حفظ إعدادات إعادة توجيه التدقيق",
"sessionSharingGloballyEnabledDesc": "يسمح هذا الخيار بمشاركة جلسات الطرفية المباشرة، وجلسات RDP، وVNC، وTelnet على مستوى الجهاز. ويتجاوز هذا الخيار جميع إعدادات المشاركة الخاصة بكل مضيف عند تعطيله.",
"updateSessionSharingFailed": "فشل تحديث إعدادات مشاركة الجلسة",
"sessionTimeout": "مهلة الجلسة",
"hours": "ساعات",
"sessionTimeoutRange": "الحد الأدنى 1 ساعة · الحد الأقصى 720 ساعة",