نحو نهضة حقيقية - تعريب الجافاسكريب

فكرة خطرت ببالي وبدأ التنفيذ، ثم ها هي أول لبنة في بناء أسأل الله أن يتمه وينفع به.

تعريب الجافاسكربت

مشروع مفتوح المصدر: https://github.com/javascript-in-arabic/core

لقد تصدرت اللغة الإنجليزية في كل مجالات الحياة بعدما كانت لغة كتاب الله هي اللؤلؤة المتألقة والمبتغى لكل طالب علم، فقد انعكست القاعدة وتبدلت الأوضاع. وأظن أن ما نشر تلك اللغة هي الحروب والغزو الذي قامت به بريطانيا أو المملكة المتحدة.

فقد وجب علينا نحن المسلمين عموما (والعرب خصوصا) أن نعيد منارة العلم على بحر اللغة العربية وأهمها العلوم التقنية.

كيف نعيد تشغيل منارة العلم

- مما يسرع هذا هو وجود دولة تدعم البحث العلمي الذي يصدر إجبارا باللغة العربية وينشر في مواقع ومجلات عربية ووضع بعض النسخ المترجمة ووضع محتوى بما يكفي فقط لجذب انتباه بقية العلماء للأبحاث فمثلا يوضع الملخص والنتائج للبحث. فلو استطعنا أن نسبق البقية في مضمار العلم والاكتشافات سيجبرون قصرا على تعلم اللغة العربية.

- وأيضا قبل كل ذلك أن يتم تعريب العلوم الموجودة، لربط أطفالنا وشبابنا (علماء المستقبل) باللغة العربية، والترسيخ في عقولهم المصلحات العربية بدلا من تلك الإنجليزية.

- وأيضا من أحدى الاقتراحات أن يتم تقديم منح لطلاب العلم من الناطقين باللغات الأجنبية ليدرسوا في بلادنا وتحفيزهم وحتى إن وصل الأمر أن يُدفع للنابغين منهم مبالغ مالية ليقدروا على تحمل نفقة العيش.

ضوء خافت ينبثق

إنني حينما ابتدأت هذا المشروع، لم تكن المحاولة الأولى، إنما ذلك الشغل الشاغل لمحبي لغتهم والمعتزين بها، التي كانت لغة العلم وستعود بإذن الله. فقد وجدت بعضهم بدأ يوطئ للعلم حتى يسلك طريقه لمكانه الطبيعي.

- _**الرياضيات**_: التي كنت أدرسها ،في الأرض التي ولدت بها مصر، خلال فترة التعليم الأساسي، حيث كانت مميزة عن الفيزياء والكيمياء، محببة للقلب مع محبتنا للأخريين؛ فقلوبنا تهفوا للرموز العربية في المعادلات والحسابات الرياضيات.

- _**لغة خوارزم**_: حيث قام أحد الأخوة بعمل لغة برمجة عربية والتي تختلف في أنها لا تترجم للغة عالية (high-level)، [الصفحة الرئيسية](https://alkhawarizm.org/).

- _**خط.سين**_: حيث قام "غسان السقاف" بعمله الرائع وتنفيذ الفكرة التي راودتني ففضفضت بها لصديق لي، ثم ببحث على جوجل ظهر لي موقعه ([خط](https://khatt.org/)). يممكنا القول أنه عرَّب بعضا من latex.


طريق وعر

تنويه: هذه المشكلات تم رصدها في 1442

  •  من المشكلات ملف "اقرأني"، الذي يعرض في جيتهاب ومدير حزم النود "npm"، إذ يعرض بشكل أساسي مكتوبا بالاتجاه من اليسار لليمين، ومما هو مطلوب أن نقوم بتقديم طلب لهم أن يحلوا هذه المشكلة، وبطريقة غير مباشرة أن ننشر إضافة للمتصفحات (مثلا جوجل كروم) بحيث تقوم بتعديل اتجاه الكتاب إذا بدأ السطر بحرف من اللغة العربية.
    •   والحل الذي انتقيته الآن هو وضع كل سطور (markdown) داخل قسم لغة الوسوم التشعبية، لوت (HTML)، ووضع خاصيته `dir=rtl`.
  • وأيضا نجد نفس المشكلة في الكود وخصوصا إن أردت الكتابة في "VSCode" وهو ما يمكن حله أيضا بعمل إضافات له لكي يدعم الكتابة من اليمين لليسار، إلى أن يقوموا هم باتاحة الكتابة من اليمين لليسار.
  • ومن العقبات أن الكون يصعب قرآءته لأنه لا يحصل له تلوين "Syntax Hightlighting" كما في باقي اللغات والأكواد البرمجية ولذا يجب أن نقوم بعمل إضافة لمحررات الأكواد.
  • ومشكلة أخرى تتعلق بطبيعة كتابة اللغة العربية، فما وجدته أن اللغات اللاتينية وما يكتب بحروفها تكتب بحروف مقطعة عند التعبير عن الكلمات، على عكس اللغة العربية. وما المشكلة؟ إنها تكمن في أن كافة فروع العلم وحتى المجالات غير العلمية والجوانب المختلفة من الحياة تعتمد على الكلمات المختصرة أو ما يدعى في الإنجليزية بـ "acronym". وحل هذا بسيط جدا وذلك بكتابة الحروف العربية منفصلة أيضا، أبهرتك أليس كذلك؟! لكن يمكننا أن نفعل هذا عند الكتابة بالقلم ولا يمكننا أن نقوم بهذا على الحاسوب أو الهاتف الذكي إلا بوضع مسافات أو أي حرف من غير محارف اللغة مثل النقطة ".". وأنا أقترح أن نجعل مفتاح"CAPS" هو ما يجعل الحروف مقطعة حين الكتابة والضغط عليه متزامنين، وهذا يتطلب إلغاء الوظيفة المعتادة له في اللغات اللاتينية وتوظيفه كما نريد في اللغة العربية.

كيف نحل كل ذلك

لتحقيق الغاية لن نقف مكتوفي الأيدي تاركين الغرب يستحوذ على تقديم الخدمات والمنتجات البرمجية، فإنه على المدى البعيد ستكون منتجاتنا فهي المتصدرة والتي تدعم اللغة العربية بشكل رئيسي ثم نعطي بعد ذلك الاهتمام لما بعدها من الروافد من اللغات، إن شاء الله.

طريقة الاستخدام

❯ npm i -D @arabi/core && npm i @arabi/translate @arabi/maps

 


const arabi = require("@arabi/core");
const arabiMaps = require("@arabi/maps");

const options = {
  input: "/path/to/file/or/dir",
  output: "/another/path", // the output is the same type as input
  // if input is dir, and you have an entry point
  // otherwise all files will be translated independently
  entry: "/path/to/the/entry",
  maps: arabiMaps.window,
};

arabi.translate(options);

 

بعض الأمثلة

يمكنك الوصول للأمثلة من خلال المسار الفرعي "./أمثلة"، حيث يمكنك النظر فيها مباشرة واستكشاف كيف تم التعريب بناءا على معرفتك بالجافاسكريبت.

المثال رقم اثنين


لوحة لغة الوسوم التشعبية (لوت)

المثال الرابع "./أمثلة/4.لوحة-لغة-الوسوم-التشعبية/"

هذه مجموعة من وحدات الإكما (ECMAscript 6)، المتصلة معا والتي يتم ترجمتها من خلال المكتبة هذه، ثم يتم تجميعها من خلال مُحَزِّم الويب_باك. كما قمنا بالاستعانة بمحمل البابل لمعالجة الكود وتحويله.

عند تنفيذ سطري الأوامر أدناه، سيفتح لك المتصفح الافتراضي على الخادم المحلي (localhost).

❯ npm i
❯ npm start

الخطوات القادمة

- النهوض بما تم التعليق به داخل الكود، قم بالبحث عن `TODO`.
- إنتاج "خرائط المصدر" (sourcemaps).
- إكمال محمل وإضافة ويب_باك.
- إضافات لمحررات الأكواد للتلوين النحوي (syntax hightling)، وإظهار التوقع الذكي (auto-prediction).
- واجهة السطر الأمري.
- العمل على التعريب نفسه بخرائط الترجمة، على هذا المستودع: https://github.com/javascript-in-arabic/maps.git

الترخيص

MIT

1
إعجاب
567
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !