PHP واللغة العربية م . خالد الشمعة نقاط هذا العرض التقديمي  بيئة التطوير الحرة المفتوحة المصدر لتطبيقات الويب  طبيعة تفاعلنا مع عالم.

Download Report

Transcript PHP واللغة العربية م . خالد الشمعة نقاط هذا العرض التقديمي  بيئة التطوير الحرة المفتوحة المصدر لتطبيقات الويب  طبيعة تفاعلنا مع عالم.

‫‪ PHP‬واللغة العربية‬
‫م‪ .‬خالد الشمعة‬
‫نقاط هذا العرض التقديمي‬
‫‪ ‬بيئة التطوير الحرة المفتوحة المصدر لتطبيقات الويب‬
‫‪ ‬طبيعة تفاعلنا مع عالم البرمجيات الحرة المفتوحة المصدر‬
‫‪ ‬مشروع ‪ PHP‬واللغة العربية‬
‫‪ ‬كيف كانت البداية؟ من صندوق الرمل إلى العالم!‬
‫‪ ‬منتجات المشروع وطرق االستفادة منها‬
‫‪ ‬ما هي الخطوات التالية؟‬
‫بيئة ‪LAMP‬‬
‫‪ ‬نظام التشغيل ‪Linux‬‬
‫‪ ‬مخدم الويب ‪Apache‬‬
‫‪ ‬قاعدة البيانات ‪MySQL‬‬
‫‪ ‬لغة البرمجية ‪PHP, Perl, Python‬‬
‫أسباب االستهالك السلبي‬
‫‪ ‬الطابع الفردي في العمل البرمجي (ثقافة البطل)‬
‫‪ ‬ضعف مهارات تنظيم وتنسيق العمل الجماعي‬
‫‪ ‬حاجز اللغة األجنبية‬
‫‪ ‬فقد الثقة بالنفس‪ ،‬والشعور بالتأخر زمنيا ومهاريا‬
‫أشكال المساهمة اإليجابية‬
‫‪ ‬طرح فكرة أو عرض اقتراح أو حتى إبداء رأي‬
‫‪ ‬مشاركة في اختبار أو تقييم منتج مفتوح المصدر‬
‫‪ ‬تعريب برمجية حرة مفتوحة المصدر‬
‫‪ ‬المساهمة في تطوير وبرمجة منتج مفتوح المصدر‬
‫تغيير قواعد اللعبة‬
‫‪ ‬علينا االنطالق من فكرة خدمة لغتنا العربية وذلك من خالل‬
‫جملة من البرمجيات والحلول المخصصة للتعامل معها‪.‬‬
‫‪ ‬سيكون لنا في هذا المضمار أفضلية نسبية عن سوانا‬
‫كوننا األعرف بلغتنا واألعلم بخفاياها‪ ،‬وهو ما سيزيل‬
‫حاجز الرهبة أو التردد حول أهمية المشاركة التي نضيفها‬
‫إلى مجتمع البرمجيات الحرة المفتوحة المصدر‪.‬‬
‫مشروع ‪ PHP‬واللغة العربية‬
‫‪ ‬مشروع فردي بدأ في كانون الثاني ‪ /‬يناير ‪2006‬‬
‫‪ ‬هدف المشروع هو تطوير مكتبة حرة مفتوحة‬
‫المصدر من الوظائف لدعم ومعالجة النصوص‬
‫العربية بخصائصها وخصوصياتها‪.‬‬
‫‪ ‬الموقع على شبكة الويب‪www.ar-php.org :‬‬
‫كيف كانت البداية؟‬
‫‪ ‬المشكلة‪ :‬البحث عن النصوص العربية في قاعدة‬
‫‪ MySQL‬للبيانات‪.‬‬
‫‪ ‬الحل‪ :‬تم تطوير صنف ‪ ArQuery‬ليقوم ببناء قسم‬
‫‪ Where‬من استعالم ‪ SQL‬يستفيد من تقنية‬
‫‪ Regular Expressions‬لمطابقة النص العربي‪.‬‬
‫أعراض مشكلة البحث‬
‫‪ ‬البحث الحرفي يعجز عن التعامل مع حاالت منها‪:‬‬
‫‪ ‬التشكيل (برمجية لن تتطابق مع برمجية)‬
‫‪ ‬عالمات التثنية (مبرمجان لن تتطابق مع مبرمجين)‬
‫‪ ‬عالمات الجمع (مبرمجون لن تتطابق مع مبرمجين)‬
‫‪ ‬أخطاء شائعة (برمجية لن تتطابق مع برمجيه)‬
‫‪ ‬الهمزات (إنجاز لن تتطابق مع انجاز)‬
‫مثال برمجي‬
‫من صندوق الرمل إلى العالم‬
‫‪ ‬تم بداية نشر الصنف في موقع ‪phpclasses.org‬‬
‫لألسباب التالية‪:‬‬
‫‪ ‬هو الموقع الذي كنت أعتمد عليه حينما كنت مستخدما سلبيا‬
‫‪ ‬قيود أقل صرامة من مكانز أخرى مثل ‪PEAR‬‬
‫‪ ‬له آلية قبول تعتمد على تدقيق مشرفين من البشر‬
‫‪ ‬ينظم مسابقة شهرية ألفضل األصناف المنشورة‬
‫المذاق الحلو للنجاح‬
‫‪‬‬
‫‪ ArQuery‬حل بالمركز الثامن من بين أكثر من ‪ 60‬صنف‬
‫نشرت في الموقع خالل شهر شباط ‪ /‬فبراير ‪.2006‬‬
‫‪‬‬
‫خالل عام ‪ 2007‬تم نشر ‪ 17‬صنفا في إطار هذا المشروع‪،‬‬
‫حصدت ‪ 7‬جوائز منها ‪ 4‬في مركز الصدارة‪.‬‬
‫‪‬‬
‫تم تأليف كتاب بعنوان ‪ PHP‬واللغة العربية نشرته دار شعاع‬
‫يتحدث بالتفصيل عن بعض الخوارزميات المستخدمة‪.‬‬
‫مزيد من النمو خالل ‪2008‬‬
‫‪ ‬تم جمع جملة األصناف المطورة ضمن مكتبة واحدة وفق‬
‫أحدث معايير البرمجة الغرضية التوجه‪.‬‬
‫‪ ‬تم إضافة توثيق معياري للشيفرة المصدرية‪.‬‬
‫‪ ‬تم بناء آلية اختبار مؤتمتة لوظائف المكتبة لضبط الجودة‪.‬‬
‫‪ ‬تم نقل الشيفرة المصدرية إلى مخدم ‪ CVS‬ونشرها على‬
‫موقع ‪sourceforge.net‬‬
‫التوثيق المعياري‬
‫‪‬‬
‫يعد التوثيق واحدا من أهم سمات االحترافية في العمل‬
‫البرمجي‪ ،‬لكنه أيضا واحد من المهام المملة كونه يستهلك‬
‫الكثير من الوقت بعيدا عن البرمجة‪ ،‬لذا وجب على المحترف‬
‫أن يجد حال وسطا ما بين شغف البرمجة ورصانة التوثيق‪.‬‬
‫‪‬‬
‫يهدف ‪ phpDocumentor‬إلى المساعدة في توليد توثيق‬
‫معياري بصيغ مثل ‪ HTML-PDF-CHM‬بشكل آلي انطالقا‬
‫من المالحظات والتعليقات المكتوبة في الشيفرة المصدرية‪.‬‬
‫ضبط الجودة باستخدام ‪PHPUnit‬‬
‫‪‬‬
‫إن إلحاق شيفرات االختبارات المؤتمتة بأي برمجية حرة مفتوحة‬
‫المصدر تمكن المستخدم من التحقق من صحة عملها على منصته‪،‬‬
‫ويمنحه مزيدا من الثقة بها كون فريق العمل المعني بتطويرها يتبع‬
‫إجراءات ضمان الجودة المتعارف عليها‪.‬‬
‫‪‬‬
‫إن فائدة توفر مثل هذه االختبارات المؤتمتة يساعد أيضا كل من‬
‫يحاول تعديل أو تطوير برمجية ما على التأكد من أن التغييرات التي‬
‫قام بها لم تتسبب في ظهور أي خلل في بقية أرجاء البرمجية‪.‬‬
‫إدارة الشيفرة المصدرية‬
‫‪‬‬
‫إن كنت مبرمجا تطمح للمساهمة يوما ما في أي مشروع برمجي‬
‫مفتوح المصدر‪ ،‬البد لك من أن تتقن طريقة التعامل مع مخدم‬
‫‪ CVS‬لتكون قادرا على استخراج الشيفرة المصدرية والحصول‬
‫عليها‪ ،‬فتقوم بعد ذلك بإضافة تعديالتك إليها‪ ،‬ومن ثم إيداع تلك‬
‫التعديالت التي أضفتها مجددا في مكنز الشيفرة المصدرية األصلية‬
‫للمشروع‪ ،‬لتصبح جزءا منه وتكون بالتالي متاحة لآلخرين‪.‬‬
‫فوائد استخدام نظام ‪CVS‬‬
‫‪‬‬
‫يسمح لعدة مطورين بالعمل بشكل جماعي على ذات الملفات‬
‫‪‬‬
‫يسمح لك بتتبع من قام بإجراء التعديالت؟ وأين؟ ومتى؟ ولماذا؟‬
‫‪‬‬
‫دليل قوي في المحكمة إلثبات تطوير البرمجية‬
‫‪‬‬
‫توفير نسخ احتياطية موزعة على أجهزة المطورين‬
‫‪‬‬
‫حفظ كافة اإلصدارات بدءا من تاريخ استخدام النظام‬
‫‪‬‬
‫توفير إمكانية التراجع عن أي من التعديالت التي تمت‬
‫نشر هذه الخبرات‬
‫المزيد والمزيد من التوسع‬
‫‪ ‬توفير المكتبة بصيغة مالئمة إلطار عمل ‪CakePHP‬‬
‫ومكتبة ‪ PEAR‬لسهولة االستخدام والتطبيق‪.‬‬
‫‪ ‬فتح باب المشاركة وتنظيمه في‪ :‬البرمجة‪ ،‬ضبط الجودة‪،‬‬
‫الكتابة‪ ،‬التسويق‪ ،‬الرسوميات‪ ،‬مساعدة المستخدمين‪.‬‬
‫‪ ‬توفير الدعم في‪ :‬التنصيب‪ ،‬الترقية‪ ،‬اإلعداد والتخصيص‪،‬‬
‫دمج وتطبيق‪ ،‬حل مشاكل‪ ،‬تحسين أداء‪ ،‬استشارة‪ ،‬تدريب‪.‬‬
‫منتجات أخرى للمشروع‬
‫‪ ‬التلخيص اآللي للنص العربي‪ ،‬وهي ميزة متاحة في‬
‫معالجات النصوص مثل ‪ Word‬أو حتى كمنتج تجاري‬
‫للويب مثل السراج من صخر‬
‫‪ ‬كشف التشابه اللفظي بين األسماء‪ ،‬فمثال‪ :‬كلينتون‪،‬‬
‫كلينتن‪ ،‬كلينطون‪ ،‬كلنتن‪ ،‬كلنتون لها جميعا القيمة‬
‫‪ K453‬فيما كلينزمان يعيد القيمة ‪K452‬‬
‫المزيد من المنتجات‬
‫‪ ‬توليد مكافئات لفظية بأحرف عربية للكلمات اإلنجليزية‪،‬‬
‫مثال كلمة‬
‫‪ Internet‬تصبح إنترنت‪ ،‬وكلمة‬
‫‪ Arizona‬تصبح أريزونه‪ ،‬وكذلك الوظيفة المعاكسة‬
‫لكتابة المسميات العربية بأبجدية إنجليزية‪ ،‬فمثال نِزار‬
‫قبَّانِي تصبح ‪Nizar Qab'bani‬‬
‫‪ ‬تحويل أي نص عربي يصف التاريخ إلى ‪Timestamp‬‬
‫أيضا وأيضا‬
‫‪ ‬التحويل فيما بين صيغة التأريخ الهجري والميالدي‬
‫إضافة إلى وظائف إظهار التأريخ باألسماء العربية‬
‫لألشهر واأليام‬
‫‪ ‬التفقيط (كتابة األرقام بالعربية)‬
‫‪ ‬التعرف اآللي على مجموعة المحارف المستخدمة لنص‬
‫عربي معطى‬
‫دعم التنقيب في البيانات‬
‫‪ ‬تحديد التعابير االسمية أو التي تتضمن أرقاما أو تواريخ‬
‫ضمن النص‪ ،‬وهي عادة ما تكون المقاطع التي تتضمن‬
‫أكبر قدر من المعلومات‪.‬‬
‫‪ ‬استخراج النصوص العربية الموجودة ضمن وثيقة‬
‫متعددة اللغات تستخدم مجموعة المحارف العالمية‬
‫الموحدة ‪ UTF-8‬في ترميزها‪.‬‬
‫!‪GD, PDF, Flash and VRML‬‬
‫‪‬‬
‫جميع هذه المكتبات تتعامل مع األحرف العربية بشكل‬
‫مصمت دون أي معالجة للسياق‪ ،‬فتظهر األحرف العربية‬
‫منفصلة عن بعضها البعض ضمن الكلمة الواحدة‬
‫‪‬‬
‫تتيح هذه المكتبة إجراء معالجة أولية على النص العربي‬
‫ليولد سلسلة رموز ‪ UTF-8‬الموافقة لألشكال التي يجب‬
‫أن تظهر عليها تلك األحرف بحسب مكانها من الكلمة‬
‫تطبيقات عملية‬
‫‪‬‬
‫إضافة إلى محرر ‪ TinyMCE‬تزوده ببعض وظائف‬
‫مشروع ‪ PHP‬واللغة العربية من خالل تقديم مجموعة من‬
‫األزرار الجديدة التي تنجز المهام التالية‪:‬‬
‫‪‬‬
‫إدخال التاريخ الحالي باللغة العربية‬
‫‪‬‬
‫إدخال التاريخ الهجري الحالي (التقويم اإلسالمي)‬
‫‪‬‬
‫التفقيط‪ :‬كتابة الرقم المحدد باللغة العربية‬
‫‪‬‬
‫تصحيح اإلعداد الخاطئ للغة لوحة المفاتيح للنص المحدد‬
‫‪‬‬
‫الترجمة اللفظية للنص اإلنجليزي المحدد بالعربية وبالعكس‬
‫ما هي الخطوات التالية؟‬
‫‪ ‬ضم هذا العمل إلى مكتبة ‪ PEAR‬المعيارية‪ ،‬وربما بعدها‬
‫إنجاز نسخة مترجمة لمكتبة ‪ ،PECL‬من يدري!‬
‫‪ ‬العمل على تقنيات تدمج ما بين اللغة العربية من جهة‬
‫والنماذج الرياضية اإلحصائية من جهة أخرى (الترجمة‬
‫اآللية بين العربية واإلنجليزية من ‪ Google‬والمشكل‬
‫اآللي المطور في مدينة الملك عبد العزيز للعلوم والتقنية)‬
‫شكرا لكم‬
‫لمزيد من المعلومات يمكن العودة إلى الموقع‬
‫المخصص لهذا المشروع على شبكة الويب على‬
‫العنوان التالي‪:‬‬
‫‪www.ar-php.org‬‬