archlinux / archinstall

Arch Linux installer - guided, templates etc.
GNU General Public License v3.0
6.15k stars 532 forks source link

RTL Support #2347

Open yarons opened 9 months ago

yarons commented 9 months ago

The Arabic, Urdu, and Hebrew are breaking in multiple ways.

First:

Letter ordering - regardless of font selection. The sentences appear reversed (as if these were processed with rev).

For example:

If the string reads Hello World, it will appear on screen as dlroW olleH. There's a library called pyfribidi, which supports most RTL languages pretty well.

Second:

Since those specific alphabets are written from Right-To-Left (hence RTL), the languages should also appear mirrored, so the menus should align to the right side of the screen instead of left like they are now.

Example:

RTL

RTL

vs
LTR (The one used in English)

LTR

This will require fundamental changes to the underlying simple-term-menu.

svartkanin commented 9 months ago

The translations are here https://github.com/archlinux/archinstall/blob/master/archinstall/locales/ar/LC_MESSAGES/base.po. Are these correct and displayed in that way?

yarons commented 9 months ago

I checked those (Arabic and Urdu) on the native console with a proper usefont (out of the box they both appear like squares) and I experienced both the phenomenons that I've mentioned, the text appears in the wrong order and aligned to the left.

BTW I've also filled an issue against simple-term-menu.

svartkanin commented 9 months ago

This has nothing to fo with the simple term menu and the squares appear because the default font isn't supporting non latin characters.

As I don't speak any of those languages I can't confirm that the display is wrong or not.

Are you able to confirm that the linked translations are correct? And could you share a screenshot of how they are wrongly appearing?

yarons commented 9 months ago

I'm setting the font issue aside, this is how Hebrew looks on iTerm (connected to an Archlinux VM):

Screenshot 2024-01-24 at 11 31 06

The text itself is reversed ("dlroW olleH" instead of "Hello World"). The directionality of the menu itself is also reversed (aligned to the left instead of right).

So if I want to express my experience in English this is it: UTC Select timezone

This is the same screen on the Linux terminal (VM Console):

Screenshot 2024-01-24 at 11 39 49

Arabic (Same issues, the letters appear in reversed order, since it's only 5% translated this is the only screen I could find with Arabic text):

Screenshot 2024-01-24 at 11 39 08

This is Urdu which has the same problem in addition to the lack of properly supported fonts in the terminal (It's basically an extended version of Arabic):

Screenshot 2024-01-24 at 11 41 59

The Arabic translation is correct, I don't speak Urdu at all but I know some of it is correct from the words I can identify (Transliterated terms to the rescue). Any other info I can provide you with? Thank you so much!