hello icon indicating copy to clipboard operation
hello copied to clipboard

Add RTL as part of HIG

Open yarons opened this issue 2 years ago • 14 comments

Hey, I translated helloSystem to Hebrew, this language is written from Right-To-Left (hence RTL) and requires special care in some cases (Sometimes flipping everything just works). Additional languages that use an RTL script: Arabic, Persian, Urdu, Divehi, N'Ko, Yidish, etc.

There are numerous documents about taking special care of some individual cases in RTL, for example: https://engineering.atspotify.com/2019/04/15/right-to-left-the-mirror-world/ https://material.io/design/usability/bidirectionality.html https://developer.apple.com/design/human-interface-guidelines/right-to-left/overview/introduction https://community.pega.com/knowledgebase/articles/user-experience/85/converting-your-ui-right-left-languages

I need to free some space for the VM, I want to test it and see that everything is in place.

yarons avatar Oct 07 '21 08:10 yarons

Hello @yarons. Thanks for contributing translations. Highly appreciated. Do you know what specifically would need to be done in helloSystem to make it support RTL properly?

probonopd avatar Oct 10 '21 16:10 probonopd

It depends, the UI is GTK or Qt based?

yarons avatar Oct 10 '21 16:10 yarons

Qt

probonopd avatar Oct 10 '21 16:10 probonopd

https://doc.qt.io/qt-5/qtquick-positioning-righttoleft.html

This is purely technical, the visual stuff are the other links I've sent earlier. There are some older guides for Qt 4.8 etc. I don't think it's relevant anymore.

yarons avatar Oct 10 '21 17:10 yarons

Would be interesting to see how far off we are currently. What is your overall assessment of our 0.6.0 ISO?

probonopd avatar Oct 10 '21 17:10 probonopd

Regarding the HIG or the translation?

yarons avatar Oct 11 '21 07:10 yarons

My question is, if you run the 0.6.0 ISO, what is wrong/needs to be done so that everything is correct? (Screenshots of places where things are wrong and a description of how they should be would help to understand how big the delta is.)

I'd welcome pull requests that improve things, as long as they won't introduce undue code complexity/overhead. But since I don't know what needs to be done and how, I won't be working on it myself.

probonopd avatar Oct 11 '21 18:10 probonopd

These are usually changes in the .ui files, I'm not sure how these are handled when you switch the language but I'll try to investigate it with you. The changes shoud be purely cosmetic, nothing logical so instead of having the buttons layed out in a certain way they will be reversed or mirrored or whatever, it really depends on the case. There's also a problem of over RTLing when some things need to get back to normal (usually progress bars, sliders, etc.).

If you can take some screenshots it will surely save us some time. I think that if it might delay the release we will do our best to aim for the next one, Hebrew users can wait :)

yarons avatar Oct 11 '21 22:10 yarons

I managed to load the ISO in VirtualBox, I managed to make it work but couldn't install it (It keeps failing and restarting), I couldn't find where to switch the language of the UI, I can keep trying but it doesn't look good so far, any suggestions? Should I simply wait for 0.7.0?

yarons avatar Nov 21 '21 15:11 yarons

Yes. Or you could use 0.6.0 which is the currently released version.

probonopd avatar Nov 21 '21 15:11 probonopd

Well, without switching the UI language or installing to the local hard drive I'm not sure it's relevant to what we actually want to test :)

yarons avatar Nov 21 '21 15:11 yarons

0.6.0 can be intstalled to the local hard drive.

probonopd avatar Nov 21 '21 15:11 probonopd

I've tried, I got into a boot loop with VirtualBox.

yarons avatar Nov 21 '21 15:11 yarons

I never test anything on virtual machines, only on real hardware.

probonopd avatar Nov 21 '21 16:11 probonopd

I think this is the screen that their language should be, the direction of the interface and the beginning of the text is reversed, except for the picture and the text. image

DEMO... VirtualBox_PC-2_17_12_2022_19_30_54

louies0623 avatar Dec 17 '22 11:12 louies0623

Not sure whether the whole screen should be flipped just because the language is LTR. I don't think this is how other desktop OSes are doing it?

In any case, this is currently not a priority, no one is working on it. Can be reopened in case anyone wants to work on it.

These languages are in the current set of languages:

  • Use English for the main language = en
  • Utiliser le français comme langue principale = fr
  • Deutsch als Standardsprache verwenden = de
  • Usar español como idioma principal = es
  • Usa l'italiano come lingua principale = it
  • Gebruik Nederlands als hoofdtaal = nl
  • Använd svenska som huvudspråk = sv
  • Bruk norsk som hovedspråk = no
  • Brug dansk som hovedsprog = da
  • Käytä pääkielenä suomea = fi
  • Käytä pääkielenä suomea = fi
  • Выбрать pусский как главный язык = ru
  • Użyj polskiego jako języka głównego = pl
  • Usar português do Brasil como idioma principal = pt
  • Usar o português europeu como idioma principal = pt_PT
  • 以简体中文作为主语言 = zh_CN
  • 以繁體中文作為主要語言 = zh_TW
  • 主に日本語を使用する = jp
  • 주 언어로 한글 사용 = ko

probonopd avatar Dec 17 '22 11:12 probonopd

Not sure whether the whole screen should be flipped just because the language is LTR. I don't think this is how other desktop OSes are doing it?

louies0623 avatar Dec 17 '22 14:12 louies0623

Wow. It's not something I'm looking forward to doing; so this would only happen if we find a volunteer who wants to do it.

probonopd avatar Dec 17 '22 14:12 probonopd

I was referring to the HIG, not the actual directionality implementation and I'm not sure why Hebrew is not part of the language set, it is fully translated.

yarons avatar Dec 17 '22 16:12 yarons

We are merely pointing to https://dl.acm.org/doi/book/10.5555/573097, there is no helloSystem HIG currently.

probonopd avatar Dec 17 '22 16:12 probonopd

I'm not sure why Hebrew is not part of the language set, it is fully translated.

It would probably need more work, e.g., a better font, more RTL work, etc.

probonopd avatar Dec 17 '22 16:12 probonopd

We are merely pointing to https://dl.acm.org/doi/book/10.5555/573097, there is no helloSystem HIG currently.

There are RTL references in this HIG, just search for Hebrew or Arabic and you'll find it.

Is there an open issue about the font and RTL work so I can try and help with it?

yarons avatar Dec 17 '22 16:12 yarons

45/418 inPDF https://dl.acm.org/doi/book/10.5555/573097

louies0623 avatar Dec 17 '22 16:12 louies0623

@louies0623 indeed, so @probonopd, this issue was never relevant in that case, we just need to work on the issues with Hebrew display in terms of fonts and RTL then.

BTW is there a special reason to use an HIG from 1992? There are more recent versions.

yarons avatar Dec 17 '22 16:12 yarons

Newer is not always better :)

The one I linked was being worked on by Tog and other legends.

probonopd avatar Dec 17 '22 17:12 probonopd

@probonopd I think you can ask about the text font first. @yarons Do you think there are any fonts that can replace the Hebrew fonts in the current system. https://github.com/helloSystem/hello/issues/445

louies0623 avatar Dec 17 '22 17:12 louies0623

@louies0623 I will definitely work with you on that one, what is the license limitations so I won't offer any irrelevant options.

yarons avatar Dec 17 '22 17:12 yarons

Font should be a "real world" font, not a "computer" font. Ideally should look like Helvetica.

License needs to have no restrictions on redistribution.

probonopd avatar Dec 17 '22 17:12 probonopd

Newer is not always better :)

The one I linked was being worked on by Tog and other legends.

Although I do ten to agree in a way I find myself thinking about designing a system with a closed feedback loop as opposed to open feedback when some lessons have learned and the users are more demanding and the design should reflect different usage patterns. I totally think his work rocks yet many things have changed along the years and back in 1992 there were fewer users and fewer options and it did affect the user's usage patterns and perspective. Just my two cents, thanks.

yarons avatar Dec 17 '22 19:12 yarons

Note that I also didn't say "older is always better" ;-)

probonopd avatar Dec 17 '22 19:12 probonopd