Skip to content

About

⁧تعريب واجهة ⁦DeepSeek Harness⁩ ودعم الاتجاه من اليمين إلى اليسار: 64 نطاقاً و2953 مفتاحاً، مع ورقة اتجاهية (⁦RTL⁩) وتصحيحات تخطيط مبنية على قواعد التطبيق المشحونة.⁩

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

تعريب DeepSeek Harness ودعم الاتجاه من اليمين إلى اليسار

إضافة عميل غير رسمية تضيف تعريباً كاملاً ودعماً حقيقياً للاتجاه (RTL) لواجهة ‏DeepSeek Harness، التي تُشحن بالإنجليزية والصينية فقط وبلا أي دعم اتجاه في شيفرتها.

  • ‏تثبيت بأمر واحد — بلا Node، وبلا حاجة إلى الشبكة أثناء التثبيت
  • ‏64 نطاقاً و2953 مفتاحاً مترجمة إلى العربية الفصحى
  • ‏اتجاه حقيقي: الإضافة تكتب dir="rtl" بنفسها، إذ لا كود في التطبيق يكتبه إطلاقاً
  • ‏نص مختلط سليم: الأسطر التي تجمع العربية والإنجليزية تتوقف عن إعادة ترتيب مقاطعها
  • ‏الأكواد تبقى LTR: كتل الشيفرة والأوامر والمعرّفات واختصارات لوحة المفاتيح
  • ‏تصمد أمام تحديثات التطبيق، مع سكربت صيانة بنقرة واحدة للأجزاء التي لا تصمد وحدها
irm https://raw.githubusercontent.com/qrandmaster/dsh-ar-rtl/main/bootstrap.ps1 | iex

ثم أعد تحميل الواجهة واختر Settings ← General ← Language ← العربية.

تفضّل ملفاً جاهزاً؟ نزّل الحزمة من أحدث إصدار وفكّ ضغطها ثم شغّل install.bat.


ما تضيفه الإضافة بالتفصيل

المكوّن التفصيل
لغة «العربية» مسجّلة في سجل اللغات في التطبيق، وتُحفظ كتفضيل للمستخدم (preference: ar)
الاتجاه لا كود في التطبيق يقرأ dir أو يكتبه؛ الإضافة تكتبه وتراقب تغيّر اللغة
النصوص 64 نطاقاً و2953 مفتاحاً بالعربية الفصحى
النص المختلط unicode-bidi: plaintext للفقرات، مع عزل اتجاهي لـ249 قيمة تقنية
الأكواد تبقى من اليسار إلى اليمين: الكتل، الأوامر، الاختصارات، المسارات، المعرّفات
التخطيط 83 قاعدة تجاوز مبنية على نصّ قواعد التطبيق المشحونة، لا على تخمين

المتطلبات

  • ‏DeepSeek Harness مثبّت على Windows (تطبيق سطح المكتب).
  • ‏لا شبكة، ولا pnpm، ولا Node للتثبيت — الحزمة تُنسخ كما هي.

التثبيت

الطريقة الأولى: أمر واحد

irm https://raw.githubusercontent.com/qrandmaster/dsh-ar-rtl/main/bootstrap.ps1 | iex

ينزّل السكربت هذا المستودع كأرشيف، يفكّه في مجلد مؤقت، يشغّل install.ps1، ثم ينظّف نفسه.

الطريقة الثانية: تنزيل وفكّ ضغط

  1. نزّل هذا المستودع (زر Code ثم Download ZIP) أو حزمة الإصدار من صفحة الإصدارات، وفكّ الضغط.
  2. انقر install.bat نقراً مزدوجاً.
  3. أعد تحميل الواجهة، ثم Settings ← General ← Language ← العربية.

الطريقة الثالثة: من الطرفية مباشرة

powershell -ExecutionPolicy Bypass -File install.ps1              # تثبيت
powershell -ExecutionPolicy Bypass -File install.ps1 -Update       # صيانة بعد تحديث التطبيق
powershell -ExecutionPolicy Bypass -File install.ps1 -Uninstall    # إزالة كاملة

خيارات نافعة: -Profile <name> (الافتراضي desktop)، و-DshHome <path>، و-AsarPath <app.asar>، و-DryRun لعرض ما سيحدث دون تنفيذ.

الصيانة والإزالة

الأمر الدور
install.bat تثبيت أو إعادة تثبيت
update.bat بعد كل تحديث للتطبيق: يعيد اكتشاف أسماء الأصناف المُهشَّرة، ويعيد البناء، وينشر
uninstall.bat إزالة كاملة (صف التحميل + الحزمة المثبّتة)

ماذا يحدث عند تحديث DeepSeek Harness؟

الإضافة ليست داخل التطبيق، بل في ملف المستخدم:

%USERPROFILE%\.dsh\profiles\desktop\plugins\dsh-ar-rtl\      الحزمة
%USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml         صف التحميل

تحديث التطبيق يستبدل التطبيق ولا يمسّ هذا المجلد، فلا تُحذف الإضافة ولا يضيع صف التحميل. لكن مصير كل مكوّن يختلف:

المكوّن بعد التحديث السبب
اللغة والاتجاه والنصوص والعزل يبقى لا يعتمد على أي اسم صنف
مفاتيح جديدة يضيفها التحديث تظهر بالإنجليزية حتى تُترجم لا ترجمة لها بعد
تصحيحات الأيقونات والمحاذاة قد تنكسر بصمت أسماء الأصناف في التطبيق مُهشَّرة وتتغيّر مع كل بناء

ولهذا وُجد update.bat: يمسح app.asar الجديد، ويعيد اكتشاف الأصناف بالمطابقة على متن القاعدة لا على الاسم، ثم يعيد البناء والنشر. وإن تغيّر شكل مكوّن، يصرّح بذلك صراحةً ‏(COULD NOT RESOLVE) بدل أن يختفي أثره صامتاً.

التحقق من أن الإضافة تعمل

افتح وحدة تحكم المتصفح واكتب:

__DSH_AR_RTL__   // اللغة النشطة، والاتجاه، وعدد النطاقات والمفاتيح، وهل حُقنت الورقة

قيود معروفة

  • ‏أربعة أسماء إضافات تجريبية تبقى إنجليزية (Agent Teams · Auto Authorization Review · Automation tasks · Voice input): عناوينها تُقرأ من بيانات الحزمة داخل app.asar، ودالة resolveText في التطبيق لا تستشير القواميس بحكم توثيقها وتنفيذها معاً.
  • ‏الجمع العربي: صيغة القاموس الواحدة لا تعبّر عن فئات الجمع الست في العربية، فيُستعمل المفرد مع 1 والجمع مع ما فوق.
  • ‏التصحيحات البصرية تستهدف أسماء أصناف مُهشَّرة بطبيعتها؛ ولهذا وُجد update.bat.

بنية المستودع

├─ bootstrap.ps1        مدخل التثبيت بأمر واحد
├─ install.ps1          منطق التثبيت والتحديث والإزالة
├─ install.bat          ملفات النقر المزدوج
├─ uninstall.bat
├─ update.bat
├─ client.js            الحزمة المخدومة (مولَّدة، ومُلتزَمة ليعمل التثبيت بلا Node)
├─ src/rtl.css          الورقة الاتجاهية: الاتجاه، وbidi، والأكواد LTR، وتصحيحات التخطيط
├─ ar/*.json            58 قاموساً عربياً
├─ tools/
│  ├─ build-client.mjs       يدمج الورقة والقواميس في client.js
│  ├─ selftest.mjs           20 تحقّقاً على سلوك الحزمة وقت التشغيل
│  ├─ validate-ar.mjs        يطابق المفاتيح والعناصر النائبة مع المصدر الإنجليزي
│  ├─ namespace-keys.json    أسماء المفاتيح فقط (القيم الإنجليزية لا تُعاد نشرها)
│  ├─ export-keys.mjs        يعيد توليد namespace-keys.json من الجرد المحلي
│  ├─ refresh-selectors.mjs  يعيد اكتشاف أسماء الأصناف المُهشَّرة بعد أي تحديث
│  ├─ extract-current-en.mjs يعيد جرد قواميس البناء الجديد ويقارنها بالعربية
│  └─ gh-api.mjs             عميل صغير لواجهة GitHub استُخدم في نشر هذا المستودع
├─ docs/HOW-IT-WORKS.md      الشرح التقني المعمّق
├─ scripts/publish.ps1       سكربت النشر على GitHub
└─ .github/workflows/ci.yml  التحقق الآلي

ملاحظة عن لغة الملفات

‏كل الوثائق في هذا المستودع بالعربية: README.md، وCHANGELOG.md، وINSTALL-AR.md، وdocs/HOW-IT-WORKS.md.

وأما الملفات التنفيذية فتبقى إنجليزية عمداً، لثلاثة أسباب تقنية لا خيار فيها:

  • ‏**install.ps1 وpublish.ps1**: يقرأ Windows PowerShell 5.1 — وهو المفسّر الذي يشغّل ملفات .bat عند النقر المزدوج — ملفَّ السكربت الذي لا يحمل علامة ترتيب البايتات (BOM) بترميز ANSI لا UTF-8، فتظهر أي كلمة عربية داخله مشوّهة. والحل المعتاد هو إضافة BOM، لكن ذلك غير ممكن في bootstrap.ps1 (السبب التالي)، وتركه في بعض الملفات دون بعضها مربك؛ فاخترنا إبقاء الرسائل إنجليزية والوثائق عربية.
  • ‏**bootstrap.ps1**: يُنفَّذ عبر irm … | iex، وتمرير ملف يبدأ بـBOM إلى هذا المسار قد يُفشي التنفيذ بخطأ.
  • ‏ملفات .bat: يقرأها cmd.exe بترميز النظام، والعربية داخلها تُفسد الأوامر.

وتعليقات الشيفرة في tools/*.mjs إنجليزية أيضاً لأنها تُقرأ وتُعرض في محرّرات لا تضبط الترميز دائماً. والمصطلحات التقنية وأسماء الملفات والأوامر تبقى لاتينية في كل موضع، لأنها معرّفات لا نصوص.

التطوير

node tools/build-client.mjs                  # إعادة توليد client.js
node tools/selftest.mjs                      # 20 تحقّقاً على سلوك الحزمة
node tools/validate-ar.mjs                   # مطابقة القواميس
node tools/refresh-selectors.mjs --dry-run   # فحص الورقة مقابل البناء المثبّت
node tools/extract-current-en.mjs           # جرد قواميس البناء الجديد (يتطلّب app.asar)

يحتاج refresh-selectors.mjs إلى تثبيت محلي للتطبيق (يقرأ app.asar). ويعمل ‏validate-ar.mjs في وضع «المفاتيح فقط» في نسخة نظيفة من المستودع؛ وإذا وُجد مجلد ‏inventory/ المحلي (وهو يحمل القواميس الإنجليزية المستخرجة) فسيتحقق أيضاً من تطابق العناصر النائبة وأسطر الفقرات.

المساهمة

  • ‏الترجمة: عدّل ar/<namespace>.json، وحافظ على مجموعة المفاتيح كما هي، وعلى كل عنصر نائب {placeholder} بحرفه، ثم شغّل validate-ar.mjs.
  • ‏تصحيحات التخطيط: لا تُضف قاعدة إلى src/rtl.css إلا ومعه في تعليق نصّ القاعدة المشحونة التي تبرّرها — راجع docs/HOW-IT-WORKS.md لمعرفة السبب.
  • شغّل build-client.mjs قبل الالتزام؛ فرع التحقق الآلي يعيد البناء ويقارنه بالمصدر.

تعريب ما لا يملك مفاتيح ترجمة

بعض النصوص في التطبيق ليست مفاتيح قاموس، فلا تصل إليها ctx.locale.register. وقد عُرِّبت هذه الطبقة في الإضافة:

النصّ مصدره كيف عُرِّب
Off · Low · High · Max كتالوج مزوّد DeepSeek داخل التطبيق: أسماء مكتوبة في الشيفرة، تصل الواجهةَ كبيانات (reasoning.efforts[].name)، ولا حقل لها في تهيئة المزوّد طبقة في الصفحة: src/effort-ar.js — تتعامل مع أزرار القوائم المنسدلة وحدها، ولا تلمس متن المحادثة، ولا تُعيد تسمية اسم نموذج منفرد، وتُعيد الأصل عند الإيقاف. اختبرها tools/selftest-effort.mjs
نصّ أوّل زر في شريط عنوان التطبيق (يظهر مقطوعاً) الشل يبني شريط قوائمه في Shadow DOM ويبدأه عند 48px، وهي قيمة تفترض أزرار النافذة على اليمين؛ وفي ويندوز عربي تُنقل إلى اليسار فيقع الزرّ تحتها src/rtl.css (الطبقة 12): يُزاح الشريط داخل RTL بمتغيّر قابل للضبط --dsh-ar-rtl-titlebar-start، افتراضه 152px

ملاحظة: قائمة التطبيق الأصلية (About · Check for Updates · Manage dsh Command · Exit) تُبنى في العملية الرئيسية لـElectron من قاموس الشل الذي لا يحمل إلا الإنجليزية والصينية، ولا تصل إليها أي إضافة. تعريبها يقتضي رقع app.asar — وهو يُمحى مع كل تحديث للتطبيق، فتُرك عن قصد.

الرخصة

‏MIT — راجع LICENSE. هذا المشروع غير رسمي وغير منتسب إلى DeepSeek ولا مدعوم منه، ولا يحتوي أي شيفرة من التطبيق ولا يعيد نشر نصوصه الإنجليزية المستخرجة؛ إنما القواميس المترجمة والورقة الاتجاهية وملف الإضافة فقط.

About

⁧تعريب واجهة ⁦DeepSeek Harness⁩ ودعم الاتجاه من اليمين إلى اليسار: 64 نطاقاً و2953 مفتاحاً، مع ورقة اتجاهية (⁦RTL⁩) وتصحيحات تخطيط مبنية على قواعد التطبيق المشحونة.⁩

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages