feat: move snippets, keybinding actions and macros out of core into plugins

This commit is contained in:
LukeGus committed 2026-09-29 11:39:14 -05:00
1 parent d9bba10612
commit e0c30a4e6f
262 files changed
+9091 -10744

No files matched your search

@@ -307,7 +307,6 @@
"savedThemesLabel": "السمات المحفوظة",
"scrollbackBufferLabel": "مخزن التمرير المؤقت",
"scrollbackMaxLines": "الحد الأقصى لعدد الأسطر المحفوظة في السجل",
"startupSnippetLabel": "مقتطف بدء التشغيل",
"sudoPasswordAutoFill": "التعبئة التلقائية لكلمة مرور Sudo",
"sudoPasswordAutoFillDesc": "تخزين كلمة مرور sudo لتشغيل مقاييس المضيف ومطالبات الطرفية وغيرها من الأوامر المميزة تلقائياً.",
"sudoPasswordAutoFillLabel": "الملء التلقائي لكلمة مرور sudo",
@@ -335,7 +334,8 @@
"history": "السجل",
"localTerminal": "المحطة المحلية",
"sshTools": "أدوات SSH",
"terminal": "الطرفية"
"terminal": "الطرفية",
"macros": "وحدات الماكرو"
},
"sshTools": {
"broadcastInputPlaceholder": "اكتب هنا لبث ضغطات المفاتيح...",
@@ -363,5 +363,112 @@
"off": "عن",
"on": "على",
"title": "الإعدادات الافتراضية للاتصال"
},
"keybindings": {
"copy": "تحديد النص",
"paste": "لصق",
"sendControlCode": "إرسال إشارة Ctrl+حرف",
"sendText": "أرسل رسالة نصية",
"controlCodeLabel": "خطاب",
"textLabel": "نص لإرساله",
"appendEnterLabel": "اضغط على زر الإدخال بعد الإرسال",
"clipboardPermissionNote": "قد يطلب منك بعض المتصفحات منح إذن الوصول إلى الحافظة عند الاستخدام الأول.",
"textRequired": "أدخل النص المراد إرساله",
"controlCodeRequired": "أدخل حرفًا واحدًا لرمز التحكم"
},
"macros": {
"title": "وحدات الماكرو",
"description": "قم بتشغيل سلسلة من الأوامر المحفوظة في طرفية، وتفاعل مع ما يرسله الخادم.",
"target": "هدف",
"noTerminal": "لا يوجد طرفية مفتوحة",
"empty": "لا توجد وحدات ماكرو حتى الآن",
"emptyHint": "أنشئ ماكرو لأتمتة تدفق طرفية، مثل تسجيل الدخول أو إعادة تشغيل خدمة أو الإجابة على المطالبات.",
"create": "ماكرو جديد",
"back": "العودة إلى وحدات الماكرو",
"name": "اسم",
"namePlaceholder": "أعد تشغيل خادم الويب",
"nameRequired": "قم بتسمية الماكرو قبل حفظه",
"descriptionLabel": "وصف",
"descriptionPlaceholder": "ما يفعله هذا الماكرو (اختياري)",
"unsaved": "التغييرات غير المحفوظة",
"save": "يحفظ",
"saved": "تم حفظ الماكرو",
"saveFailed": "تعذر حفظ الماكرو",
"delete": "يمسح",
"deleteTitle": "هل تريد حذف هذا الماكرو؟",
"deleteBody": "سيتم حذف \"{{name}}\" نهائياً. لا يمكن التراجع عن هذا الإجراء.",
"deleted": "تم حذف الماكرو",
"cancel": "يلغي",
"run": "يجري",
"stop": "قف",
"running": "جري...",
"completed": "اللمسة النهائية الدقيقة",
"failed": "فشل الماكرو",
"loadFailed": "تعذر تحميل وحدات الماكرو",
"needTerminal": "افتح وقم بتوصيل طرفية أولاً",
"noSteps": "لا يحتوي هذا الماكرو على أي خطوات حتى الآن. أضف خطوة واحدة أدناه.",
"addStep": "خطوات إضافية",
"stepNumber": "الخطوة {{number}}",
"removeStep": "خطوة الإزالة",
"confirmRunTitle": "هل تريد تشغيل هذا الماكرو؟",
"confirmRunBody": "\"{{name}}\" سيرسل أوامر إلى {{host}}.",
"confirmRunAction": "تشغيل الماكرو",
"stepTypes": {
"send": {
"label": "إرسال الأمر",
"help": "يكتب النص في الطرفية، تمامًا كما لو كنت أنت من كتبته."
},
"wait": {
"label": "انتظر حتى يتم إخراج البيانات",
"help": "يتوقف مؤقتًا حتى يقوم الخادم بطباعة النص الذي تحدده، مثل مطالبة كلمة المرور."
},
"delay": {
"label": "يوقف",
"help": "ينتظر فترة زمنية محددة قبل الخطوة التالية."
},
"if": {
"label": "إذا احتوى الناتج",
"help": "يقوم بفحص كل ما طبعه الخادم حتى الآن، ثم يقوم بتشغيل أحد الفرعين."
},
"repeat": {
"label": "يكرر",
"help": "يقوم بتنفيذ الخطوات الموجودة بداخله لعدد محدد من المرات."
}
},
"send": {
"text": "أمر أو نص",
"textPlaceholder": "systemctl restart nginx",
"pressEnter": "اضغط على زر الإدخال بعد الإرسال",
"pressEnterHelp": "قم بإيقاف تشغيل هذا الخيار لكتابة نص دون إرساله."
},
"wait": {
"pattern": "انتظر حتى يحتوي الناتج على",
"patternPlaceholder": "كلمة المرور:",
"timeout": "الاستسلام بعد",
"onTimeout": "إذا لم يظهر أبداً",
"stop": "أوقف الماكرو",
"continue": "استمر على أي حال"
},
"delay": {
"duration": "انتظر"
},
"ifStep": {
"pattern": "إذا احتوى الناتج",
"patternPlaceholder": "نشط: نشط (قيد التشغيل)",
"then": "ثم افعل هذا",
"else": "وإلا فافعل هذا",
"emptyBranch": "لا توجد"
},
"repeat": {
"count": "عدد المرات",
"times": "أوقات"
},
"match": {
"useRegex": "مطابقة مع تعبير نمطي",
"useRegexHelp": "اترك هذا الخيار فارغًا لمطابقة النص تمامًا كما هو مكتوب.",
"invalidRegex": "هذا ليس تعبيرًا نمطيًا صالحًا، وسيتم مطابقته كنص عادي."
},
"seconds": "ثوانٍ",
"secondsShort": "{{count}}s"
}
}