Upload
linuxscout
View
1.299
Download
6
Embed Size (px)
DESCRIPTION
أهمية تطوير البرمجيات بالعربية المسائل التقنية المتعلقة لتعامل مع الترميز اختيار الترميز ترميز صفحات الويب إعداد النظام التعامل البرمجي اليونيكود عرض النص الكتابة من اليمين إلى اليسار تشبيك الأحرف
Citation preview
تطوير البرمجيات بالعربية المسائل والطرائق
طه زروقيالمدرسة الوطنية العليا للمعلوماتية الجزائر
Taha.zerrouki@gmail
مخيم غوغل للتدريب
الشكالية
أهمية تطوير البرمجيات بالعربيةالمسائل التقنية المتعلقة
أهمية تطوير البرمجيات بالعربية
أهم المسائل
التعامل مع الترميزاختيار الترميزترميز صفحات الويب إعداد النظامالتعامل البرمجياليونيكود
عرض النصالكتابة من اليمين إلى اليسار تشبيك الحرف
الترميز
ترميز العربية
ISO-8859-6 UTF-8 1256 وندوز
(CP 1256)
ترميز
متعدد اللغات -
يشمل العربية والفرنسية والنجليزية
مسألة التراميز في اللغات الخرى
غير متعلقة بالعربية فقط
ترميز صفحات الويب
Windows 1256
UTF-8
HTML ترميز الملف
لتحديد الترميز في ملفHTML نضع <head> <META http-equiv="Content-Type"
content="text/html; charset=UTF-8"> </head>
ترميز الملفات
ترميز ملف
ترميز ملف
إعداد نظام التشغيل
إعداد النظام
إعداد النظام إذا كان ل يدعم العربية تلقائياظهور رموز غريبةتقّطع الحروف
مشاكل عرض البرامج على وندوز
إعداد النظام
إعدادات إقليميةتمكين النصوص مثل العربية
إعداد النظام
للتعامل مع البرمجيات التي ل تستخدم يونيكود، تحديدالترميز التلقائي
الترميز العالمي الموّحد
Unicode
Unicode
هي مجموعة رموز عالمية تستخدم لتعريف جميع الرموزوالحروف المستخدمة في أغلب لغات العالم
ت باي4 إلى 1يستخدم من.قابل للثراءUnicode.org
Unicode
تمثيل يونيكود
هناك ثلثة أنواع رئيسية تستخدم حاليا لترميز Unicode:UTF-8
بايت إذا كانت 1وهو المفضل لدى مبرمجي الويب، حيث يستخدم بايت للرموز 4 إلى 2، وتستخدم ASCII الرموز موجودة في ترميز
.المعقدةUTF-16
بايت للترميز إذا كانت الرموز موجودة في2هذا الترميز يستخدم إما Basic Multilingual Plane) BMP) بايت للرموز الغير 4و
.موجودةUTF-32 : بايت على الدوام4 يستخدم .
تمثيل يونيكود
Aא好
Code pointU+0041U+05D0U+597DU+233B4
UTF-841D7 90E5 A5 BDF0 A3 8E B4
UTF-1600 4105 D059 7DD8 4C DF B4
UTF-3200 00 00 4100 00 05 D000 00 59 7D00 02 33 B4
الحروف العربية في اليونيكود
العربية الساسية العلمات القرآنيةالعربية الموسعة
الفارسيةالردوالبشتوالكرديةاللغات الفريقية
ل، لالتراكيب مثل
العلمات القرآنية في اليونيكود
أحرف التحكم
التعامل مع التراميز
Python
يتعامل بيثون مع اليونيكود بطريقة شفافة #!/usr/bin/python # -*- coding=utf-8 -*- string=u"العربية" print len(string) print string[3]
>>7 ر<<
PHP
Php ل يتعامل بطريقة شفافة مع اليونيكود، لذا نحتاج لبعض الدوال والمكتبات للتعامل معها، أو باعتبارها سلسلة
بايتاتت الستعانة ببعض المكتبات مثلmbstring مكتبةar-php
Ar-PHP.org
مزايا مشروعPHPواللغة العربية التلخيص اللي للنص العربي •
• البحث بدللة ساق الكلمة• معالجة إظهار الحروف العربية المتصلة
• عرض التواريخ بالعربية أو الهجرية• الترجمة اللفظية للكلمات
• التفقيط: كتابة الرقام العربية
MySQL
استعلم إضافة MYSQL هذا كي ينفذ مباشرة بعد التصال بقواعد البيانات:
set character_set_server='utf8'; set names 'utf8’;
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! ?>
العرض
العرض
ثنائية التجاهتشبيك الحروف
ثنائية التجاه
التجاهات
المنغولية
التجاهات
الصينيةاليابانيةالكورية
HTML التجاه
استعمال محدد التجاه dir = LTR | RTL
LTR: Left-to-right text or table. RTL: Right-to-left text or table.
<p dir=‘rtl’> <html dir=‘rtl’>
CSS
div{direction:rtl;}
Direction : rtl, ltr , inherit
أحرف التحكم
مثال
<title>‫المشروع(تجريبي)‬</title>
PDFRLE
العرض
ثنائية التجاه
تشبيك الحروف
تشبيك الحروف
اختيار شكل الحرف المناسب حسب السياق يجرى عادة على مستوى الخط
تشابك الحروف في الهندية
البرامج التي ل تدعم العربية
بعض البرامج ل تستخدم إعدادات النظام في التعامل معالحروف
البرامج التي ل تدعم العربية
استعمال برامج وسيطة
http://tadween.sourceforge.net/
برمجيا
لتطوير بعض التطبيقات التي ل تستخدم ما يوفر نظامالتشغيل، أي لها محرك المعالجة الرسومية الخاص مثل:
برامج التصميم والرسماللعاب
نستعين بمكتباتBidi GNU Fribidi : fribidi.org Python friBidi : pyfribidi.sf.net
BiDiخوارزمية
0123456
ةيبرعلا
في الذاكرة
في العرض
العربية معالجة
pyfribidiمثال لستعمال
لعبة كلمات عربية، اجمعن الكلمات يالحروف لتكو
المطلوبة على الشاشة
http://arabicwordslide.sf.nethttp://arabicwordslide.sf.net
pyfribidi
pyfribidi import log2vis
self.image = self.font.render(log2vis(_SCORE+" %d" % self.score), 1, (255,255,255))
Bidi(s) Shape(s)
في التشبيك أحرف التحكم
: هـ1433كتاب التاريخ الهجري
ـهه + ـ ه + ه =ZWJه
Zero width joinerU+200D
في التشبيك أحرف التحكم
ويك لول الصبر ما كنـ ـت ملت الكيس تبرا
في التشبيك أحرف التحكم
المدرسة الوطنية العليا للعلم اللي
متوتعتإتآموعإآ•
Zero width non joiner
مشاريع
مشاريعنا