السلام عليكم
كنا نعمل أنا وزميل لي في الأيام الماضية على اختبار لرقعة دعم العربية في مكتبة كيفي kivy تقدم بكتابتها أحد المطورين وتنتظر دمجها منذ سنة تقريبا ، الرقعة تجلب دعم لغات عديدة من بينها الهندية ونعتقد أنها ستجلب أيضا دعم النصوص ذات الأحرف العربية
رابط الرقعة :
ما هي كيفي؟
كيفي مكتبة رسوميات تمكنك من استهداف عدة أنظمة تشغيل بعملك باستخدام لغة البرمجة بايثون ، وللتسمية نذكر لينكس ويندوز وماك و للهواتف أندرويد وآي أو إس
المشكلة
مشكلة هذه المكتبة كانت أنها لا ترسم النص العربي وفي أحسن الأحوال ترسمها بالشكل القبيح المعكوس والمقطع وغير القابل للقراءة والاستخدام
ميزة مكتبة كيفي أنها الحل الشائع لكتابة برامج بايثون لهواتف الأندرويد
وفر أحد المطورين الهنود رقعة تقوم باستخدام حرف باز لمعالجة عرض النصوص باللغة الهندية ، الرقعة تستخدم حرف باز ويمكن أن تحل مشكلة النصوص العربية
الرقعة ماتزال ضمن نقاشات الدمج منذ سنة تقريبا لدمجها ضمن آخر نسخة لكيفي، كلمني صديقي عن هذه الرقعة قبل شهر تقريبا واتفقنا على تجريب هذه الرقعة للنص العربي
مشكلة أخرى
الفرع الذي يشكل نسخة كيفي التي تحوي الرقعة بناؤه صعب ، اعتمادياته مختلفة ولا توجد بنفس الإصدارات بأغلب التوزيعات ، وتلك المشكلة كانت محيرة وتسبب أخطاء لم نكن تعرف سببها
أيضا جرت نقلة لكتابة مكتبة كيفي ل sdl2 بدلا من sdl خلال هذه الفترة مما شوش علي البناء ، فرع النسخة التي تحوي الرقعة تحوي بعض الأجزاء من sdl القديم
البناء
طبعا لن أقوم بالبناء على نظام لينكس خاصتي بل سأستخدم بيئة معزول كي لا أخرب النظام ومكتباته، قمت
بتنزيل بيئة منفصلة لأبونتو 20.04 وقمت بتعديلها قليلا لتلائم التجربة والبناء
خطوات ما بدا حلا
أمر تنصيب المكتبة كان سهلا ، نزل نسخة من المستودع كملف zip و قم بالأمر
pip3 install kivy.zip
وأيضا تحتاج التنصيب لاعتماديات كيفي المعروفة + حرف باز، بعدها الرقعة تحتاج متغير بيئة USE_HARFBUZZ أثناء التنصيب
USE_HARFBUZZ=1 pip3 install kivy.zip
الخطأ #1:
توقف البناء بعد أن فشل الربط بمكتبة sdl_ttf ، مكتبة مسؤولة عن خطوط تروتايب التي تدعم ميزات الخطوط المتقدمة
تبين لاحقا أن إصدار أبونتو من تلك المكتبة قديم ، ويجب أن أبني الإصدار الجديد الذي يستخدم حرف باز أيضا من جديد
يجدر بالذكر أننا أمام دعم كثير من التطبيقات التي تستخدم sdl للغة العربية بسبب هذا التوجه الجديد لمكتبة sdl بتوفير حرف باز كخيار لرسم الحروف
الخطأ #2:
واجه بناء sdl2 مشكلة بسبب مكتبة freetype القديمة أيضا ، قمنا ببنائها واستكملنا بناء sdl_ttf
بعد تجريب النتيجة تبين لنا أن النص العربي لا يرسم بل كمستطيلات ، سبب ذلك الأكيد هو أنني أستخدم خط لا يحوي الحروف العربية وعلي نسخ شيء ما يكون فيه حرف عربي
الخيار التقليدي هو عزيزي الخط ديجافو DejaVu Sans، كان علي نسخه وتحديده للمثال المجرب…
المشكلة الأخيرة
ظهرت اللغة العربية هكذا ، وبدا جهدنا بلا فائدة
ولكن انتبهت أن علي أن أحدد اسم النص العربي أثناء تمريره ، كنت قد حددته ولكن بطريقة خاطئة وبخطأ مطبعي، بعد الإصلاح ظهرت هذه النتيجة
حسنا ، أفضل من لا شيء!
ما يجري حاليا
بينما تستمر نقاشات التطوير أعتقد أن كيفي ستدعم اللغة العربية ، حاليا يركزون على أن حرف باز من جديد سيقوم بتوفير تلميح لاتجاه النص بحيث يمكن أن يرسم هذا النص بشكل صحيح (حسب كلام أبو الرقعة)
المشكلة كانت في هذا النص أنه دعم التوصيل أو shaping لكنه لم يدعم الاتجاهية الثنائية bidi ، النتيجة كانت نص موصول لكن غير مقروء (مثل نصوص الجن)
الرقعة لم تكن بحاجة لمراجعة مما يبدو، كنا نعتقد أنه يجب أن نكتب شيء عن أنها تحتاج عمل مع النص العربي لكنه كانوا بالفعل يعملون عليه بسبب أنه كان يشكل مشكلة لنص لغة الأوردو
تذكير لأخوتي في ترجمة ويندومايكر !
لقد تأخرت عليكم في دمج الترجمة بسبب اختبار الرقعة هذه ، أعتذر منكم جميعا أنا أقوم حاليا بإكمالها قبل إرسالها لمشروع ويندومايكر


