380 lines
34 KiB
TypeScript
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 أصلي، حدد نصًا لترجمته بواسطة النموذج اللغوي مع السياق، معزولًا تمامًا عن المحادثة الرئيسية',
|
|
}
|