Files
apes-sidebar/src/client/locales-ar.ts
T

380 lines
34 KiB
TypeScript

/**
* The ar (Arabic) dictionary for the betterSidebar namespace.
*
* Mirrors the key set of `zh` in `locales.ts`. The sidebar's `t()`
* consults this dict when `attachBetterLocale(store)` has been called
* with an active better-locale store whose `active` is `'ar'`; absent
* that, the existing zh/en chain runs unchanged.
*
* Translation conventions:
* - Modern Standard Arabic (فصحى); UI text is RTL-ready (the framework
* handles direction).
* - Git vocabulary follows standard Arabic localizations (إدراج، تثبيت، فرع).
* - Placeholders keep `{name}` verbatim (interpolation runs after lookup).
* - English brand names (VS Code, Cursor, Zed, SSH, Git, HTML, PDF, Markdown)
* stay as-is.
*/
/** The ar dictionary (key-set-equal to zh, enforced by the type annotation in locales.ts). */
export const ar: Record<string, string> = {
files: 'الملفات',
explorer: 'المستكشف',
git: 'إدارة المصدر',
terminal: 'الطرفية',
editor: 'المحرّر',
editorExplorer: 'سلوك فتح الملفات',
editorExplorerDesc: 'يتحكّم في كيفية فتح الملفات',
editorExplorerMerged: 'مدمج',
editorExplorerMergedDesc: 'الملفات تتبدّل في مكانها داخل نفس النافذة؛ النوافذ الجديدة تبدأ بالشجرة مفتوحة',
editorExplorerSplit: 'منفصل',
editorExplorerSplitDesc: 'النوافذ بلا مسار هي المستكشف المستقل (شجرة فقط)؛ كل ملف يفتح نافذته الخاصة (الشجرة مرساة، مغلقة افتراضياً)',
editorTreeToggle: 'لوحة شجرة الملفات',
editorPathPlaceholder: 'مسار الملف (نسبي لدليل الجلسة أو مطلق)، Enter للفتح',
editorSearchPlaceholder: 'البحث في الملفات بالاسم…',
editorSearchNoResults: 'لا ملفات مطابقة',
editorSearchTruncated: 'نتائج كثيرة جداً — عرض قائمة جزئية',
editorEmptyHint: 'اختر ملفاً من لوحة الشجرة أو من حقل المسار بالأعلى لبدء المعاينة',
openFileNewTab: 'فتح في تبويب جديد',
openFileSide: 'فتح إلى الجانب',
openWithMenu: 'فتح بواسطة',
openWithSshSuffix: ' (SSH)',
pinOpenWith: 'تثبيت في القائمة',
unpinOpenWith: 'إلغاء التثبيت',
openWithExplorer: 'مدير الملفات',
openWithVscode: 'VS Code',
openWithCursor: 'Cursor',
openWithZed: 'Zed',
openWithSettingsSshTitle: 'مضيف SSH البعيد',
openWithSettingsSshDesc: 'فارغ = مساحة عمل محلية؛ مع user@host أو اسم مستعار SSH، تتحوّل فواتح عائلة VSCode إلى بروتوكول vscode-remote/ssh-remote ويُخفى مدير الملفات وZed والمحرّرات المخصّصة غير التابعة لعائلة VSCode من القائمة',
openWithSettingsSshPlaceholder: 'user@host أو اسم مستعار SSH',
openWithSettingsCustomTitle: 'محرّرات مخصّصة',
openWithSettingsCustomDesc: 'اسم + قالب URL (عنصر نائب {path}) + علامة عائلة VSCode؛ في الوضع البعيد، يمكن فقط لمحرّرات عائلة VSCode فتح مسار بعيد',
openWithSettingsAdd: 'إضافة',
openWithSettingsName: 'الاسم',
openWithSettingsTemplate: 'مثل cursor://file/{path}',
openWithSettingsFamily: 'عائلة VSCode',
openWithSettingsFamilyDesc: 'يتحدّث هذا المحرّر لهجة URL لـ VSCode (يدعم الفتح عبر SSH البعيد)',
openWithSettingsRemove: 'إزالة',
openWithSettingsInvalidHint: 'لن تظهر المحرّرات التي تفتقر إلى الاسم أو القالب (يلزم أن يحتوي على {path} ويبدأ بـ scheme://) في القائمة',
newTab: 'تبويب جديد',
openExplorer: 'المستكشف',
brokenSymlink: 'رابط رمزي معطوب',
openGit: 'لوحة Git',
newTerminal: 'طرفية جديدة',
terminalLimit: 'تم بلوغ حد الطرفيات (3)',
close: 'إغلاق',
closeOtherTabs: 'إغلاق التبويبات الأخرى',
closeLeftTabs: 'إغلاق التبويبات على اليسار',
closeRightTabs: 'إغلاق التبويبات على اليمين',
moveToFreeWindow: 'النقل إلى نافذة حرة',
floatDropHint: 'حرّك للفتح في نافذة حرة',
dockToSidebar: 'العودة إلى الشريط الجانبي',
pinTerminal: 'تثبيت الطرفية',
pinAgentTerminal: 'تثبيت طرفية Agent',
pinToWorkspace: 'تثبيت إلى مساحة العمل',
pinToGlobal: 'تثبيت عام',
unpinTerminal: 'إلغاء التثبيت',
pinnedTerminalTooltip: '{kind} · {scope} · {cwd}',
pinnedTerminalKindUi: 'واجهة طرفية',
pinnedTerminalKindAgent: 'طرفية Agent',
pinnedTerminalScopeWorkspace: 'مثبتة في مساحة العمل',
pinnedTerminalScopeGlobal: 'مثبتة عام',
pinnedRailLabel: 'الطرفيات المثبتة',
closePinnedTerminal: 'إغلاق الطرفية',
collapse: 'طي الشريط الجانبي',
expand: 'توسيع الشريط الجانبي',
collapseBottomPanel: 'طي اللوحة السفلية',
expandBottomPanel: 'توسيع اللوحة السفلية',
terminalError: 'فشل اتصال الطرفية',
terminalConnectFailed: 'فشل اتصال الطرفية عدة مرات',
terminalRetry: 'إعادة المحاولة',
terminalDepsFailed: 'فشل تحميل تبعية الطرفية node-pty',
terminalDepsHint: 'شغّل الأمر التالي في طرفية أو cmd على جهاز DSH للإصلاح، ثم أعد المحاولة (يبقى node-pty متزامناً مع إصدار نواة DSH):',
terminalDepsProfile: ' (الملف الشخصي المكتشف: {profile})',
preview: 'معاينة',
toc: 'الفهرس',
edit: 'تحرير',
mermaidError: 'فشل رسم Mermaid',
mermaidZoomIn: 'تكبير',
mermaidZoomOut: 'تصغير',
mermaidZoomReset: 'إعادة تعيين',
mermaidZoomHint: 'العجلة للتقريب · السحب للتحريك · Esc للإغلاق',
refresh: 'تحديث',
showInFolder: 'إظهار في المجلد',
refreshUnsavedConfirm: 'تغيّر الملف على القرص. سيؤدي التحديث إلى فقدان التعديلات غير المحفوظة. متابعة؟',
save: 'حفظ',
saved: 'تم الحفظ',
unsaved: 'غير محفوظ',
saveFailed: 'فشل الحفظ',
truncation: 'الملف كبير جداً — عرض أول 512KB',
binary: 'ملف ثنائي، المعاينة غير متاحة',
loading: 'جارٍ التحميل…',
error: 'فشل التحميل',
retry: 'إعادة المحاولة',
splitLeft: 'تقسيم يساراً',
splitRight: 'تقسيم يميناً',
splitUp: 'تقسيم لأعلى',
splitDown: 'تقسيم لأسفل',
notRepo: 'هذا الدليل ليس مستودع git',
noChanges: 'لا تغييرات',
statusTruncated: 'التغييرات كثيرة جدًا؛ يتم عرض أول 2000 إدخال فقط',
stage: 'إدراج',
unstage: 'إلغاء الإدراج',
stageAll: 'إدراج الكل',
unstageAll: 'إلغاء إدراج الكل',
commitPlaceholder: 'رسالة التثبيت (Ctrl+Enter)',
commit: 'تثبيت',
commitError: 'فشل التثبيت',
branch: 'الفرع',
worktree: 'شجرة العمل',
checkoutError: 'فشل تبديل الفرع',
history: 'السجل',
changes: 'التغييرات',
staged: 'مُدرج',
unstaged: 'غير مُدرج',
cancel: 'إلغاء',
diffEmpty: 'لا تغييرات نصية',
diffLoadError: 'فشل تحميل الفرق',
diffBinary: 'ثنائي',
diffAdded: 'مُضاف',
diffDeleted: 'محذوف',
diffRenamed: 'إعادة تسمية',
diffExpand: 'إظهار {count} صفوف أخرى',
diffCollapse: 'طي',
discard: 'تجاهل التغييرات',
discardTitle: 'تجاهل التغييرات',
discardDesc: 'هذا يتجاهل تغييرات مساحة العمل في "{path}" (غير قابل للاستعادة).',
viewCommitDiff: 'عرض فرق التثبيت',
copyShortHash: 'نسخ الهاش القصير',
copyFullHash: 'نسخ الهاش الكامل',
copySubject: 'نسخ موضوع التثبيت',
revertCommit: 'عكس التثبيت',
revertTitle: 'عكس التثبيت',
revertDesc: 'ينشئ تثبيتاً جديداً على الفرع الحالي يعكس "{subject}".',
cherryPickCommit: 'اقتطاف التثبيت',
cherryPickTitle: 'اقتطاف التثبيت',
cherryPickDesc: 'يطبّق تغييرات "{subject}" على الفرع الحالي.',
timeJustNow: 'الآن',
timeMinutesAgo: 'منذ {n} دقيقة',
timeHoursAgo: 'منذ {n} ساعة',
timeYesterday: 'أمس',
loadMore: 'تحميل المزيد',
historyLoadError: 'فشل تحميل المزيد من السجل',
produced: 'النواتج',
producedOpen: 'فتح في الشريط الجانبي',
disconnected: 'انقطع اتصال الطرفية، جارٍ إعادة الاتصال…',
exited: 'خرجت عملية الطرفية',
noSession: 'اختر محادثة لاستخدام الشريط الجانبي',
pluginNotLoaded: 'الإضافة غير محمّلة؛ التبويب غير متاح:',
hiddenFiles: 'ملفات مخفية',
parent: 'الدليل الأصل',
copied: 'تم النسخ',
copy: 'نسخ',
newFile: 'ملف جديد',
openEditor: 'فتح المحرّر',
gitDetail: 'عرض تفاصيل التغيير',
referenceFile: '@ملف',
addToConversation: 'إضافة إلى المحادثة',
copyRelative: 'نسخ المسار النسبي',
copyAbsolute: 'نسخ المسار المطلق',
download: 'تنزيل',
uploadFiles: 'رفع ملفات',
uploadFolder: 'رفع مجلد',
uploadHere: 'ارفع هنا',
uploadDropHint: 'أسقط الملفات/المجلدات هنا للرفع',
uploadDropChat: 'الإسقاط على منطقة المحادثة: إضافة صور إلى المحادثة',
uploadTo: 'رفع إلى {dir}',
uploadingTo: 'جارٍ الرفع إلى {dir}…',
uploadProgress: 'جارٍ الرفع {done}/{total}: {name}',
uploadDone: 'تم رفع {count} ملف',
uploadFailed: 'فشل الرفع: {error}',
uploadFailedUnknown: 'خطأ غير معروف',
uploadTooLarge: 'الملف كبير جداً (يتجاوز حد الرفع)',
uploadCancelled: 'تم إلغاء الرفع',
settingsNav: 'البطاقة الجانبية',
settingsIntro: 'إدارة ما تعرضه البطاقة الجانبية وكيف تتصرف',
settingsPopupDesc: 'تكوين خيارات ذات صلة بـ {feature}',
settingsDone: 'تم',
settingsOpenTitle: 'فتح افتراضياً للمحادثات الجديدة',
settingsOpenDesc: 'توسيع البطاقة الجانبية تلقائياً للمحادثات الجديدة تماماً؛ المحادثات الموجودة تحتفظ بتخطيطاتها',
settingsWidthTitle: 'الحصة الافتراضية للعرض',
settingsWidthDesc: 'الحصة الافتراضية للبطاقة الجانبية من عرض النافذة للمحادثات الجديدة (20–60)',
settingsWidthSuffix: '%',
settingsOpenPathTitle: 'فتح ملفات المحادثة في الشريط الجانبي',
settingsOpenPathDesc: 'فتح روابط الملفات في المحادثة (صفوف الأدوات، الملفات الناتجة، الإشارات) في محرّر الشريط الجانبي بدلاً من التطبيق الافتراضي للنظام',
settingsOpenToolsTitle: 'حقن أداة فتح الشريط الجانبي للنموذج',
settingsOpenToolsDesc: 'عند التفعيل، يمكن للنموذج فتح الملفات والمجلدات وصفحات HTTP(S) في الشريط الجانبي عبر أداة sidebar_open (معطّل افتراضياً)',
settingsTitleBarTitle: 'وضع توافق الموضع',
settingsTitleBarDesc: 'اختر نظام توافق الشريط العلوي: كشف تلقائي (افتراضي، محافظ) / ويب DSH الرسمي / أغلفة سطح المكتب المعروفة / مخصّص (مسافة الإزاحة + CSS مخصّص)',
settingsTitleBarStripTitle: 'مسافة الإزاحة',
settingsTitleBarStripDesc: 'ارتفاع شريط الشريط العلوي: كم بكسل تتحرك به أزرار الشريط الجانبي والمحتوى للأسفل (0–120، افتراضي 40؛ يسري تحت النظام المخصّص)',
settingsSchemeAutoTitle: 'كشف تلقائي',
settingsSchemeAutoDesc: 'محافظ: يساهم فقط معيار Window Controls Overlay API (ارتفاع التسمية التوضيحية الحقيقي)؛ بيئات الويب العادية لا تعدّل شيئاً',
settingsSchemeWebTitle: 'ويب DSH الرسمي',
settingsSchemeWebDesc: 'صراحة: الإعلان عن تشغيل في واجهة الويب الرسمية: لا أي تكيّف (حتى هندسة WCO القياسية لا تطبّق)',
settingsSchemeCustomTitle: 'مخصّص',
settingsSchemeCustomDesc: 'تحكّم كامل: حقن CSS مخصّص (يمكن أن يلغي الأنماط المدمجة) وتحديد مسافة إزاحة الشريط العلوي',
settingsSchemeDetectedSuffix: 'تم الكشف',
settingsCustomCssTitle: 'CSS مخصّص',
settingsCustomCssDesc: 'أنماط تُضاف في نهاية الصفحة (المكتوب لاحقاً يكسر التعادل في نفس الأولوية؛ استخدم !important لتلغي المتغيرات المكتوبة بواسطة JS)',
settingsCustomCssPlaceholder: '/* مثال: حجز 36px لغلاف له شريط علوي مرسوم ذاتياً */\nhtml[data-dsh-title-bar-height="36"] {\n --dsh-title-bar-strip: 36px !important;\n}',
settingsSaveFailed: 'فشل الحفظ',
settingsConflict: 'تغيّر الإعداد في نافذة أخرى — يُرجى إعادة المحاولة',
binaryNoPreview: 'لا يمكن معاينة هذا النوع من الملفات',
downloadToView: 'تنزيل للعرض',
settingsSubagentTitle: 'فتح صفحة المهام تلقائياً عند ظهور وكيل فرعي',
settingsSubagentDesc: 'توسيع البطاقة الجانبية وفتح صفحة المهام عند توليد المحادثة الحالية لوكيل فرعي جديد؛ أوقفها للفتح يدوياً',
settingsJobsTitle: 'فتح صفحة المهام الخلفية تلقائياً عند مهمة خلفية جديدة',
settingsJobsDesc: 'توسيع البطاقة الجانبية وفتح صفحة المهام الخلفية عند ظهور مهمة خلفية جديدة للمحادثة الحالية (كل مهمة جديدة تُطلق ذلك)؛ أوقفها للفتح يدوياً',
settingsToolsTitle: 'حقن أدوات الطرفية للنموذج',
settingsToolsDesc: 'عند التفعيل، يمكن للنموذج إنشاء وتشغيل طرفيات الشريط الجانبي عبر أدوات terminal_* الثمانية (معطّل افتراضياً)',
settingsBottomTerminalTitle: 'فتح طرفية تلقائياً عند أول توسيع للوحة السفلية',
settingsBottomTerminalDesc: 'عند توسيع اللوحة السفلية لأول مرة في الجلسة، حاول فتح تبويب طرفية جديد هناك (حصة الطرفيات ما زالت تسري؛ مفعّل افتراضياً)',
settingsFontFamilyTitle: 'عائلة خط الطرفية',
settingsFontFamilyDesc: 'عائلة خط الطرفية المخصّصة (مكدس CSS font-family مثل "JetBrains Mono", monospace؛ اتركه فارغاً لاتّباع خط السمة أحادي المسافة)',
settingsFontFamilyPlaceholder: '"JetBrains Mono", monospace',
settingsFontSizeTitle: 'حجم خط الطرفية',
settingsFontSizeDesc: 'حجم خط الطرفية بالبكسل (9–32، افتراضي 13)',
settingsFontSizeSuffix: 'px',
settingsShellTitle: 'مسار الصدفة',
settingsShellDesc: 'الصدفة التي تُطلق لطرفيات الواجهة والنموذج (مسار مطلق أو اسم تنفيذي مجرّد). الفراغ يحافظ على الترتيب القائم: yaml config.shell ← $SHELL / صدفة الدخول / Windows powershell.exe. يسري على الطرفيات المفتوحة لاحقاً',
settingsShellPlaceholder: 'مثل /bin/zsh (فارغ = تلقائي)',
settingsShellArgsTitle: 'وسائط الصدفة',
settingsShellArgsDesc: 'وسائط صدفة صريحة، مفصولة بمسافات؛ عند عدم الفراغ تستبدل الافتراضيات بالكامل (نفس عقد yaml shellArgs)',
settingsShellArgsPlaceholder: 'مثل -l (فارغ = الافتراضيات)',
settingsTabsTitle: 'محتوى الشريط الجانبي',
settingsViewersTitle: 'عارضات الملفات',
settingsGeneralTitle: 'عام',
settingsPopup: 'إعدادات الميزة',
settingsViewerCatchAll: 'شامل: أي ملف',
viewerImage: 'صورة',
viewerPdf: 'PDF',
viewerMarkdown: 'Markdown',
viewerCode: 'كود',
viewerBinary: 'تنزيل ثنائي',
viewerHtml: 'HTML',
browser: 'المتصفح',
browserPlaceholder: 'أدخل عنوان URL، مثل example.com',
browserGo: 'اذهب',
browserBack: 'للخلف',
browserForward: 'للأمام',
browserStart: 'أدخل عنوان URL لبدء التصفح (وضع الحماية)',
browserBlockedScheme: 'محظور: يُسمح فقط بعناوين URL من نوع http/https',
browserBlockedLoopback: 'محظور: لا يمكن تصفّح العناوين المحلية والداخلية هنا',
browserInvalid: 'عنوان URL غير صالح',
browserNoSandboxWarning: 'الحماية معطّلة: الصفحة الحالية تعمل بكامل صلاحيات الواجهة (يمكن إعادة تفعيلها في الإعدادات)',
htmlNoSandboxWarning: 'الحماية معطّلة: يعمل هذا HTML بنفس أصل الواجهة — يمكنه قراءة ملفات الجلسة وواجهات API الداخلية (يمكن إعادة تفعيلها في الإعدادات)',
sandboxStatusOn: 'وضع الحماية: مفعّل · لا يمكن للصفحات الوصول إلى بيانات الواجهة أو الملفات المحلية؛ قد لا تعمل تسجيلات الدخول وملفات الارتباط التابعة لجهات خارجية',
sandboxUnlock: 'تعطيل مؤقت (غير آمن)',
sandboxRestore: 'استعادة الحماية',
settingsHtmlDefaultUnsafeTitle: 'فتح معاينات HTML بدون حماية افتراضياً (غير آمن)',
settingsHtmlDefaultUnsafeDesc: 'عند التفعيل، تبدأ كل معاينة HTML مفتوحة حديثاً في الحالة غير المحمية (نفس أصل الواجهة — يمكنها قراءة ملفات الجلسة وواجهات API الداخلية)؛ يوفر صف الحالة استعادة بلمسة واحدة',
settingsHtmlSandboxTitle: 'تعطيل حماية معاينة HTML (غير آمن)',
settingsHtmlSandboxDesc: 'مع تعطيل الحماية، يعمل HTML المعاين بنفس أصل الواجهة: يمكنه قراءة ملفات الجلسة والتخزين المحلي واستدعاء واجهات API الداخلية. فعّله فقط للملفات الموثوقة بالكامل',
settingsBrowserSandboxTitle: 'تعطيل حماية المتصفح (غير آمن)',
settingsBrowserSandboxDesc: 'مع تعطيل الحماية، يعمل أي موقع تزوره بنفس أصل الواجهة: يمكنه قراءة بيانات الجلسة وانتحال جلسة تسجيل الدخول الخاصة بك. فعّله فقط للمواقع الموثوقة بالكامل',
settingsBrowserLinksTitle: 'فتح الروابط الخارجية للمحادثة في الشريط الجانبي',
settingsBrowserLinksDesc: 'عند التفعيل، النقر على رابط خارجي في المحادثة أو الواجهة يفتح الشريط الجانبي بدلاً من نافذة جديدة؛ يتحكّم في HTTP وHTTPS بشكل منفصل بالمبدلات بالأسفل؛ Ctrl/Cmd+نقر يتجاوز دائماً',
settingsBrowserHttpTitle: 'فتح صفحات HTTP في الشريط الجانبي',
settingsBrowserHttpDesc: 'عند التفعيل، النقر على رابط HTTP خارجي في المحادثة أو الواجهة يفتح الشريط الجانبي (صفحات الإضافات المعرّفة عن urlTarget تفوز)؛ Ctrl/Cmd+نقر يتجاوز دائماً',
settingsBrowserHttpsTitle: 'فتح صفحات HTTPS في الشريط الجانبي',
settingsBrowserHttpsDesc: 'عند التفعيل، النقر على رابط HTTPS خارجي في المحادثة أو الواجهة يفتح الشريط الجانبي. معطّل افتراضياً: معظم مواقع HTTPS ترفض التضمين، لذا فالمتصفح الافتراضي للنظام هو الخيار الأنسب',
settingsBrowserLoopbackTitle: 'العناوين المحلية المسموح بها',
settingsBrowserLoopbackDesc: 'قائمة بيضاء مفصولة بفواصل لعناوين الاسترجاع المحلي (مثل localhost:5174 أو 127.0.0.1:8080) يمكن للمتصفح الجانبي زيارتها؛ فارغة افتراضيًا تمنع جميع العناوين المحلية. تظل صندوق الحماية سارية — لا يمكن للصفحات قراءة بيانات الواجهة',
settingsBrowserLoopbackPlaceholder: 'مثال localhost:5174, 127.0.0.1:8080',
browserOpenExternal: 'فتح في المتصفح',
browserEmbedBlocked: 'رفض {host} التضمين',
browserEmbedBlockedDesc: 'يحظر الموقع عرضه داخل صفحات أخرى (X-Frame-Options / frame-ancestors)، لذا لا يمكن تحميله في الشريط الجانبي. افتحه مباشرة في متصفحك بدلاً من ذلك.',
browserEmbedAnyway: 'تحميل على أي حال',
subagent: 'المهام',
openSubagent: 'المهام',
subagentMainAgent: 'الوكيل الرئيسي',
subagentEmpty: 'لا وكلاء فرعيون',
subagentEmptyDesc: 'الوكلاء الفرعيون المُنتَجون تحت الوكيل الرئيسي سيظهرون هنا',
subagentRunning: 'قيد التشغيل',
subagentInactive: 'خامل',
subagentModeOneShot: 'مرة واحدة',
subagentModeContinuable: 'قابل للاستئناف',
subagentCount: '{count} وكلاء فرعيون',
subagentCountRunning: '{count} وكلاء فرعيون · {running} قيد التشغيل',
subagentDiagCorrupt: 'تالف',
subagentDiagUnsupported: 'غير مدعوم',
subagentDiagUnavailable: 'غير متاح',
subagentThinking: 'جارٍ التفكير…',
sideChat: 'محادثة جانبية (تجريبية)',
sideChatNew: 'خيط جديد',
sideChatUntitled: 'خيط جديد',
sideChatEmpty: 'لا محادثات جانبية',
sideChatEmptyDesc: 'كل محادثة جانبية هي تبويب مستقل في شريط التبويبات — ترث سياق الجلسة الحالية ولا تدخل المحادثة الرئيسية',
sideChatCreating: 'جارٍ إنشاء محادثة جانبية…',
sideChatRetry: 'إعادة المحاولة',
sideChatThreads: 'تبديل خيط / جديد',
sideChatSave: 'حفظ كجلسة جديدة',
sideChatSaveTitle: 'ترقية هذا الخيط إلى جلسة عالية المستوى في قائمة الجلسات الرئيسية',
sideChatSaved: 'تم الحفظ كجلسة جديدة',
sideChatNoTurn: 'الحفظ متاح بعد أول دور مكتمل',
sideChatPendingDrop: 'لن يُضمَّ آخر متابعة لم يُجَب عنها في الجلسة المحفوظة',
sideChatFirstPlaceholder: 'اطرح السؤال الأول — السياق موروث…',
sideChatComposerPlaceholder: 'متابعة…',
sideChatThinking: 'جارٍ التعمّق…',
sideChatThink: 'التفكير',
sideChatInjection: 'تم حقن السياق',
sideChatSend: 'إرسال',
sideChatCancel: 'إيقاف',
sideChatCancelTitle: 'إلغاء الدور الجاري (يُحتفظ بالعمل في قائمة الانتظار)',
sideChatClose: 'إغلاق الخيط',
sideChatCloseTitle: 'تحرير وكيل الخيط (يُحتفظ بالسجل)',
sideChatError: 'خطأ في المحادثة الجانبية: {message}',
jobs: 'المهام الخلفية',
jobsCount: '{count} مهمة خلفية',
jobsCountRunning: '{count} مهمة خلفية · {running} قيد التشغيل',
jobStatusRunning: 'قيد التشغيل',
jobStatusStopping: 'جارٍ الإيقاف',
jobStatusCompleted: 'اكتمل',
jobStatusKilled: 'تم الإنهاء',
jobStatusFailed: 'فشل',
jobDurationSeconds: '{seconds}ث',
jobDurationMinutes: '{minutes}د {seconds}ث',
jobDurationHours: '{hours}س {minutes}د',
jobViewOutput: 'عرض الإخراج',
jobHideOutput: 'إخفاء الإخراج',
jobNoOutput: 'لا إخراج بعد',
jobNotReadYet: 'في انتظار قراءة النموذج لإخراج هذه المهمة؛ سيظهر الإخراج هنا بمجرد أن يشغّل النموذج job_output',
jobOutputTruncated: 'الإخراج مقطوع',
jobOutputError: 'فشل قراءة الإخراج',
jobKill: 'إنهاء',
jobKillConfirm: 'انقر مجدداً للتأكيد على الإنهاء',
jobKillError: 'فشل الإنهاء',
addPluginsTabCard: 'إضافة إضافات تبويب',
addPluginsTabCardDesc: 'تسجيل صفحة شريط جانبي جديدة',
addPluginsViewerCard: 'إضافة إضافات معاينة',
addPluginsViewerCardDesc: 'تسجيل معاينة نوع ملف',
addPluginsTabDesc: 'يمكن توسيع صفحات الشريط الجانبي (التبويبات) بواسطة الإضافات. تُسجَّل الإضافات عبر خدمة ctx.betterSidebar؛ النقر على «تثبيت» ينسخ أمر التثبيت — الصقه في طرفية حيث يقيم ملف DSH الشخصي وشغّله.',
addPluginsViewerDesc: 'يمكن توسيع عارضات الملفات بواسطة الإضافات. تُسجَّل الإضافات عبر خدمة ctx.betterSidebar؛ النقر على «تثبيت» ينسخ أمر التثبيت — الصقه في طرفية حيث يقيم ملف DSH الشخصي وشغّله.',
addPluginsBrowseMore: 'تصفّح المزيد من الإضافات على GitHub (topic: dsh-better-sidebar)',
addPluginsSearch: 'البحث باسم الإضافة / الوصف…',
addPluginsNoMatch: 'لا إضافات مطابقة',
addPluginsRecommended: 'إضافات موصى بها',
addPluginsEmpty: 'لا إضافات منسّقة بعد — انشر إضافتك تحت موضوع GitHub',
openPlugin: 'فتح',
copyInstall: 'نسخ أمر التثبيت',
pluginOfficeDesc: 'معاينة حزمة Office (.docx / .xlsx / .pptx) لمحرّر better-sidebar، مع إبقاء مكتبات عرض Office الثقيلة خارج الحزمة الأساسية، تُثبَّت عند الطلب',
pluginFlowglassDesc: 'مخطط تدفق جلسة حيّ بثلاثة مسارات للمستخدم والمساعد واستدعاءات الأدوات، مع مجموعات متوازية وفروع وكلاء فرعيين وتعمّق تدريجي وحالة حيّة؛ يُسجِّل تبويب Flowglass الأصلي عند تثبيت better-sidebar ويحتفظ بدرجه المستقل كاحتياط',
pluginGitForgeDesc: 'تبويب Git Forge: مكتبة حسابات GitHub/Gitea (وغيرها من Forges) + منح لكل مشروع + سياسة دفع صارمة؛ تبقى الرموز في الأسرار المحلية (لا تدخل سياق النموذج)؛ أداة GitForge للقراءة فقط ومساعد بيانات اعتماد HTTPS للوكيل',
pluginGithubWorkbenchDesc: 'تبويب GitHub Workbench: شجرة المستودع البعيد + Issues / Pull requests / Actions مع دعم كامل للكتابة — إنشاء Issue/PR، والتعليق، والتعديل، والإغلاق/إعادة الفتح، والدمج عبر squash·merge·rebase (بتأكيد قوي)، وإعادة تشغيل CI أو إلغائها؛ يعرض مبدّل المستودعات تلقائيًا المستودعات المتاحة ويتيح البحث في المستودعات العامة؛ وبدون better-sidebar يتحول تلقائيًا إلى لوحة جانبية مستقلة على اليمين',
pluginMdExportDesc: 'يضيف زر «تصدير» إلى شريط أدوات Markdown في better-sidebar: يعرض ملف .md الحالي بنقرة واحدة كملف HTML مستقل (الجداول/كتل الأكواد/مخططات Mermaid مدمجة، والتخطيط يتبع سمة المعاينة) ويحفظه بجوار الملف، أو يصدّره PDF عبر نافذة الطباعة',
pluginCodeNavDesc: 'تنقل معاينة الكود: يكتشف اللغة تلقائياً من نوع الملف ويبرز الصياغة، مخطط الرموز (تصفية الفئات/الطرق/المتغيرات + قفزة بنقرة واحدة)، والبحث داخل الملف (إبراز كل التطابقات، السابق/التالي، مطابقة حالة الأحرف) — يتولى معاينة ملفات الكود في محرر better-sidebar',
pluginSuhuangScrollDesc: 'يربط بيئة Suhuang Scroll المحلية بإعدادات DSH وbetter-sidebar لإعداد النموذج واختبار الاتصال والتحكم في التصحيح المتواصل؛ يتطلب Suhuang Scroll Runtime وdsh-better-sidebar',
pluginGitRemotesDesc: 'تبويب Git Remotes: فرع/أصل/أمام-خلف، fetch (مع prune اختياري)، ff-only pull، والدفع فقط بعد تأكيد داخل التبويب. لا يستبدل تبويب Git المدمج للإدراج/التثبيت، ولا يقدّم force-push أو أداة دفع آلي للنموذج',
pluginSentinelDesc: 'نظام إيقاظ وكيل يحرّكه تحقّق الشروط: مستشعرات ملف/عملية/منفذ/HTTP/أمر/webhook توقظ الجلسات الخاملة عند تحقّق الشرط؛ يُسجِّل تبويب «Sentinel» مع جدول مراقبة شامل للخادم',
pluginServerDeckDesc: 'لوحة بطاقات الخوادم: بطاقة لكل خادم تعرض حالة الاتصال ونظام التشغيل ومدة التشغيل واستخدام المعالج/الذاكرة/القرص وزمن الاستجابة؛ انقر على البطاقة لفتح طرفية xterm.js تفاعلية؛ استيراد ~/.ssh/config بنقرة واحدة (يتم تجاهل أسماء مواقع Git المستعارة تلقائياً). يسجّل تبويب «الخوادم» الأصلي عند تثبيت better-sidebar ويحافظ على الدرج الجانبي المستقل كبديل',
pluginSidebarQaDesc: 'حدِّد واسأل: تحديد نص المحادثة ← السؤال في اللوحة اليمنى ← جلسة متابعات مخصّصة في نفس مساحة العمل (❓ متابعة · موضوع): نموذج سريع بلا تفكير يضغط سياق المحادثة الرئيسي ويحقنه مع الاقتباس دون مقاطعة المحادثة الرئيسية؛ المتابعات تتداخل وتستمر وتُؤرشف',
pluginSidenoteDesc: 'محادثة جانبية بأسلوب Codex + تعليقات على التحديد: أنشئ fork للجلسة الحالية في لوحة جانبية دائمة (تُؤرشف فتُخفى من قائمة الجلسات، تعمل نسخ متعددة معًا، أمر /side، تبقى بعد إعادة التحميل، والنموذج يتبع الجلسة الرئيسية)؛ حدِّد نص الـ assistant ← شارة مرقّمة + محرّر ملاحظات ← chip "N تعليقات" يُرفق برسالتك التالية، أو اسأل مباشرةً في محادثة جانبية',
pluginSshTunnelDesc: 'تبويب «SSH Tunnel»: قائمة مضيفين متعددين + منح لكل مشروع + أسرار محلية؛ أداة SSHManager للنموذج (exec/SFTP/استراتيجيات الجلسة)؛ طرفية تفاعلية مركزية وSFTP ذو عمودين',
pluginTurnReviewDesc: 'بوابة بشرية على فرق «الدور المنتهي للتو»: Approve / Request changes لكل مسار مع تعليق اختياري؛ المسارات مجمّعة حسب الجلسة الرئيسية / الوكيل الفرعي / غير منسوب؛ فرق snapshot-vs-now مضمّن قبل القرار. لا تفريع، لا /rewind',
pluginVideoPreviewDesc: 'معاينة فيديو مضمّنة (.mp4/.webm/.mov/.mkv/.avi إلخ) في محرّر better-sidebar، مدعومة بمسار /video مخصّص يدعم HTTP Range (206) — التحكم بالتشغيل يعمل والملفات غير مقيدة بحد mediaLimit البالغ 20MB',
pluginDocsPanelDesc: '«وثائق عامة» في شريط DSH الجانبي: ملاحظات Markdown عامة، قابلة للقراءة من أي مساحة عمل — قائمة ملفات، مخطط تفصيلي، فتح في Chrome / VS Code، وأزرار نسخ؛ دليل الوثائق قابل للتكوين (الافتراضي ~/.dsh/docs)',
pluginEgoBrowserDesc: 'متصفح الوكيل لـ DeepSeek Harness: 32 أداة ego_* تقود متصفح Chromium حقيقي، مع تبويب «متصفح ego» أصلي في الشريط الجانبي يعرض مباشرة كل صفحة يزورها الوكيل — يمكنك النقر والسحب والكتابة لتولي التحكم. يسجّل التبويب تلقائيًا عند وجود better-sidebar، وإلا يظهر كفقاعة عائمة',
pluginBilingualReaderDesc: 'اقرأ ملفات PDF في الشريط الجانبي لـ DSH: عرض PDF أصلي، حدد نصًا لترجمته بواسطة النموذج اللغوي مع السياق، معزولًا تمامًا عن المحادثة الرئيسية',
}