حل اللغة العربية مع نظام لينكس وتغيير خط DejaVu الى خط Noto Sans Arabic و Noto Sans Arabic UI


(Salem Yaslim) #1

لقد طرحت سابقًا موضوع في حسوب I/O للإستفسار عن كيفية تغيير خط DejaVu للغة العربية الى اي خط أخر بسبب ان الخط قديم جدًا وسيئ وغير جميل


ولكن لم اجد اي تفاعل مع الموضوع للأسف
ولقد بحث قبل مدة عن طريقة ممكنة من فعل ذلك وجددت ملفات conf لعمل اعادة توجيه من خط معين لخط أخر
وجدت موضوع يتحدث عن ذلك في منتدى adslgate باللغة العربية
https://www.adslgate.com/dsl/showthread.php?t=2188265

لكن المشكلة في حل صاحب الموضوع ان التغيير لا يتطبق على كامل النظام والتطبيقات ويقتصر فقط على اشياء بسيطة جدًا مثل قائمة البدء وبعض تطبيقات GTK ولم يعمل الحل في متصفحات WebKit وتطبيق Telegram وبعض الازرار في المتصفح وبعض التطبيقات ايضًا لم ينجح معها الحل فقمت بتعديل الملف حتى وصلت الى نتيجة ان الحل يعمل في جميع المتصفحات والتطبيقات.

لحل المشكلة قم بانشاء ملف جديد في مجلد

/etc/fonts/conf.d/

يحمل الأسم

99-arabic.conf

ويحتوي على التالي

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

<!-- Default font (no fc-match pattern) -->
<match>
  <edit mode="prepend" name="family">
  <string>Noto Sans</string>
  </edit>
</match>

<!-- Default font for the ar_SA locale (no fc-match pattern) -->
<match>
  <test compare="contains" name="lang">
  <string>ar</string>
  </test>
  <edit mode="prepend" name="family">
  <string>Noto Sans Arabic UI</string>
  </edit>
</match>

<!-- Default sans-serif font -->
<match target="pattern">
  <test qual="any" name="family"><string>sans-serif</string></test>
  <!--<test qual="any" name="lang"><string>ar</string></test>-->
  <edit name="family" mode="prepend" binding="same"><string>Noto Sans</string></edit>
</match>

<!-- Default serif fonts -->
<match target="pattern">
  <test qual="any" name="family"><string>serif</string></test>
  <edit name="family" mode="prepend" binding="same"><string>Noto Serif</string></edit>
  <edit name="family" mode="append" binding="same"><string>Noto Sans Arabic</string></edit>
  <edit name="family" mode="append" binding="same"><string>Noto Sans Arabic UI</string></edit>
</match>

<!-- Default monospace fonts -->
<match target="pattern">
  <test qual="any" name="family"><string>monospace</string></test>
  <edit name="family" mode="prepend" binding="same"><string>Noto Sans Arabic</string></edit>
  <edit name="family" mode="append" binding="same"><string>Noto Sans Arabic UI</string></edit>
</match>

<!-- Default DejaVu Serif fonts -->
<match target="pattern">
  <test qual="any" name="family"><string>DejaVu Serif</string></test>
  <edit name="family" mode="assign" binding="strong"><string>Noto Sans Arabic</string></edit>
  <edit name="family" mode="assign" binding="strong"><string>Noto Sans Arabic UI</string></edit>
</match>

  <!-- Default DejaVu Sans fonts -->
<match target="pattern">
  <test qual="any" name="family"><string>DejaVu Sans</string></test>
  <edit name="family" mode="assign" binding="strong"><string>Noto Sans Arabic</string></edit>
  <edit name="family" mode="assign" binding="strong"><string>Noto Sans Arabic UI</string></edit>
</match>

<!-- Fallback fonts preference order -->
<alias>
  <family>sans-serif</family>
  <prefer>
  <family>Noto Sans</family>
  <family>Open Sans</family>
  <family>Droid Sans</family>
  <family>Ubuntu</family>
  <family>Roboto</family>
  <family>NotoSansCJK</family>
  <family>Noto Arabic</family>
  <family>Noto Sans Arabic UI</family>
  </prefer>
</alias>
<alias>
  <family>serif</family>
  <prefer>
  <family>Noto Serif</family>
  <family>Droid Serif</family>
  <family>Roboto Slab</family>
  <family>Noto Sans Arabic</family>
  </prefer>
</alias>
<alias>
  <family>monospace</family>
  <prefer>
  <family>Inconsolatazi4</family>
  <family>Ubuntu Mono</family>
  <family>Droid Sans Mono</family>
  <family>Roboto Mono</family>
  <family>Noto Sans Arabic</family>
  </prefer>
</alias>
<alias>
  <family>DejaVu Serif</family>
  <prefer>
  <family>Inconsolatazi4</family>
  <family>Ubuntu Mono</family>
  <family>Droid Sans Mono</family>
  <family>Roboto Mono</family>
  <family>Noto Sans Arabic</family>
  </prefer>
</alias>
<alias>
  <family>DejaVu Sans</family>
  <prefer>
  <family>Inconsolatazi4</family>
  <family>Ubuntu Mono</family>
  <family>Droid Sans Mono</family>
  <family>Roboto Mono</family>
  <family>Noto Sans Arabic</family>
  </prefer>
</alias>

<dir>~/.fonts</dir>
</fontconfig>

ثم احفظ الملف واعد تشغيل النظام وتهانينا الان تم حل مشكلة اللغة العربية في توزيعتك دون تغيير خط النظام الإفتراضي.