تطوير البرمجيات بالعربية المسائل والطرائق

1,912 views
1,679 views

Published on

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

Published in: Technology
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,912
On SlideShare
0
From Embeds
0
Number of Embeds
216
Actions
Shares
0
Downloads
34
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

تطوير البرمجيات بالعربية المسائل والطرائق

  1. 1. ‫مخيم غوغل للتدريب‬ ‫تطوير البرمجيات بالعربية‬ ‫المسائل والطرائق‬ ‫طه زروقي‬ ‫المدرسة الوطنية العليا للمعلوماتية الجزائر‬ ‫‪Taha.zerrouki@gmail‬‬
  2. 2. ‫الشكالية‬ ‫‪‬‬ ‫‪‬‬ ‫أهمية تطوير البرمجيات بالعربية‬ ‫المسائل التقنية المتعلقة‬
  3. 3. ‫أهمية تطوير البرمجيات بالعربية‬
  4. 4. ‫أهم المسائل‬ ‫‪‬‬ ‫التعامل مع الترميز‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫اختيار الترميز‬ ‫ترميز صفحات الويب‬ ‫إعداد النظام‬ ‫التعامل البرمجي‬ ‫اليونيكود‬ ‫عرض النص‬ ‫‪‬‬ ‫‪‬‬ ‫الكتابة من اليمين إلى اليسار‬ ‫تشبيك الحرف‬
  5. 5. ‫الترميز‬
  6. 6. ‫ترميز العربية‬ ‫ترميز‬ ‫ 6-9588-‪ISO‬‬ ‫وندوز 6521‬ ‫)6521 ‪(CP‬‬ ‫يشمل العربية والفرنسية‬ ‫والنجليزية‬ ‫8-‪UTF‬‬ ‫- متعدد اللغات‬
  7. 7. ‫مسألة التراميز في اللغات الخرى‬ ‫‪‬‬ ‫غير متعلقة بالعربية فقط‬
  8. 8. ‫ترميز صفحات الويب‬
  9. 9. Windows 1256
  10. 10. UTF-8
  11. 11. HTML‫ترميز الملف‬ ‫ نضع‬HTML ‫لتحديد الترميز في ملف‬ <head>  <META http-equiv="Content-Type" content="text/html; charset=UTF-8">  </head>  
  12. 12. ‫ترميز الملفات‬
  13. 13. ‫ترميز ملف‬
  14. 14. ‫ترميز ملف‬
  15. 15. ‫إعداد نظام التشغيل‬
  16. 16. ‫إعداد النظام‬ ‫‪‬‬ ‫إعداد النظام إذا كان ل يدعم العربية تلقائيا‬ ‫‪‬‬ ‫‪‬‬ ‫ظهور رموز غريبة‬ ‫تق ّع الحروف‬ ‫ط‬
  17. 17. ‫مشاكل عرض البرامج على وندوز‬
  18. 18. ‫إعداد النظام‬ ‫‪‬‬ ‫‪‬‬ ‫إعدادات إقليمية‬ ‫تمكين النصوص مثل العربية‬
  19. 19. ‫إعداد النظام‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫للتعامل مع البرمجيات التي‬ ‫ل تستخدم يونيكود، تحديد‬ ‫الترميز التلقائي‬
  20. 20. ‫الترميز العالمي المو ّد‬ ‫ح‬ ‫‪Unicode‬‬
  21. 21. ‫‪Unicode‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫هي مجموعة رموز عالمية تستخدم لتعريف جميع الرموز‬ ‫والحروف المستخدمة في أغلب لغات العالم‬ ‫يستخدم من 1 إلى 4 بايت.‬ ‫قابل للثراء‬ ‫‪Unicode.org‬‬
  22. 22. Unicode
  23. 23. ‫تمثيل يونيكود‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫هناك ثلثة أنواع رئيسية تستخدم حاليا لترميز ‪:Unicode‬‬ ‫8-‪UTF‬‬ ‫وهو المفضل لدى مبرمجي الويب، حيث يستخدم 1 بايت إذا كانت‬ ‫الرموز موجودة في ترميز ‪ ،ASCII‬وتستخدم 2 إلى 4 بايت للرموز‬ ‫المعقدة.‬ ‫61-‪UTF‬‬ ‫هذا الترميز يستخدم إما 2 بايت للترميز إذا كانت الرموز موجودة في‬ ‫‪) Basic Multilingual Plane) BMP‬و4 بايت للرموز الغير‬ ‫موجودة.‬ ‫23-‪ : UTF‬يستخدم 4 بايت على الدوام.‬
  24. 24. ‫تمثيل يونيكود‬ 好 ‫א‬ A U+233B4 U+597D U+05D0 U+0041 Code point F0 A3 8E B4 E5 A5 BD D7 90 41 UTF-8 D8 4C DF B4 7D 59 D0 05 41 00 UTF-16 B4 33 02 00 7D 59 00 00 D0 05 00 00 41 00 00 00 UTF-32
  25. 25. ‫الحروف العربية في اليونيكود‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫العربية الساسية‬ ‫العلمات القرآنية‬ ‫العربية الموسعة‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫الفارسية‬ ‫الردو‬ ‫البشتو‬ ‫الكردية‬ ‫اللغات الفريقية‬ ‫التراكيب مثل ل، ل‬
  26. 26. ‫العلمات القرآنية في اليونيكود‬
  27. 27. ‫أحرف التحكم‬
  28. 28. ‫التعامل مع التراميز‬
  29. 29. Python ‫يتعامل بيثون مع اليونيكود بطريقة شفافة‬        #!/usr/bin/python # -*- coding=utf-8 -*string=u"‫"العربية‬ print len(string) print string[3] >>7 >>‫ر‬ 
  30. 30. ‫‪PHP‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪ Php‬ل يتعامل بطريقة شفافة مع اليونيكود، لذا نحتاج‬ ‫لبعض الدوال والمكتبات للتعامل معها، أو باعتبارها سلسلة‬ ‫بايتاتت‬ ‫الستعانة ببعض المكتبات مثل ‪mbstring‬‬ ‫مكتبة ‪ar-php‬‬
  31. 31. ‫‪Ar-PHP.org‬‬ ‫‪‬‬ ‫‪‬‬ ‫مزايا مشروع ‪ PHP‬واللغة العربية‬ ‫• التلخيص اللي للنص العربي‬ ‫• البحث بدللة ساق الكلمة‬ ‫• معالجة إظهار الحروف العربية المتصلة‬ ‫• عرض التواريخ بالعربية أو الهجرية‬ ‫• الترجمة اللفظية للكلمات‬ ‫• التفقيط: كتابة الرقام العربية‬
  32. 32. ‫‪MySQL‬‬ ‫‪‬‬ ‫إضافة استعلم ‪ MYSQL‬هذا كي ينفذ مباشرة بعد التصال‬ ‫بقواعد البيانات:‬ ‫;'8‪ set character_set_server='utf‬‬ ‫;’8‪ set names 'utf‬‬
  33. 33. MySQL php ‫أو بلغة‬       <?php mysql_connect($db_hostname, $db_username, $db_password); mysql_query("set character_set_server='utf8'"); mysql_query("set names 'utf8'"); // The rest of you php code! ?> 
  34. 34. ‫العرض‬
  35. 35. ‫العرض‬ ‫‪‬‬ ‫ثنائية التجاه‬ ‫‪‬‬ ‫تشبيك الحروف‬
  36. 36. ‫ثنائية التجاه‬
  37. 37. ‫التجاهات‬ ‫‪‬‬ ‫المنغولية‬
  38. 38. ‫التجاهات‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫الصينية‬ ‫اليابانية‬ ‫الكورية‬
  39. 39. HTML ‫التجاه‬ ‫استعمال محدد التجاه‬  dir = LTR | RTL  LTR: Left-to-right text or table.  RTL: Right-to-left text or table. <p dir=‘rtl’>  <html dir=‘rtl’>  
  40. 40. CSS div { direction:rtl; }  Direction : rtl, ltr , inherit 
  41. 41. ‫أحرف التحكم‬
  42. 42. RLE  ‫مثال‬ PDF <title>‫‫#&)المشروع)تجريبي‬x202C;</tit le>
  43. 43. ‫العرض‬ ‫‪‬‬ ‫ثنائية التجاه‬ ‫‪‬‬ ‫تشبيك الحروف‬
  44. 44. ‫تشبيك الحروف‬ ‫‪‬‬ ‫‪‬‬ ‫اختيار شكل الحرف المناسب حسب السياق‬ ‫يجرى عادة على مستوى الخط‬
  45. 45. ‫تشابك الحروف في الهندية‬
  46. 46. ‫البرامج التي ل تدعم العربية‬ ‫‪‬‬ ‫بعض البرامج ل تستخدم إعدادات النظام في التعامل مع‬ ‫الحروف‬
  47. 47. ‫البرامج التي ل تدعم العربية‬ ‫‪‬‬ ‫استعمال برامج وسيطة‬ ‫/‪http://tadween.sourceforge.net‬‬ ‫‪‬‬
  48. 48. ‫برمجيا‬ ‫‪‬‬ ‫لتطوير بعض التطبيقات التي ل تستخدم ما يوفر نظام‬ ‫التشغيل، أي لها محرك المعالجة الرسومية الخاص مثل:‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫برامج التصميم والرسم‬ ‫اللعاب‬ ‫نستعين بمكتبات ‪Bidi‬‬ ‫‪GNU Fribidi : fribidi.org‬‬ ‫‪ Python friBidi : pyfribidi.sf.net‬‬ ‫‪‬‬
  49. 49. ‫خوارزمية ‪BiDi‬‬ ‫في الذاكرة‬ ‫0 1 2 3 4 5 6‬ ‫ا‬ ‫ل ع ر‬ ‫ب ي ة‬ ‫في العرض‬ ‫معالجة‬ ‫العربية‬
  50. 50. ‫مثال لستعمال ‪pyfribidi‬‬ ‫‪‬‬ ‫لعبة كلمات عربية، اجمع‬ ‫الحروف لتكوين الكلمات‬ ‫المطلوبة على الشاشة‬ ‫‪http://arabicwordslide.sf.net‬‬ ‫‪http://arabicwordslide.sf.net‬‬
  51. 51. pyfribidi  pyfribidi import log2vis self.image = self.font.render(log2vis(_SCORE+" %d" % self.score), 1, (255,255,255))  Bidi(s)  Shape(s) 
  52. 52. ‫أحرف التحكم في التشبيك‬ ‫‪‬‬ ‫كتاب التاريخ الهجري : 3341 هـ‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫ه + ـ ه هـ‬ ‫ه + = ‪ZWJ‬ه‬ ‫‪Zero width joiner‬‬ ‫‪U+200D‬‬
  53. 53. ‫أحرف التحكم في التشبيك‬ ‫‪‬‬ ‫ويك لول الصبر ما كنـ‬ ‫ـت ملت الكيس تبرا‬
  54. 54. ‫أحرف التحكم في التشبيك‬ ‫‪‬‬ ‫المدرسة الوطنية العليا للعلم اللي‬ ‫‪ ‬متوتعتإتآ‬ ‫•‬ ‫موعإآ‬ ‫‪Zero width non joiner‬‬ ‫‪‬‬
  55. 55. ‫مشاريع‬
  56. 56. ‫مشاريعنا‬
  57. 57. ‫للتصال‬ ‫‪ ‬مدونتي ‪http://blog.tahadz.com‬‬ ‫للتصال‬ ‫‪Taha.zerrouki@gmail.com ‬‬ ‫معلومات وروابط المشاريع على مدونتي‬

×