Hi M.Hanny, Thanks a lot for spreading the word about BiDi support in VTE!
Really no need to apologize about your English! I'm not a native English speaker either, and your English is at least as good as mine. We have no communication issues at all! --- > Ideally, there shouldn't be a text in other languages when the system language is set to Arabic. E.g the output of "apt" should be fully translated to Arabic [...] This is a very long journey and it may take many years until we reach that point. I disagree with you in this point. There will always be English text in the output of "apt", such as package names, I don't think they will ever be translatable (and would arguably be a mistake to go in this direction). For rapidly changing data, such as package descriptions, it's practically impossible for all translations to be fully up-to-date all the time. Think of software like dmesg printing system logs, software printing hardware information (such as identification strings of various components), think of software showing system directories' and files' names etc. Think of commands that print whois data, show a mysql table along with the column names, show source code etc. Think of ssh'ing to a remote host. Think of the long tail of utilities you find on the web that someone quickly hacked together but there's no demand to get translated to languages other than English. Although not relevant to the world of terminal emulation, I've just checked the completeness of the Arabic translation of the GNOME desktop at https://l10n.gnome.org/teams/ar/, and it's very very far from being fully green. You'll never have a terminal emulation experience that is fully in a foreign (I mean non-English, not necessarily RTL) language, for two reasons. One is that due to the very nature of things there'll always be tons of English stuff in the terminal, the second is that it's a utopic and reasonably unreachable dream to have all software's UI strings be fully translated to all languages. A 100% fully Japanese, or fully Hungarian, or fully Arabic experience in terminal emulators, no English word whatsoever, is neither "ideal" nor in my opinion is reachable in our lives. > However, in order to get there, we need to start somewhere. [...] this could open the door for a wide range of CLI-based computing for RTL languages speakers [...] I agree with this one, and I hope I could make an important step here. > The political factor is also important. I don't want to talk about politics here of course I don't want to talk about politics either. My work was driven by getting closer to equality for people, no matter if I agree or disagree with certain things they do; as well as by the technical challenge itself. That being said, you raised excellent points here. > The dominant majority of Arabic users at least are using English as a system-wide language. When I made polls asking them why, they say that there are many bugs and problems in Arabic support in general on Linux [...] I fully understand this. Prior to my work, nobody had an idea how to do BiDi in terminals, nobody saw the whole picture. As I show in my document, everyone who thought they knew how to do it made fundamental mistakes, proving that they only saw a fraction of the story -- except for ECMA TR/53 which at least saw the big picture correctly, but that one also made big mistakes elsewhere, and is an old piece of work preceding the UBA, not suitable for straight adoptation. I believe my work is the first and only one so far that shows how BiDi can actually be done in terminals in a way that it really works. But again, it's not a magic wand solution for all the problems, it's a platform for app developers to build upon. Funny story, perfectly rhyming with what you experienced here, and maybe pushing it a little bit further. I gained my BiDi knowledge and experience in 2009-2010 when for half a year I worked on porting the (now discontinued) iGoogle webpage to RTL. Those days Internet Explorer 6 was the market leader, IE7 was gaining some popularity, and IE8 was brand new. IE6, as we all know, was a terrible browser. But when you tried to do RTL in it, it was even magnitudes worse! IE7 was significantly better, but nowhere near perfect when it came to RTL. In IE8 I could not find a single RTL bug. (In all cases: asking the browser to use its latest rendering engine, rather than some compatibility mode.) Working around the IE6 RTL layout issues (and even crashes!) took a whole lot of development effort. IE7 caused less pain. With IE8 there was no pain at all (apart from the necessary migration and layout fixes as we asked the browser to use its new rendering engine rather than compat mode). At one point I suggested that we just add a banner asking users to upgrade to IE8, saving us tons of development effort. The idea was rejected because market share of IE6 was even bigger in RTL areas than at the rest of the world. Why? Because RTL in IE6 was so bad that every webpage had to apply so many workarounds that due to these workarounds they did not show up correctly in IE7 and IE8, so users were heavily reluctant to upgrade. Having to be compatible with old, broken browsers all around the RTL world was a giant obstacle in the adoption of the new, vastly improved technology. I can easily imagine something similar to happen in the world of RTL + terminals, too. Some apps might now look correctly in RTL in certain terminals, but not in VTE. Fixing the look in VTE might break the look in those terminals. How to convince app developers to focus on VTE? How to make them understand that VTE is the one that is good enough to satisfy the needs of all applications, whereas other terminals can only satisfy the needs of a subset of apps, therefore to pick VTE as the reference? Given that the whole topic is extremely complex, very few people understand all the aspects; and to make things worse, the BiDi recommendation was written by a guy (me) who is neither a good technical writer nor is a native English speaker, so the work surely doesn't _look_ as appealing as it should? Tough call. So much about the "philosophical" bits for now. I'll continue (in a few days) with the technical aspects (autodetection, alignment etc.). -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gnome-terminal in Ubuntu. https://bugs.launchpad.net/bugs/2002290 Title: Poor Arabic rendering in VTE Status in gnome-terminal package in Ubuntu: Fix Released Status in vte2.91 package in Ubuntu: New Bug description: VTE has a number of issues when it comes to rendering Arabic letters in the terminal, which could affect a number of languages (Arabic, Urdu, Persian... etc). Bug 1: Any Arabic word in any VTE-based terminal is choppily displayed with spaces between its letters, making readability hard and sometimes not possible. Sometimes the letters are crushed together very closely making reading impossible too. Bug 2: If a non-Arabic text and an Arabic text are displayed together in the same line, then the entire line will be missed up and you won't be able to understand what is being said. Both of these bugs can be seen from the image I attached. I reported both of these bugs together because it's unlikely they can be fixed separately, probably they are related to each other. Problem can be seen in any VTE-based terminal. Here I am using GNOME Terminal 3.44.0 on Ubuntu 22.04, but it can be seen in any Ubuntu version and in any terminal version as well (it has been there since forever). I reported the bug here instead of upstream because that's what they said at the page: https://wiki.gnome.org/Apps/Terminal/ReportingBugs, but this bug is not related to Ubuntu only; it happens on all Linux distributions. Happy to provide any information you need, or any do tests or experiments. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-terminal/+bug/2002290/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp