أدوات المستخدم

أدوات الموقع


arabic-support-on-linux-terminal

هذه نسخة قديمة من الصفحة!


تحسين دعم العربية في طرفية لينكس

هناك عددٌ من المشاكل الموجودة حاليًا في الطرفية (Terminal) على سطح مكتب لينكس. منها أبرز مشكلتين هما:

  1. الحروف تظهر متداخلة بحيث لا يمكن قراءة النص العربي بشكل جيد.
  2. اتجاه النص يكون من اليسار إلى اليمين (LTR) وليس من اليمين إلى اليسار (RTL)، وهو ما يخرّب عرض النص العربي.

يمكنك رؤية هذه المشاكل في الصورة التالية مثلًا:

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

يمكنك إن شاء الله الحصول على الشكل التالي بعد تطبيق التعليمات في هذه الصفحة:

تغيير الخط الافتراضي للطرفيّة

من إعدادات طرفية جنوم، اختر استعمال خط مُخصص من نافذة الإعدادات كما بالصورة (اضغط على المربع الفارغ لتظهر علامة صحّ):

بعدها ابحث عن خط اسمه Monospace من القائمة، واختر الحجم 11 كما في الصورة واضغط “اختر”:

إذا جرّبت الكتابة الآن في الطرفية فستجد أن المشكلة الأولى قد حلّت بشكل كبير؛ حيث لم تعد الأحرف متداخلة ببعضها البعض وصار بإمكانك قراءة الكلمات والجمل العربية بأريحية. بالطبع هناك بعض المشاكل في الخطّ مثل مشكلة حرف لا (حيث يظهر مثل U) وسنعمل على حلّها من طرفنا لكن الوضع جيد للعيش معه حاليًا.

تفعيل التقاط الاتجاه التلقائي (Auto-detection) للنص في الطرفية

المشكلة الثانية التي تعاني منها الطرفية هي مشكلة الاتجاه. يجب أن تكون النصوص العربية تُعرض من اليمين إلى اليسار (RTL) وليس من اليسار إلى اليمين (LTR)، ولكن هذا لا يحصل افتراضيًا في الطرفية مما يؤدي إلى المشكلة التي رأيتها في الصورة الأولى في هذه الصفحة.

في البداية عليك أن تفهم أن الكثير من برامج الطرفية (Terminal) مثل GNOME Terminal وXfce4-Terminal وغيرها تستعمل مكتبة برمجية اسمها VTE هي المسؤولة عن عرض الطرفية. أي أن هذه البرامج في الواقع هي مجرد نوافذ وقوائم، بينما محتوى الطرفية الحقيقي (الشاشة السوداء التي تكتب فيها الأوامر) هي قادمة من مكتبة VTE. وبالتالي المسؤول عن عرض النصوص داخل الطرفية هو هذه المكتبة وليس برامج الطرفية.

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

لحسن الحظ وبعد بحثٍ وتنقيب اكتشفنا أن مكتبة VTE تدعم اتجاه RTL منذ 2019م، لكنه غير مفعّل افتراضيًا بسبب عدم وجود الاختبارات الكافية لجودة هذا الدعم بالإضافة لبعض المشاكل الصغيرة، ونعمل على حلها في فريق تقويم لجعل هذا الخيار افتراضيًا لمستخدمي لينكس العرب ولكن الأمر لم يكتمل بعد. ومع ذلك فيمكنك أنت أن تفعّل هذا الخيار على نظامك بحيث تعرض لك النصوص باتجاه RTL.

الالتقاط التلقائي لاتجاه النص (Text direction auto-detection) هي ميزة تسمح بعرض النصوص في الطرفية إما باتجاه RTL أو LTR على حسب النص نفسه؛ إذا كان النص مكتوبًا بالإنجليزية أو أي لغة أخرى تُكتب من اليسار إلى اليمين فسيُعرض كـLTR، وإذا كان النص مكتوبًا بالعربية وبقية اللغات التي تُكتب من اليمين فسيُعرض النص كـRTL. تستعمل هذه الميزة أول حرف من كل سطر من النص لتحديد اللغة وبالتالي تحديد الاتجاه الواجب استخدامه.

اكتب الأمر التالي في الطرفية لتفعيل الميّزة:

printf "\e[?2501h"

يمكنك إضافة الأمر المذكور إلى نهاية ملف .bashrc (ملف مخفي في مجلد المنزل الخاص بك)، مما يؤدي إلى تطبيق هذا الأمر تلقائيًا في كل طرفية تفتحها دون الحاجة لتكتب الأمر أنت بنفسك كل مرّة. فقط من سطر الأوامر حرر الملف:

nano ~/.bashrc

وانزل إلى نهاية الملف واكتب الأمر السابق.

فرض اتجاه RTL في طرفية لينكس

مثال برمجي على تطبيق طرفية عربي على لينكس

arabic-support-on-linux-terminal.1674465008.txt.gz · آخر تعديل: 2023/12/20 17:08 (تحرير خارجي)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki