elementary / fonts

13 stars 4 forks source link

Bug - Incomplete support for Urdu language text #14

Open awaismirza92 opened 4 years ago

awaismirza92 commented 4 years ago

Bug The default font configuration of elementary OS (eOS) does not support Urdu language text. So it is requested that future releases of eOS may please incorporate Urdu support. Two examples of improper (default eOS font) and proper (with Noto Naskh Arabic font) Urdu text rendering can be viewed here.

Inadequate solution As a way-out, I install supporting fonts (e.g, Noto Nastaliq Urdu or Noto Naskh Arabic) and specify them as system fonts (Window Title, Interface, Document, and Monospace) with Gnome Tweaks. This makes, e.g., Urdu text in notifications appear properly. But the apps like Ephiphany, Station and Rambox still do not render the language's text appropriately because probably they capture the fonts from fontconfig.

Urdu fonts collection I understand the fonts in eOS must be chosen carefully to match the very nice feel of the operating system. A collection of Urdu fonts is available at http://font.urduweb.org/. I hope you'll be able to find a font matching the overall look of the distribution.

Previous posts Originally, I posted the issue at elementary OS StackExchange where I was advised to report the bug to eOS developers. I also filed the issue with Station community and Rambox developers but I believe it's better to build support in the operating system instead of individual apps.

danirabbit commented 4 years ago

Moved to fonts.

Looks like we're already shipping fonts-noto which pulls in fonts-noto-core, which contains NotoNaskhArabic-Regular.ttf

I guess the problem is that Open Sans contains support for these characters, but not very good support. So what we can do is supply a fontconfig file, much like the one supplied with noto-cjk to prefer Noto here. Something like:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="pattern">
        <test name="lang">
            <string>ur</string>
        </test>
        <test name="family">
            <string>serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>Noto Naskh Arabic Regular</string>
        </edit>
    </match>
    <match target="pattern">
        <test name="lang">
            <string>ur</string>
        </test>
        <test name="family">
            <string>sans-serif</string>
        </test>
        <edit name="family" mode="prepend">
            <string>Noto Naskh Arabic Regular</string>
        </edit>
    </match>
</fontconfig>

and then ship that in a config package like we did with croscore: https://github.com/elementary/fonts/commit/73e2c4a6bac8056c1d5d81d8e1b377098fcf0b49#diff-97a9601183c9bc38a5700ca9d4882d2b

stlee42 commented 2 years ago

19