Skip to Content

مغامرة مع اللغة العربية و Scribus

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

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

كان الهدف هو أننا نريد لماذا لا يدعم Scribus اللغة العربية ، مع أن مكتبة كيوت التي كتب بها تدعم اللغة العربية بشكل جيد ؟

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

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

بعد ذلك بدأت المحاولة لمزج بين مكتبة Cairo و FriBidi ، و بعد يوم كامل من المحاولات الفاشلة ( ماذا تتوقعون من أناس ليس لديهم أدنى خبرة في السي ؟) قررنا أن نستعين بمطور مكتبة FriBidi وهو ايراني يسمى بهداد اسفهبد ، و بالفعل أرسلنا له رسالة ، و فرد بأنه مشغول واقترح أن نستخدم مكتبة Pango فهي تقدم توثيق أفضل بكثير من FriBidi التي لا تحوي على أي توثيق أو أمثلة .

وبالفعل في الفرصة التالية كنا مع موعد مع مكتبة Pango التي تتميز بالتوثيق الجيد ، و لكن كانت هناك عقبة واحدة أساسية ألا و هي أن Pango تعتمد على مكتبة GLib و التي بدورها جزء من مكتبة GTK بمعنى أخرى أنه حل لن يقبل به مطوري برنامج Scribus .

والآن ما الحل ؟

بعد حديث دار مع مطوري برنامج Scribus حول الموضوع ، وجدنا أن الحل يكمن في مكتبة تسمى حرف باز HarfBuzz ، و هي مكتبة تعمل كمحرك لعرض خطوط OpenType مشتق من مشروع FreeType الذي تم تطويره في مكتبتي Pango و Qt ، ثم توحيده في مشروع واحد باسم مكتبة حرف باز.

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

عملية دعم اللغة العربية و عن طريق مكتبة حرف باز ، تحتاج أولا إلى فهم مكتبة لا تملك توثيق ، ثم اختبارها مع مكتبة Cairo ، ثم فهم بنية برنامج Scribus حتى تستطيع أن تدمج مكتبة حرف باز فيه ، و هذا كله يتطلب جهد و شغف لا يملكه مطوري برنامج Scribus ولا يبدو أن أحد في العالم العربي و الفارسي و العبري  و الأوردي لديه ذلك !

 

تعليقات فيسبوك

التعليقات

خيارات عرض التعليق

اختر الطريقة التي تفضلها لعرض التعليقات، ثم اضغط على "احفظ الإعدادات" لتفعل التغيرات.

في الواقع أنا كنت شغوفا بهذا

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

شكرا على المجهود الذي

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

صورة خالد الحوراني

هل فقط يحتاج الأمر لمعرفة في

هل فقط يحتاج الأمر لمعرفة في المكتبة أم يحتاج للخوض في غمار كود البرنامج لفهم كيفية تعامله مع Cairo واستبداله بحرف باز؟

بارك الله فيكم مجهود رائع

صورة زايد

الأمر معقد

مع عدم توفر التوثيق الجيد ستحتاج إلى فهم البرنامج وكيف يتعامل مع مكتبة Cairo ، ثم تفهم العلاقة بين Cairo وحرف باز

صورة خالد الحوراني

هذا أمر سيء! لكن لو الكود

هذا أمر سيء! لكن لو الكود موثق جيداً فأظن أن المهمة تصبح أسهل، كنت مبرمج سي قبل سنتين ولكن تركتها لصالح الويب!

اشكرك اخي زايد على تلخيص هذه

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

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

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

 

هل من المطورين من يقبل أن

هل من المطورين من يقبل أن يفعل ذلك مقابل أجر ؟ عند ذاك بإمكاننا جمع التبرعات لهذا العمل..
وسيكون ذلك أفضل بكثير من شراء البرمجيات المغلقة وباهظة الثمن.

لا أتوقع

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

في هذا المكان

أظن أننا لسنا بحاجة إلى مبلغ كبير، لأن الهدف ليس صنع برنامج جديد، وإنما هو شيء محدد وهو إضافة دعم اللغة العربية... وحل مشاكلها في البرنامج كافة.

أفضل أن يكون المشروع بإشراف وادي التقنية.

لا أرى أن التبرع صعب ياأخى

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

شكراعلى التلخيص الرائع

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

قدموا مناقصة

السلام عليكم
بداية احب أن احيي في وادي التقنية هذه الهمة و تحريكه لهذا الامور و السعي لخير الامة.

في عالم الشركات (الذي ليس لي فيه إلا أقل من 4 أشهر : ) ) لاحظت أن من يريد أداء عمل يقوم بوضع شروط و مواصفات ما يريده.

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

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

حلول مؤقتة لدعم الكتابة العربية

هناك حلول مؤقتة للكتابة بالعربية كما هو متبع في ويندوز عند الكتابة في بعض برامج الرسم خصوصا القديمة منها .
الفكرة هي استخدام خطوط خاصة أو ينيكود ثم وضع النص بحيث يتم اختيار الشكل المناسب لكل حرف حسب موقعه وربما عكس حروف الجملة .

لَقِّم المحتوى لَقِّم المحتوى


المتصلون الأن

يوجد حاليا لا مستخدمين و 36 ضيفا عالخط.